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

Discussion in 'Announcements' started by shibob, Jul 5, 2018.

Moderators: wwwcuongit
  1. shibob

    shibob Senior Member

    Joined:
    Dec 7, 2017
    Messages:
    352
    Likes Received:
    87
    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


    [​IMG]

    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.

    [​IMG]

    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

    [​IMG]

    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.

    [​IMG]

    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.

    [​IMG]

    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

    [​IMG]
    ______________________________________________________________________________________________________________

    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
     
  2. shibob

    shibob Senior Member

    Joined:
    Dec 7, 2017
    Messages:
    352
    Likes Received:
    87
  3. shibob

    shibob Senior Member

    Joined:
    Dec 7, 2017
    Messages:
    352
    Likes Received:
    87
    Các bạn nhớ theo dõi thêm về nền tảng Buddy và các đánh giá cũng như đối tác của Buddy để thấy được tiềm năng của dự án nhé.

    Website nền tảng của dự án: https://buddy.works/

    [​IMG]

    [​IMG]
     
  4. shibob

    shibob Senior Member

    Joined:
    Dec 7, 2017
    Messages:
    352
    Likes Received:
    87
    Các bạn là lập trình viên, các bạn thích tìm hiểu và thử nghiệm về phát triển ứng dụng, các bạn nhớ theo dõi những hướng dẫn chi tiết và đầy bổ ích của Buddy ở liên kết dưới đây nhé:

    https://buddy.works/guides

    [​IMG]
     

Share This Page