[ĐÁNH GIÁ] Buddy Cho Việc Phát Triển Các Ứng dụng Blockchain

Bài Viết Tóm Tắt và Phân Tích: Buddy Cho Việc Phát Triển Các Ứng dụng Blockchain.

Sản Phẩm Đang Hoạt Động + Đội Ngũ Giàu Kinh Nghiệm + Các Doanh Nghiệp Đối Tác Lớn

1*0d3dXoJwA-gPX2ucDM-dpw.png

Vấn đề

Bắt đầu bằng việc phát triển hợp đồng thông minh không hề đơn giản, ngay cả đối với các developer off-chain kinh nghiệm. Có một vài khái niệm chính mà các lập trình viên phải hiểu trước khi có thể bắt đầu bất kỳ công việc nào: chính Blockchain, EVM, solidity, Geth, và dApps, đây chỉ mới là một vài trong số đó. Ngoài ra còn có nhiều huyền thoại xung quanh phát triển Blockchain, có thể tạo ra những thách thức cho việc áp dụng công nghệ Blockchain và phát triển các hợp đồng thông minh hoặc dApps.

Một khi dApps và các hợp đồng thông minh trở nên phức tạp hơn, các bug và flaw được đưa vào hệ thống - chờ đợi để người dùng xấu khai thác, điều này có thể dẫn đến mất hàng triệu đô la tiền mã hóa.

Hơn nữa, không có công cụ nào đủ phát triển để hỗ trợ các nhiệm vụ phát triển Blockchain cụ thể hoặc xây dựng lòng tin giữa các nhà tài trợ dự án/người sáng lập và developer của họ. Tuy nhiên, điều này đang dần thay đổi nhờ các dự án như Truffle, Lisk - và bây giờ là Buddy.

1*k7Tbx5HQfM0JJIll1gXOMA.png

Giải pháp Buddy

#1. BlockchainOps

Ý tưởng

Cũng giống như cách Buddy đã thành công trong việc giới thiệu tự động hóa phát triển cho các web developer, Buddy cũng tiên phong trong việc phát triển tự động hóa các dự án trên Blockchain.

Các Blockchain developer có thể sử dụng dịch vụ để thiết kế các pipeline tự động hóa bằng các hành động sẵn có để thực hiện: từ compile và thử nghiệm, đến triển khai, tập lệnh tùy chỉnh và theo dõi dApps. Quá trình này rất dễ dàng và tương tự như xây dựng ngôi nhà bằng gạch: bạn chọn một phần tử mà bạn cần và đặt nó ở vị trí mong muốn, điều chỉnh cấu hình nếu cần.

Các hành động tự động hóa phát triển dApp

Trong phần Hành động: Các Block Xây dựng của Pipeline Tự động hóa mà chúng tôi đã liệt kê các ý tưởng ví dụ cho các developer bên thứ 3 cho DevOps Marketplace. Ở đây, chúng tôi sẽ làm tương tự cho các hành động dành riêng cho phát triển tự động hóa các ứng dụng dựa trên Blockchain.

Hành động BlockchainOps từ DevOps Marketplace

An ninh
Trường hợp sử dụng: Kiểm tra hợp đồng Solidity cho các vấn đề bảo mật thông thường và antipattern

Tối ưu hóa
Trường hợp sử dụng: Phân tích luồng thực thi hợp đồng Solidity để tìm cách tối ưu hóa để giảm sử dụng gas bằng cách đề xuất loại bỏ các bước tính toán không cần thiết

Phân tích
Trường hợp sử dụng: Phân tích hợp đồng Solidity và đề xuất tối ưu STARTGAS cho người dùng cuối bằng cách kiểm tra các bước tính toán và dữ liệu giao dịch

Phân tích
Trường hợp sử dụng: Ghi lại và theo dõi việc sử dụng gas của các hợp đồng thông minh chạy ngược lại các bản thử nghiệm để người dùng có thể nhận thấy các quyết định mã hóa không tốt

Triển khai
Trường hợp sử dụng: Xây dựng tài sản dApp và triển khai chúng cho IPFS

Thử nghiệm
Trường hợp sử dụng: Chạy thử nghiệm hợp đồng thông minh đối với mạng thử nghiệm được tạo động

Thử nghiệm
Trường hợp sử dụng: Chạy lệnh Geth để kiểm tra hợp đồng thông minh chống lại các blockchain đang hoạt động

