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 1 progranm, 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ẽ được 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 1 blockchain 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 code program 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 1 account 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 xe Audi 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ỗi account 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.