Các bước phát triển một ứng dụng Blockchain

Một phần của tài liệu Bài tập lớn Blockchain Một số công nghệ phát triển phần mềm Đại học Công nghiệp Hà Nội (Trang 26 - 30)

Để phát triển một ứng dụng blockchain hiện nay cần phải có một quy trình rõ ràng để ứng dụng đi đúng hướng và có kết quả tốt. Trước hết, để bắt đầu phát triển một ứng dụng có sử dụng blockchain, tối thiểu người xây dựng cần có những kiến thức cơ bản về blockchain, nguồn gốc, sự hình thành, cấu trúc, cách sử dụng…

6.1. Phát triển ý tưởng

Quá trình phát triển bất kỳ ứng dụng nào, cũng cần bắt đầu bằng việc xác định vấn đề đang diễn ra và cách để giải quyết nó. Cần xác định blockchain có thực sự có ích cho dự án sắp tới, các lợi ích chính mà cơng nghệ này có thể đem lại cho dự án cũng như cho cá nhân hoặc tổ chức sản xuất. Thực hiện phân tích lợi ích/chi phí, kiểm tra tiềm lực và xác định các vấn đề và rủi ro liên quan. Sau đó đưa ra quyết định là nên dùng Blockchain hay cách truyền thống sẽ tốt hơn. Có rất nhiều rủi ro có thể xảy ra liên quan đến thời gian, kinh phí, nguồn lực, … Ngồi ra, tính bảo mật thơng tin cũng khơng được đảm bảo tồn vẹn nếu như khơng phân tích rõ về các chức năng, nhu cầu sử dụng mà đưa ra quyết định vội vàng. Điều này là do việc phát triển blockchain rất tốn kém, đặc biệt là khi tìm kiếm tài năng để phát triển và quản lý nó.

Ví dụ như ứng dụng truy xuất nguồn gốc sử dụng blockchain, điều này sẽ đem lại lợi ích lớn cho doanh nghiệp, người sản xuất cũng như người dùng khi mà thơng tin về q trình sản xuất, phát triển sản phẩm được lưu trữ chính xác và khơng thể bị sửa đổi.

6.2. Chọn nền tảng phát triển

Khi đã xác định được vấn đề và quyết định sử dụng blockchain, điều quan trọng tiếp theo cần thực hiện là xác định nền tảng hoặc cơng nghệ phù hợp để sử dụng. Có hai cách cơ bản có thể thực hiện:

6.2.1. Tạo Blockchain mới

Cá nhân hoặc tổ chức sản xuất có thể tạo ra blockchain của riêng mình, nơi mọi thứ từ thuật tốn đến xác thực giao dịch, thông tin, từ ngăn xếp cơng nghệ đến phí giao dịch mã thơng báo đều được quyết định. Đây là cách phát triển blockchain toàn diện nhất, nhưng cũng gây tốn kém nhất.

6.2.2. Sử dụng nền tảng phát triển

Nền tảng Blockchain (Blockchain platform) giúp xây dựng một ứng dụng phi tập trung mà không cần tạo một blockchain riêng biệt từ đầu. Hầu hết các nền tảng này ngày nay là nguồn mở do đó sự lựa chọn của lập trình viên nên phụ thuộc vào phương pháp đồng thuận và vấn đề cần phải giải quyết.

Một số nền tảng phổ biến bao gồm: Ethereum, BigChainDB, Hyperledger Fabric, Quorum, …

Cần có một sự lựa chọn đảm bảo những ưu và khuyết điểm của mỗi loại. Trong trường hợp ứng dụng blockchain cấp doanh nghiệp, nên đặt trọng tâm đặc biệt vào sự ổn định và bảo mật của nền tảng blockchain.

6.3. Thiết kế cấu trúc

Do việc phát triển Blockchain rất tốn kém, trước tiên nên phát triển một ứng dụng proto để đảm bảo mọi thứ hoạt động như dự định, trước khi triển khai nó trên một máy chủ trực tiếp hoặc nền tảng blockchain hiện có như Ethereum.