Tích hợp Liên tục
Trường hợp sử dụng: Compile một dự án Truffle trên mỗi lần push và các tác vụ di chuyển để kiểm tra, staging và sản xuất

Phân tích
Trường hợp sử dụng: Phân tích code bằng cách sử dụng các pipeline được thực hiện lặp lại cho các vấn đề bảo mật được phát hiện gần đây và cảnh báo các nhà phát triển khi có sự cố trong codebase của họ

Xem lại Code
Trường hợp sử dụng: Tìm kiếm các thay đổi không tương thích ngược trong Solidity và từ đó cảnh báo các nhà phát triển

Ví dụ về Pipeline cho Dự án dApp

Rentcherry là một ví dụ về một nền tảng cho thuê nhà phân quyền. Nó thúc đẩy công nghệ blockchain để cung cấp trải nghiệm cho thuê liên tục.

Nền tảng stack bao gồm:

Node.js cho trang front-end
Spring Framework, Java, để logic back-end
Truffle, một khung phát triển Ethereum, cho hợp đồng thông minh xử lý trust logic của các thỏa thuận cho thuê nhiều bên
Slack để giao tiếp đội ngũ
Sentry để theo dõi ứng dụng
DigitalOcean droplet để hosting page front-end
Amazon Elastic Beanstalk để hosting các ứng dụng back-end
Amazon S3 cho các file media dung lượng lớn như video hướng dẫn
Blockchain Ethereum chạy hợp đồng thông minh
IFPS để lưu trữ dữ liệu yêu cầu một kho lưu trữ dữ liệu được phân phối không thay đổi

Rentcherry sử dụng một số pipeline để xử lý luồng công việc phát triển của họ, mỗi luồng để phát triển, staging và sản xuất. Trong ví dụ này, chúng tôi sẽ phân tích pipeline staging. Pipeline này được thực hiện trên mỗi lần push tới nhánh stage, có nghĩa là ứng dụng đã sẵn sàng để thử nghiệm lần cuối và gần với bản phát hành sản xuất.

Rentcherry Staging Pipeline

vi0nWc5.png

Mô tả các bước

1st Slack
NHIỆM VỤ: Thông báo cho Nhóm rằng phiên bản staging mới vừa bắt đầu

2nd Node.js
NHIỆM VỤ: Xây dựng và thử nghiệm ứng dụng front-end với thử nghiệm npm

3rd Gulp
NHIỆM VỤ: Giảm CSS, tối ưu hóa hình ảnh và mã hóa video thành định dạng tối ưu

4th S3
NHIỆM VỤ: Triển khai tất cả các tài sản tĩnh vào Amazon S3 bucket & vô hiệu hóa các đối tượng CloudFront quá hạn (tùy chọn)

5th DigitalOcean
NHIỆM VỤ: Triển khai ứng dụng Node.js vào droplet DigitalOcean

6th Maven
NHIỆM VỤ: Chạy Maven để xây dựng và kiểm tra back-end

7th Securify
NHIỆM VỤ: Chạy phân tích Securify - ví dụ về cách thử nghiệm bảo mật liên tục có thể dễ dàng trở thành một phần của pipeline Phân phối Liên tục thích hợp

8th Truffle
NHIỆM VỤ: Chạy truffle compile trong một môi trường Truffle được cấu hình sẵn, khởi động một TestRPC và thực hiện thử nghiệm truffle. Sau khi hoàn thành, kết thúc TestRPC

9th Rinkeby
NHIỆM VỤ: Triển khai hợp đồng thông minh với Rinkeby Testnet để staging. Hành động này cũng chuyển địa chỉ của hợp đồng đã triển khai tới hành động tiếp theo

10th Amazon Elastic Beanstalk
NHIỆM VỤ: Đẩy các đối tượng đã tạo từ hành động Maven đến Amazon Elastic Beanstalk bằng địa chỉ thông minh được triển khai trước đó được đặt trong tệp cấu hình back-end

11th Verify
NHIỆM VỤ: So sánh mã nguồn của hợp đồng thông minh từ kho lưu trữ với những gì đã thực sự được triển khai cho blockchain (kiểm tra an toàn bổ sung)

12th IFPS
NHIỆM VỤ: khai các tài liệu pháp lý như điều khoản dịch vụ cho IFPS (chỉ khi thay đổi)

#2. dAppOS

Ý tưởng

