Bài 4: Cách sử dụng Algokit – Dappflow và kết nối Wallet

Để sử dụng Algokit và dAppflow, ta thực hiện các bước chính như dưới đây:

Bước 1: Khởi động Docker, đã được hướng dẫn chi tiết ở bài 3.

Bước 2: Khởi động LocalNet, Algokit hỗ trợ sử dụng Algorand blockchain phiên bản local để thử nghiệm.

Tính năng AlgoKit LocalNet cho phép ta quản lý (khởi động, dừng, khởi động lại, quản lý) mạng Algorand riêng được bảo vệ dạng local. Tính năng này cho phép Ta tương tác và triển khai các thay đổi trên mạng Algorand của riêng ta mà không cần phải lo lắng về việc Chi tiền cho tài khoản TestNet, thông tin Ta gửi có thể nhìn thấy công khai hoặc được kết nối khi Internet được kích hoạt

Ta dùng lệnh algokit localnet start dưới đây để khởi động localnet:

algokit localnet start

Bước 3: Kích hoạt phần mềm dAppflow

Dappflow là một giao diện người dùng dựa trên web cho phép Ta trực quan hóa các tài khoản, giao dịch, tài sản và ứng dụng trên mạng Algorand và cũng cung cấp khả năng triển khai và triệu gọi hợp đồng thông minh. Nó có thể hoạt động với TestNet, MainNet và cả LocalNet. Hơn nữa, Ta cũng có thể tạo và cấp vốn cho các tài khoản trên LocalNet. Trong khi AlgoKit cung cấp cả giao diện lập trình và giao diện dòng lệnh để tương tác với Algorand, nó cũng cho phép Ta nhanh chóng mở Dappflow để Ta có thể tương tác và xem những gì đang diễn ra một cách trực quan nhất.

Dappflow có thể được khởi chạy từ AlgoKit bằng cách chạy lệnh sau từ chức năng terminal của VS Code Hoặc trong cửa sổ command line ta:

algokit explore

Sau khi thực hiện bước 3 ta có giao diện Web như dưới đây:

Mặc định chương trình hiển thị Explore như trên, bây giờ ta nhấn vào nút “LocalNet” ở góc phải trên cùng (gần nút Connect Wallet):

Ta có thể chọn các network khác để quan sát hay sử dụng, ví dụ chọn MainNet:

Sau khi chọn Active network qua MainNet, ta quay về Explore để xem kết quả:

Để vào App Studio, đây là công cụ ta sử dụng để triển khai Hợp đồng thông minh. Ta bấm vào “App Studio”:

Ta bấm vào link Dappflow, ta có giao diện Dappflow hiển thị ra như dưới đây:

Trong màn hình Dappflow ta có thể đổi Active Network:

Bước 4: Tạo Wallet và kết nối

Bây giờ ta cần tạo Wallet cho Localnet bằng cách bấm vào biểu tượng răng cưa như dưới đây:

Lúc này màn hình setting với 2 tab Nodes Local wallets sẽ xuất hiện ra như dưới đây:

Quan sát tab Nodes ở hình trên ta thấy Localnet đang “connected

Bây giờ ta bấm vào tab Local wallets:

Ta thấy nút “Create wallet”, nút này dùng để tạo wallet cho localnet. Ta bấm vào nó, một Address sẽ được tạo ra như hình dưới đây:

Ta nhấn chuột vào Address vừa được tạo ở trên, màn hình chi tiết sẽ hiển thị ra như dưới đây:

Bạn quan sát ở bên phải của địa chỉ sẽ có các biểu tượng: QR Code để scann địa chỉ, Raw data để hiển thị cấu trúc dữ liệu gốc của địa chỉ, và Dispense để phân bổ ngân sách cho wallet.

Ví dụ, nếu nhấn vào biểu tượng QR-Code:

Nếu nhấn vào biểu tượng Raw data:

Cuối cùng là ta nhấn vào biểu tượng “Dispense” để phân bổ ngân sách:

Khi bấm Dispense, màn hình Dispenser sẽ xuất hiện như trên, ta nhập giá trị Amount sau đó nhấn “Dispense“, lưu ý nếu gặp lỗi “Failed to fetch” thì nhớ khởi động lại Docker, chạy lại localnet rồi quay lại màn hình algokit sẽ thực hiện được.

