CHƯƠNG 2 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1. HỆ THỐNG PHÁT TRIỂN BLOCKCHAIN CÁ NHÂN
2.1.1. Ngôn ngữ Solidity
Hình 2.1 Solidity
Solidity là một ngôn ngữ lập trình hướng hợp đồng để viết các hợp đồng thông minh. Nó được sử dụng để thực hiện các hợp đồng thông minh trên các nền tảng blockchain khác nhau. Nó được phát triển bởi Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Liana Husikyan, Yoichi Hirai và một số cựu cộng tác viên cốt lõi của Ethereum để cho phép viết các hợp đồng thông minh trên nền tảng blockchain như Ethereum.
Hiện tại, Solidity là ngôn ngữ chính trên Ethereum cũng như trên các blockchain khác chạy trên các nền tảng cạnh tranh với Ethereum, chẳng hạn như Monax và khối chuỗi Hyperledger Burrow, sử dụng Tendermint cho sự đồng thuận. SWIFT đã triển khai bằng chứng về khái niệm sử dụng Solidity chạy trên Burrow.
SVTH: Hà Văn Thạnh 25
2.1.1.1. Mô tả
Hình 2.2. Solidity Compiler
Solidity là một ngôn ngữ lập trình được đánh máy tĩnh được thiết kế để phát triển các hợp đồng thông minh chạy trên EVM. Solidity được biên dịch thành bytecode có thể thực thi trên EVM. Với Solidity, các nhà phát triển có thể viết các ứng dụng thực hiện logic kinh doanh tự thực thi được thể hiện trong các hợp đồng thông minh, để lại một bản ghi giao dịch không đáng repudiable và có thẩm quyền. Viết các hợp đồng thông minh trong các ngôn ngữ cụ thể của hợp đồng thông minh như Solidity khá dễ dàng (cho những người đã có kỹ năng lập trình).
2.1.1.2. Công cụ phát triển
Remix, IDE chính thức của Solidity
Superblocks Lab, Solidity IDE cho Ethereum
Microsoft Visual Studio
ConsenSys Enterprise
SVTH: Hà Văn Thạnh 26
ErisDB của AWS
Hedera, nền tảng băm Hedera hỗ trợ các hợp đồng thông minh được viết bằng Solidity
2.1.1.3. Nền tảng Blockchain thích hợp
Solidity thích hợp trên:
Ethereum
Ethereum Classic
TendermintvàErisDB (một phiên bản của Tendermint)
Counterparty (chạy trên Bitcoin)
2.1.2. Công cụ Ganache
Hình 2.3. Ganache
Ganache là một blockchain cá nhân để phát triển Ethereum, bạn có thể sử dụng để triển khai các hợp đồng, phát triển các ứng dụng của mình và chạy thử nghiệm.
Nó có sẵn một ứng dụng PC cũng như một công cụ dòng lệnh (trước đây gọi là TestRPC). Ganache có sẵn cho Windows, Mac và Linux.
SVTH: Hà Văn Thạnh 27
2.1.3. Truffle Framework
Hình 2.4.Truffle Framework
Một môi trường phát triển đẳng cấp thế giới, khung kiểm thử và đường dẫn tài sản cho các blockchains sử dụng Máy ảo Ethereum (EVM), nhằm làm cho cuộc sống trở thành một nhà phát triển dễ dàng hơn. Với Truffle, ta nhận được:
Xây dựng hợp đồng thông minh tích hợp, liên kết, triển khai và quản lý nhị phân.
Kiểm tra hợp đồng tự động để phát triển chúng một cách nhanh chóng.
Quản lý mạng để triển khai cho bất kỳ mạng công cộng và riêng tư nào.
SVTH: Hà Văn Thạnh 28