Đây là một ví dụ sử dụng Smart Contract, Ethereum Blockchain để làm web voting (bỏ phiếu). User sẽ phải dùng Ether để mua 1 số token, sau đó dùng token để bỏ phiếu. Từ đó việc voting là public, minh bạch và không ai có thể can thiệp, sửa đổi được vì lưu trên Blockchain.
Một số từ khóa quan trọng:
Solidity
: Ngôn ngữ viết smart contract. Trường hợp này smart contract như 1 class lập trình để xử lý và lưu trữ thông tin vote.
Truffle
: Framework giúp deploy SC dễ dàng hơn cũng như tạo web để thao tác với SC.
Geth
: command line tool của Ethereum Blockchain, cái này cực kỳ quan trọng vì mình cần chạy 1 node trong blockchain để sync toàn bộ blockchain. Tool này có thể chạy miner Ether, tạo private blockchain (theo Ethereum protocol).
Rinkeby
: một testnet để các dev vọc thử, không bị mất Ether thật. Testnet này cung cấp luôn trang etherscan để tra cứu các block và transaction y chang như mainnet không khác gì cả.
Web3
: Thư viện JS cung cấp các API tương tác với Smart Contract thông qua 1 RPC run từ lệnh Geth ở trên.
Metamask
: một extension trên Chrome, với dev thì công cụ này cung cấp 1 web3 provider link với wallet luôn, thao tác sẽ tiện hơn. Trên thực tế các DWeb dùng cái này rất nhiều.
IPFS
: Protocol cung cấp khả năng lưu trữ file vật lý phân tán. File được định danh với mã mQ… Protocol này kết hợp Bitorrent, Git để phân tán file khắp nơi. Cái này thật sự rất hay. Dùng thêm cái này thì toàn bộ website có thể Decentralize 100%.
Tác giả: Việt Trần