[Blockchain] Solana Toàn Tập
Bài này chúng ta sẽ tìm hiểu về Solana . Mục đích là sau bài học này chúng ta có thể hiểu rõ tường minh những khái niệm của Solana mà cách để viết smart contract cũng như thao tác với mạng này
Solana network là gì?
Là một mạng blockchain thế hệ thứ 3 (Sau Etherium, Bitcoin) viết bằng ngôn ngữ lập trình Rust.
Thuật ngữ quan trọng
Trong Solana có hàng tá các thuật ngữ. Mình sẽ điểm lại những thuật ngữ quan trọng không chỉ cho những người tìm hiểu về Solana mà là về blockchain là gì
Tưởng tượng rằng, mỗi mạng blockchain sẽ bao gồm nhiều node
. node
có thể hiểu là các máy tính. Mỗi máy này sẽ cần cài đặt một chương trình giống nhau và có thể giao tiếp với nhau.
Dữ liệu dược giao tiếp với nhau và cách thức giao tiếp (như gửi qua rồi gửi lại) sẽ thường được gọi là protocol
. Để có thể hình thành được blockchain
, các node
này cần tạo ra được
các block
và nối với nhau thành chain
. Mỗi 1 block
sẽ lưu trữ giữ liệu của các giao dịch ví dụ như A chuyển tiền cho B, C chuyển tiền cho D (như mạng Bitcoin) hoặc có thể lưu trữ
bất kỳ dữ liệu (như Etherium và các mạng sau này thích lưu trữ hợp đồng thông minh, giống như 1 loạt các điều khoản gì đó). Các dữ liệu trên mỗi block chain phải có đặt tính là không thể được sửa. Bằng cách lưu trữ giữ liệu blockchain nối tiếp nhau kèm theo việc giải một bài toán cực khó (bài toán đồng thuận để tạo ra block) dẫn đến việc các khối blockchain
sẽ có xác suất cực thấp
trong việc sửa đổi và có thể coi như bằng không.
Vậy là bạn đã hiểu được blockchain network
là gì rồi. Sau này có ai hỏi bạn về blockchain
bạn chỉ cần mô tả như vậy là có thể hình dung cơ bản.
Đi sâu một chút. Ví dụ A chuyển tiền cho B hình thành 1 transaction.Muốn chuyển được phải có địa chỉ để chuyển. Mỗi người sẽ có 1 địa chỉ trên mạng. Nó tương đương như việc địa chỉ thùng thư của bạn. Ai cũng có quyền nhìn thấy địa chỉ này và có thể gửi thư cho bạn. Nó có thể được coi public key
. Khi nhận thư thường bạn sẽ phải nhập password
để chứng minh bạn là chủ nhân của thùng thư này. Điều này có thể so sánh với thuật ngữprivate key
. Public and private key hình thành một cặp với nhau, không ai có thể từ public
biết được private
đó là một đặc tính cần có, không ai muốn thùng thư của bạn bị người khác đọc cả.
Thuật ngữ trong SOLANA
Solana cũng là một blockchain network như trên. Nó định nghĩa thêm một số thuật ngữ khác khó hiểu để thách thức bạn
Account
: Đây có thể nói là một thuật ngữ quan trọng nhất trong Solana. Mọi thứ trong solana đều là account.Account
được hiểu như một chuỗi các bytes (dữ liệu) có cấu trúc có địa chỉ nhất định trong mạng. Ví dụ, giả sử bạn tạo ra 1 smart contract của riêng bạn, nó sẽ được gọi làprogram
, nhưng nó cũng được được gọi làaccount
vì thật sự bạn viết 1progranm
, lúc biên dịch ra thì nó sẽ gồm 1 chuỗi các bytes có cấu trúc, nó sẽ đượcký
bởi bạn, bạn cũng sẽ trả 1 ít tiền (một ít SOL) cho nó được gửi lên 1blockchain
và nằm yên vị trong một block nào đó. SOLANA sẽ thiết kế cho bạn 1 địa chỉ nào đó thật ngầu để khi bạn cần bạn chỉ gần gọi nó địa chỉ đó là bạn có thể tìm ra cái đoạn codeprogram
về và thực thi các hàm trong đó.Account Address
: Địa chỉ của mỗi account nói ở trên. Nó là một chuỗi base58 gồm 44 ký tự để biểu thị.
Bạn có thể sẽ nghe đến một đống cái thuật ngữ khác token account
, associated token account
... Chúng cũng chỉ là 1 đoạn dữ liệu nào đó thôi.
PDA
: Mỗi 1account
sẽ có 1 địa chỉ như đã tìm hiểu. thế còn PDA là gì. Nó dịch làĐịa chỉ kế thừa chương trình
. Nó cũng là 1 địa chỉ nhưng nó được suy ra từ chương trình và một số dữ liệu nào đó. Ví dụ như sau, anh X có 10 cái oto với 10 hãng khác nhau. Anh ấy mua biển cho 10 cái oto ấy với quy tắc,X-<BrandCar>-8888
Nghĩa là tên a ấy, rồi tiếp là hãng xe với số8888
(luôn là 8888 nhé). Vây giờ nếu bạn biết tên và đang nói đến hãng xeAudi
chẳng hạn, bạn sẽ chẳng ngần ngại mà nói rằng biển số của a ấy sẽ làX-Audi-8888
. Qúa dễ phải không nào ? Người ta sử dụng cái địa chỉa PDA này để lưu trữ địa chỉ của mỗiaccount
khi biết những thông tin liên quan. Đây thực sự là một cách thông minh để tìm kiếm dữ liệu trên blockchain.