Bây giờ ta nhấn nút “Dispense“, chờ hệ thống thực hiện giao dịch, khi giao dịch thành công ta sẽ thấy thông báo như dưới đây:

Thông báo như trên là đã thành công, bạn nhấn vào “View transaction” để xem chi tiết quá trình thực hiện giao dịch:

Ta quan sát màn hình trên là giao dịch thành công, đã báo Payment. thông tin Block, Sender address, Receiver Address (là Wallet local address của ta), số tiền Amount là 100Algo. Cũng như thông tin phí giao dịch, thời gian thực hiện, thời gian tồn tại.

Đồng thời số tiền cũng được hiển thị ở kế bên địa chỉ (BAL:100).

Bạn có thể tiếp tục thực hiện giao dịch Dispense. Ví dụ lần này là 500:

Sau khi bấm Dispense ta cũng có thông báo giao dịch thành công:

Tiếp tục bấm vào “View transaction” ta xem kết quả, thông tin chi tiế giao dịch hiện thị ra như bên dưới, cùng với BAL:600 đã được cộng dồn:

Như vậy, tới đây các Bạn đã biết cách sử dụng Algokit, biết cách tạo Localnet Wallet, kết nối nối Wallet, phân bổ ngân sách cho Wallet address để cập nhật Balance, khi đã có Balance >0 các bạn có thể thực hiện được các giao dịch Smart Contract trên nền tảng Blockchain này

Các bạn thực hiện lại nhiều lần thao tác này cho quen thuộc nhé

Bài học sau chúng ta sẽ thực nghiệm việc tạo một dự án Hợp đồng thông minh trong Visual Studio Code, cách biên dịch hợp đồng thông minh, cách Deploy hợp đồng thông mình lên nền tảng Algokit Dappflow này.

Các bạn chú ý theo dõi.

Chúc các bạn thành công

Bài 3: Cấu hình và sử dụng Docker cho Algokit

Trong bài số 2 Tui đã hướng dẫn cài đặt đầy đủ các phần mềm để có thể lập trình Hợp đồng thông minh trên Algorand Framework.

Bài học này Tui hướng dẫn các bạn cách cấu hình và sử dụng Docker cho Algokit. Vì các nền tảng Algorand sẽ thực hiện trên Docker. Tức là bạn bắt buộc phải chạy Docker trước thì mới tiến hành viết các mã lệnh hay triển khai hệ thống liên quan Algokit được.

Docker là nền tảng phần mềm cho phép bạn dựng, kiểm thử và triển khai ứng dụng một cách nhanh chóng. Docker đóng gói phần mềm vào các đơn vị tiêu chuẩn hóa được gọi là container có mọi thứ mà phần mềm cần để chạy, trong đó có thư viện, công cụ hệ thống, mã và thời gian chạy. Bằng cách sử dụng Docker, bạn có thể nhanh chóng triển khai và thay đổi quy mô ứng dụng vào bất kỳ môi trường nào và biết chắc rằng mã của bạn sẽ chạy được.

Ở bài trước ta đã cài thành công Docker, bài này ta cấu hình và bắt đầu sử dụng:

Để khởi động Docker ta vào Start Menu trong Windows rồi chọn “Docker Desktop”:

Lần đầu sử dụng Docker thì chương trình sẽ hiêu cầu “Docker Subscription Service Agreement” như hình đưới đây:

Chúng ta bấm Accept, màn hình dưới đây sẽ xuất hiện:

Chúng ta chọn “Use recommended settings (requires administrator password” rồi nhấn nút Finish, màn hình Welcome to Docker xuất hiện như dưới đây:

Chúng ta cần đăng ký tài khoản để sử dụng, hoặc bấm Skip. Trường hợp này Tui hướng dẫn đăng nhập bằng Google Email (các bạn cũng nên vậy)

Khi nhấn vào biểu tượng đăng nhập bằng Google ta có màn hình dưới đây:

Bấm continue để tiếp tục:

Ta bấm “Sign up” để đăng ký, sau đó chương trình sẽ hỏi ta mở Docker, ta chọn “Open Docker Desktop.exe” (các lần sau sẽ không có các màn hình này, mà nó chạy Docker lên luôn).

Khi bấm Open Docker Desktop.exe ta có các màn hình Welcome Survey như bên dưới (ta có thể nhấn Skip), trong trường hợp này Tui hướng dẫn các bạn làm đủ không Skip:

Ví dụ ta chọn Full-stack developer, sau đó qua bước 2

Giả sử ta chọn các cấu hình như trên rồi bấm Continue. Lúc này phần mềm Docker Desktop xuất hiện như dưới đây:

Tiếp theo ta mở Command Line và chạy script để kích hoạt algokit:

algokit localnet start

Sau khi kích hoạt algokit chạy trong môi trường localnet thành công ta có kết quả:

Lúc này 1 sandbox của Algokit được cài đặt vào Docker như hình:

Chúng ta có thể vào xem chi tiết bên trong của algokit sandbox:

Tới đây coi như ta đã cấu hình Docker Desktop thành công, và cài đặt được Algokit localnet trong Docker. Ta có thể kích hoạt script sau để mở phần mềm Algokit Framework:

algokit explore

Lúc này localnet được chạy trên trình duyệt như sau:

Chi tiết cách sử dụng lora algokit và dApp sẽ được trình bày ở bài học.

Các bạn cố gắng thực hiện được bài này, cài đặt thành công Docker, chạy được algokit localnet trên Docker, cũng như mở được lỏa algokit trên trình duyệt.

Chúc các bạn thành công!

Bài 2: Cài đặt công cụ lập trình Smart Contract – Algorand Framework

Trong bài 1 Tui đã tổng hợp và giới thiệu sơ lược về Algorand . Trong bài này, Tui hướng dẫn các bạn cách thức cài đặt các phần mềm cần thiết để có thể lập trình được Hợp đồng thông minh trên nền tảng Algorand. Với Algorand bạn có thể chạy Hợp đồng thông minh trên:

  • Localnet
  • Testnet
  • Mainnet
  • Betanet
  • Voinet
  • FNet

Tui sẽ hướng dẫn các bạn cách lập trình trên Localnet, và Mainnet với ví điện tử Defly (ALGO Coin).

Máy tính của bạn cần phải cài các phần mềm sau:

Có rất nhiều cách cài đặt, các bạn tiến hành theo các cách sau để cài đặt cho đầy đủ phần mềm liên quan:

Bước 1: Để cài đặt Git:

Cách 1 : Vào trực tiếp link để cài:

https://github.com/git-guides/install-git

Cách 2: Cài bằng command, Mở command line và gõ lệnh:

winget install git.git

Bước 2: Cài đặt Docker

Để cài Docker ta có thể:

Cách 1: Vào trực tiếp link để cài:

https://docs.docker.com/desktop/install/windows-install/

Cách 2: Cài bằng command, mở command line và gõ lệnh:

winget install docker.dockerdesktop

Ở màn hình trên, ta gõ lệnh cài đặt docker vào command line, sau đó nhấn Enter, ta có màn hình tiếp theo:

Trong màn hình trên, ta nhấn Y để tiếp tục:

Chờ cho tới khi chương trình báo hoàn tất cài đặt Docker:

Chi tiết cách sử dụng Docker sẽ được hướng dẫn ở những bài học sau.

Sau khi cài đặt xong Docker thì nhớ khởi động lại máy tính.

Bước 3: Để cài đặt Python các bạn vào link dưới đây và làm theo hướng dẫn:

https://tranduythanh.com/2024/08/15/bai-02-cach-tai-va-cai-dat-python/

Bước 4: Cài đặt pipx

Ta dùng các lệnh sau để cài đặt:

pip install --user pipx 
python -m pipx ensurepath

Ta lần lượt gõ các lệnh cài đặt pipx:

pip install --user pipx 

Nhấn Enter và chờ quá trình cài đặt pipx cho hoàn tất:

Tiếp theo cài đặt lệnh:

python -m pipx ensurepath

Sau khi cài đặt xong pipx thì nhớ khởi động lại commandline.

Bước 5: Cài đặt AlgoKit

Để cài đặt Algokit ta dùng lệnh:

pipx install algokit

Nếu muốn cập nhật Algokit ta dùng lệnh:

pipx upgrade algokit

Dưới đây là màn hình cài đặt algokit:

Chờ quá trình cài đặt algokit hoàn tất:

Ở trên là máy tính Tui cài đặt Python 3.12.2. và Algokit được cài đặt trên Python này.

Để kiểm tra phiên bản Algokit trong máy tính ta dùng lệnh:

algokit --version

Thực thi lệnh trên ta sẽ biết được phiên bản của Algokit:

Chi tiết cách sử dụng algokit sẽ được hướng dẫn ở những bài học sau.

Bước 6: Cài đặt VSCode 

Chuỗi các bài học sử dụng VSCode để lập trình Smart Contract bằng algokit framework, sử dụng ngôn ngữ Python để lập trình.

Để cài đặt Visual Studio Code, ta vào:

https://code.visualstudio.com/download

Giao diện minh hoạt Visual Studio Code lập trình Python với định dạng Juputer NoteBook:

Chi tiết cách sử dụng Visual Studio Code để lập trình sẽ được trình bày chi tiết ở những bài sau.

Như vậy tới đây các bạn đã cài đầy đủ công cụ liên quan để có thể lập trình được Hợp đồng thông minh bằng Algorand Framework.

Các bài học sau chúng ta sẽ đi vào chi tiết cách thức sử dụng và lập trình, đầu tiền là cách đăng ký và sử dụng Docker, sau đó là cách kích hoạt để sử dụng Algokit Explorer, tiếp tới là cách tạo dự án Smart Contract bằng ngôn ngữ lập trình Python trong Visual Studio code, cũng như cách deploy Hợp đồng thông minh lên dApp, thử nghiệm trên Localnet.

Các bạn chú ý theo dõi

Chúc các bạn thành công

Bài 1. Giới thiệu Algorand framework

Algorand là gì?

Algorand là một mạng lưới blockchain phi tập trung sử dụng cơ chế đồng thuận Proof-of-stake thuần túy (Pure Proof-of-Stake) được xây dựng trên Byzantine Agreement, khắc phục được các vấn đề phổ biến của hầu hết blockchain hiện nay như tốc độ giao dịch chậm, tính bảo mật thấp khả năng mở rộng thấp. Đây là 3 vấn đề lớn (scalability trilemma) mà hầu hết các Blockchain hiện hành đang gặp phải và chưa thể khắc phục được. Algorand cung cấp cho ta framework để lập trình liên quan tới dự án Blockchain cũng như các Hợp đồng thông minh.

Source: https://algorand.co/

Lý thuyết về Algorand được trình bày rất kỹ trên các diễn đàn, nên Tui tổng hợp lại từ các nguồn này, không phải Tui nghĩ ra. Ví dụ như CryptoViet, allinstation, coin68….

  • Pure Proof of Stake (PPoS) là một cơ chế đồng thuận trong blockchain, PPoS được xây dựng dựa trên nguyên tắc Byzantine Agreement, nhưng nó có một cách riêng biệt để lựa chọn người dùng tham gia vào việc tạo khối mới và bỏ phiếu cho các đề xuất khối. PPoS được chú ý bởi khả năng giải quyết một số vấn đề cơ bản của Proof of Work (PoW) truyền thống và thậm chí là một số giao thức Proof of Stake (PoS).
  • Trong PPoS, mức độ ảnh hưởng của mỗi người dùng trong mạng tỷ lệ với số tiền mà họ đầu tư vào hệ thống. “Stake” ở đây đề cập đến số tiền tiền điện tử mà một người dùng sở hữu. Nghĩa là, nếu bạn nắm giữ nhiều tiền hơn, bạn sẽ có vai trò lớn hơn trong việc tạo khối mới và kiểm tra giao dịch. Ví dụ, nếu bạn sở hữu 5% tổng số tiền trong hệ thống, trên lý thuyết bạn có khả năng tham gia vào việc đào hoặc kiểm tra 5% số lượng giao dịch. Cơ chế này đảm bảo rằng những người có lợi ích lớn nhất trong mạng chịu trách nhiệm đảm bảo an toàn và đồng thuận chung của mạng.
  • Một trong những ưu điểm quan trọng của Pure Proof of Stake là tính dễ tiếp cận. Không giống như Proof of Work (PoW) truyền thống, đòi hỏi tài nguyên máy tính và tiêu tốn năng lượng lớn, hoặc thậm chí một số hệ thống Proof of Stake (PoS) chỉ dành cho người giàu, PPoS làm cho quá trình đào và kiểm tra khối trở nên dễ dàng tiếp cận hơn đối với nhiều người. Điều quan trọng là chỉ cần một máy tính có kết nối internet và một ít tiền điện tử để tham gia vào hoạt động của mạng.
  • Algorand định hướng cung cấp cho các doanh nghiệp trên toàn cầu một nền tảng phi tập trung, an toàn, hiệu quả và là nơi tất cả mọi người đều nhận được quyền lợi và được tham gia xây dựng, đóng góp vào mạng lưới trong một nền kinh tế hoàn toàn phi tập trung.
  • Tại Algorand, một khối từ khi sinh ra sẽ trải qua 2 giai đoạn để được gắn chính thức vào chuỗi. Theo cơ chế này thì giao dịch không phải chờ đợi quá lâu, và không có tình trạng giao dịch bị thay đổi trong quá trình đang thực thi.

Các giai đoạn này được mô tả sơ lược như sau:

  • Giai đoạn đề xuất: Hệ thống sẽ chọn ra một token một cách ngẫu nhiên. Người sở hữu token này sẽ được quyền đề xuất khối tiếp theo cho mạng lưới.
  • Giai đoạn bỏ phiếu: Sau khi một khối mới được đề xuất lên mạng lưới, một hội đồng gồm 1000 người được lựa chọn ngẫu nhiên sẽ tham gia bỏ phiếu xác nhận khối. Đặc điểm này giúp cho blockchain Algorand tránh được các cuộc tấn công. Bởi đơn giản là tất cả đều ngẫu nhiên, kẻ tấn công sẽ không biết khi nào mình mới có cơ hội để gian lận.

Algorand, được phát triển bởi Silvio Micali, người đoạt giải Turing và giáo sư tại MIT, là một ví dụ tiêu biểu về giao thức blockchain sử dụng Pure Proof of Stake. Algorand giải quyết một số vấn đề quan trọng đã gây khó khăn cho các giao thức blockchain khác:

  • Quy mô: Algorand có khả năng xác nhận giao dịch gần như tức thì, giải quyết các hạn chế về lưu lượng giao dịch mà các blockchain như Bitcoin và Ethereum đối diện. Việc xác nhận nhanh chóng này quan trọng cho các ứng dụng thực tế.
  • Bảo mật: Algorand đạt được tính bảo mật bằng cách triển khai Pure Proof of Stake và một sơ đồ Byzantine Agreement tinh tế. Tính bảo mật cao này quan trọng để bảo vệ mạng lưới khỏi các bên xấu.
  • Phân tán: Mạng lưới Algorand đảm bảo phân phối đồng đều về token, thúc đẩy một mạng lưới thực sự phân tán mà không có các nút hoặc vai trò đặc biệt. Điều này tăng cường tính ổn định và đáng tin cậy của mạng lưới.

Thông tin Algo Token and Token Metrics

  • Token Name: ALGO Token.
  • Ticker: ALGO.
  • Blockchain: Algorand Blockchain.
  • Token Standard: Updating…
  • Contract: Updating…
  • Token type: Utility Token.
  • Total Supply: 10,000,000,000 ALGO.
  • Circulating Supply: 5,853,998,621 ALGO.
  • Team, Foundation và nhà đầu tư: 25%
  • Public Sale: 30%
  • Trợ cấp vận hành node: 25%
  • Phần thưởng cho người tham gia: 17.5%
  • Trợ cấp cho người dùng cuối: 2.5%

Trong Algorand, quá trình tạo khối diễn ra ở các khoảng thời gian ngẫu nhiên, với một khối mới được tạo mỗi khoảng thời gian khoảng 5 giây. Quá trình này bắt đầu với một nhóm các Block Producer được chọn ngẫu nhiên chọn ra một người lãnh đạo cho mỗi chu kỳ khối. Người lãnh đạo được bầu chọn thông qua một giao thức Byzantine Agreement đa vòng gọi là Binary Byzantine Agreement (BBA), trong đó các BP tương tác với nhau ngoại tuyến cho đến khi đạt được sự thống nhất về người đề xuất khối.

Chúng ta có thể tìm hiểu và triển khai các dự án về Blockchain, hợp đồng thông minh từ trang https://developer.algorand.org/.

Dưới đây là minh họa lập trình hợp đồng thông minh sử dụng nền tảng Algorand DApplow:

Bài học sau Tui sẽ hướng dẫn các bạn cách thức cài đặt các phần mềm liên quan để có thể lập trình được hợp đồng thông minh với Algorand. Các bạn chú ý theo dõi