Sử dụng các Sandbox dựa trên Docker kết hợp với các Linux Container, Buddy giới thiệu các môi trường phát triển sẵn sàng sử dụng được gọi là dAppOS. Đây là giải pháp chìa khóa trao tay cho việc khởi động các dự án dựa trên Blockchain như dApps. Nói chung, đây thường là một hỗn hợp các stack front-end & backend với logic tin cậy cư trú trên một Blockchain. Ngoài ra, dAppOS, như Sandbox, có thể dễ dàng mở rộng với các dịch vụ bổ sung như cơ sở dữ liệu MySQL, Redis, Mongo hoặc Elastic, do đó rất dễ mở rộng stack phát triển.

rauXwmr.png

Môi trường phát triển, xem trước hoặc dàn dựng

Mỗi dAppOS có thể hoạt động theo nhiều cách khác nhau: như một môi trường độc lập để phát triển, để thử nghiệm và xem trước hoặc có thể được chỉ định cho một nhánh và được cập nhật trên mọi nỗ lực hợp tác và phản hồi. Trong trường hợp này, mỗi nhánh sẽ có Instance riêng của dAppOS cùng với các dịch vụ đính kèm, giúp dễ dàng có một stack được phân tách hoàn toàn tự động cho mỗi nhánh.

Khi dAppOS được sử dụng để thử nghiệm, một pipeline thực hiện các kiểm tra bằng cách chạy chúng với một dApp với các testnets được tạo động trên mỗi lần chạy trên dAppOS.

dAppOS có thể chạy trên Đám mây của Buddy để người dùng có thể làm việc trên các dự án của họ từ bất kỳ đâu, văn phòng hay nhà riêng. Nhờ Buddy Enterprise, phiên bản onpremises của nền tảng, người dùng có thể chạy dAppOS trên mạng riêng của họ và trải nghiệm hiệu quả.

Công cụ Đào tạo

Một điều quan trọng khác đối với Đội ngũ Buddy là dAppOS có thể phục vụ như một nền tảng phù hợp cho các dự án hợp đồng thông minh/dApp được sử dụng trong đào tạo Blockchain. Nó làm cho giáo dục phát triển Blockchain dễ dàng hơn nhiều, vì các lập trình viên có thể tập trung vào đào tạo thực tế chứ không phải cài đặt và cấu hình hàng chục yếu tố phụ thuộc và stack cố gắng chuẩn bị môi trường của họ.

Sandbox & dAppOS Template Universe

Với dAppOS, Buddy giới thiệu Template Universe, một thị trường cho các mẫu Sandbox & dAppOS do các nhà phát triển bên thứ 3 cung cấp. Các mẫu giúp giảm thiểu mâu thuẫn để kiểm tra và trải nghiệm với các công nghệ Blockchain mới. Không có vấn đề cài đặt và thiết lập - chỉ cần chạy.

Mẫu ví dụ: bên thứ ba có thể cung cấp sandbox chạy hợp đồng thông minh trong mạng thử nghiệm kèm theo và giao diện người dùng web cho Giao diện ABI / JSON của hợp đồng cho phép tương tác dễ dàng với hợp đồng dành cho người không lập trình. dAppOS như vậy có thể được tự động chạy cho mọi nhánh mã và được cập nhật trên mỗi lần push - giống như Sandbox của Buddy hiện đang hoạt động. Những người thử nghiệm và khách hàng có thể sử dụng nó để dễ dàng xác thực mục tiêu kinh doanh của hợp đồng, trong khi nhà phát triển có thể sử dụng nó trong các pipeline của Buddy để xây dựng các thử nghiệm tự động để chống lại nó.

dAppOS Swarms

Các dự án phân quyền yêu cầu các giải pháp phát triển phân quyền thực sự. Việc chạy nhiều node trong một DC sẽ không làm cho nó được phân quyền. Với Buddy, bạn có thể quay hàng ngàn dAppsOS trên toàn thế giới bằng cách sử dụng GRID tự động hóa chia sẻ của Buddy.

dAppOS Swarms có thể tồn tại chỉ trong thời gian cần thiết để thực hiện các nhiệm vụ như thử nghiệm các tính năng P2P, nhắn tin giữa các node với các độ trễ khác nhau, hoặc làm kiên cố chống lại các cuộc tấn công phân quyền trên mạng.