Trong q trình phát triển proto, nên quyết định phần nào của ứng dụng sẽ là “on-chain” – trên chuỗi và phần nào là “off-chain” – ngồi chuỗi. Có rất nhiều khía cạnh của nền tảng mà một khi đã cấu hình, thì rất khó thay đổi. Một số thành phần chính bao gồm quyền của người dùng, cơ chế phát hành tài sản và tái cấp vốn, trao đổi nguyên tử, sự đồng thuận, quản lý khóa và cấu trúc, thông số, chữ ký, định dạng lắc tay và địa chỉ. Nói cách đơn giản, nhiệm vụ chính là đang tạo ứng dụng web hoặc ứng dụng di động sử dụng blockchain, nên có thể có các chức năng bình thường có thể chạy trên dịch vụ lưu trữ đám mây nói chung và

khơng u cầu blockchain. Sau đó, sẽ có phần giao dịch của ứng dụng, có thể sẽ đặt trên nền tảng blockchain.

Cố gắng giữ cho các API trên chuỗi của bạn tách biệt với các API ngồi chuỗi, vì chúng sẽ được lưu trữ ở những nơi khác nhau. Quyết định các thuật toán đồng thuận và chiến lược giao dịch cho ứng dụng. Nếu ứng dụng đang sử dụng nền tảng blockchain hiện có, giai đoạn này sẽ dễ dàng hơn vì rất nhiều thứ đã được triển khai hiệu quả trong các nền tảng này.

Các API cần có và thường xuyên sử dụng như:

• Tạo khóa, địa chỉ

• Chức năng xác thực dữ liệu

• Sử dụng chữ ký số và hàm băm

• Lưu trữ và truy xuất dữ liệu

6.4. Quá trình phát triển

Đây là yếu tố cốt lõi của sự phát triển ứng dụng blockchain. Trong quá trình này sẽ gồm nhiều giai đoạn nhỏ hơn

6.4.1. Phân tích nghiệp vụ

Tại gia đoạn này, một nhà phân nghiệp vũ sẽ đưa ra các yêu cầu, kỳ vọng và mục tiêu của các nghiệp vụ trong một cuộc phỏng vấn và tạo ra một bản đặc tả. Tài liệu này mơ tả mọi chi tiết của q trình phát triển, từ những người chịu trách nhiệm phát triển và truyền thông đến các khuôn khổ, thư viện và hệ điều hành.

6.4.2. Thiết kế

Tùy thuộc vào độ phức tạp của nó, thiết kế có thể chiếm từ 8% đến 20% tổng ngân sách phát triển.

6.4.3. Chuẩn bị

Điều này bao gồm thiết lập môi trường phát triển, API, phụ trợ và kiến trúc.

6.4.4. Phát triển và đảm bảo chất lượng

Các bước này xảy ra đồng thời như một quá trình liên tục. Trước khi triển khai, kỹ sư QA chạy kiểm tra hồi quy đầy đủ để kiểm tra xem mọi thứ có hoạt động chính xác hay khơng.

6.4.5. Triển khai

Ứng dụng có thể được triển khai trên một số nền tảng điện thoại, máy tính, … Để thành công, ứng dụng phải tuân thủ tất cả các quy tắc và điều kiện của App Store hoặc Google Play Store. Sau khi triển khai, điều quan trọng là phải phân tích cả dữ liệu hiệu suất và phân tích người dùng.

6.4.6. Bảo trì và hỗ trợ

Điều này bao gồm các bản cập nhật cho thư viện, khuôn khổ và hệ điều hành, cũng như triển khai các tính năng mới và thực hiện các thay đổi đối với ứng dụng theo nhu cầu kinh doanh hiện tại của.

6.5. Triển khai và duy trì ứng dụng

Triển khai là giai đoạn cuối cùng của quá trình phát triển một ứng dụng sử dụng blockchain. Sau khi sản phẩm sẵn sàng và đã chạy tất cả các bài kiểm tra cuối cùng, ứng dụng của bạn cuối cùng cũng được công bố và đưa vào sử dụng. Giờ đây, công việc tiếp theo là thu thập dữ liệu trong ứng dụng và xem cách mọi người phản hồi với nó.

Bảo trì là một trong những dịch vụ phát triển ứng dụng blockchain quan trọng nhất. Để duy trì chức năng và bảo mật của ứng dụng, cần cập nhật ứng dụng để hỗ trợ các phiên bản mới của hệ điều hành và thư viện.

Một phần của tài liệu Bài tập lớn Blockchain Một số công nghệ phát triển phần mềm Đại học Công nghiệp Hà Nội (Trang 26 - 30)