Việc thanh toán mỗi giây của các Đơn vị Điện toán và tính năng khởi tạo nhanh chóng so với bản chất tiêu diệt nhanh chóng của các ứng dụng dApp làm cho nó rất hiệu quả về chi phí. Nếu không có các tính năng này, các trường hợp sử dụng như vậy có thể rất tốn kém ngay cả đối với các hoạt động kinh doanh quy mô doanh nghiệp.

Buddy sẽ tích hợp sẵn các mẫu dAppsOS để phát triển Ethereum, Hyperledger, NEM & Multichain.

#3. Blockchain Phân phối như một Dịch vụ

Ý tưởng

Buddy cho phép các nhà phát triển Blockchain hoạt động hiệu quả hơn bằng cách cho phép họ tập trung xây dựng chính xác những gì họ cần, cho dù đó là ứng dụng tài chính, theo dõi chuỗi cung ứng, ICO, chứng thực tài liệu, xác thực phân quyền và nhiều thứ khác.

Người dùng có thể tạo một Blockchain mới với bất kỳ loại được hỗ trợ nào chỉ bằng một cú nhấp chuột. Có thể triển khai các node Blockchain không giới hạn trên mỗi Buddy Instance cho các ứng dụng đa/ chéo chain. Điều này có thể được mở rộng hơn nữa bằng cách thêm nhiều Buddy Instance từ GRID tự động hóa chia sẻ để tạo ra các mạng lưới khổng lồ các node có thể được sử dụng để khởi động các blockchain mới.

Buddy cũng có thể lấp đầy blockchain với hàng triệu block có thể được sử dụng để chạy thử nghiệm với BaaS - một cách tự động thông qua các pipeline của Buddy hoặc bằng các bộ phận QA theo cách thủ công.

UScsucR.png

Blockchains à la Carte

Với sự hỗ trợ out-of-the-box cho Ethereum, HyperLedger, Multichain, NEM và Ripple, việc tạo ra các ứng dụng đa chuỗi không hề phức tạp. Không cần phải ghép nối các cơ sở hạ tầng và các node blockchain với môi trường phát triển. Các tổ chức có thể đưa ra quyết định thông minh hơn nhiều, có thể dễ dàng đánh giá nhiều công nghệ Blockchain trước khi đi vào chế độ sản xuất.

Blockchain lớn theo nhu cầu

Trong một thế giới nơi có ba tỷ người được kết nối trực tuyến, xe hơi tự lái và thiết bị nhà bếp có thể giao tiếp với nhau, các developer phải thử nghiệm các giải pháp của họ chống lại các mạng thực sự phân cấp. Vì lý do đó, Buddy cho phép Blockchain tạm thời không chỉ trải dài trên GRID Tự động hóa Riêng tư, mà còn sử dụng Buddy Instance có sẵn của những người dùng khác được đóng góp thông qua GRID Tự động Chia sẻ. Loại mạng này, cùng với Buddy Instances trực tuyến và ngoại tuyến tùy thuộc vào nhu cầu, tạo ra các kịch bản gần với cuộc sống thực nhất để thử nghiệm ứng dụng phân quyền.

Để làm cho nó hiệu quả về chi phí và cho phép người dùng có các mạng Blockchain lớn và liên tục - ngay cả với hàng nghìn node - giá của các nút do người dùng khác xử lý sẽ được tính bằng cách đo mức sử dụng tài nguyên thực tế liên quan đến giá của Đơn vị Điện toán.

BlockchainOps + dAppOS + Distributed BaaS

Nhờ kiến trúc mở của nền tảng, các mô-đun BlockchainOps và dAppsOS, và dịch vụ BaaS phân tán, Buddy giảm đáng kể các rào cản ngăn cản các developer bắt đầu học và sử dụng các công nghệ Blockchain trong phát triển ứng dụng.

Quy trình Phát triển dApp với Buddy

2ehqOBX.png
______________________________________________________________________________________________________________

Bài viết phân tích được thực hiện bởi Shibob đến từ diễn đàn Bitcointalk.

Bitcointalk Profile: https://bitcointalk.org/index.php?action=profile;u=1107745
 

shibob

Junior
Joined
Dec 7, 2017
Messages
206
Reactions
133
MR
0.001

Announcements

Today's birthdays

Forum statistics

Threads
425,404
Messages
7,156,580
Members
177,949
Latest member
HiimMadDoggo
Back
Top Bottom