Canister – Hợp đồng thông minh thế hệ mới trên ICP
Đường link lạ của Internet Computer
Đã bao giờ anh em tự hỏi, tại sao đường link dẫn đến các website của Internet Computer trông nó cứ là lạ chưa?
Giao thức Internet Computer sử dụng một hệ thống địa chỉ vô cùng độc đáo. Thay vì sử dụng các URL truyền thống, ICP lại “đặt tên” cho mỗi hợp đồng thông minh thế hệ mới (Canister) bằng một mã định danh duy nhất. Anh em cần phải sử dụng những đoạn mã định danh này để tương tác với các canister, chẳng hạn như muốn truy cập front-end của Daap, thì anh em cần phải truy cập vào đúng đướng dẫn bao gồm mã định danh của canister đó. Điều này có thể làm cho các liên kết trông khác với những gì anh thường thấy trên web truyền thống.
Liên kết để tương tác với hợp đồng thông minh thế hệ mới (Canister) có thể trông giống như sau:
“https://<canister-id>.ic0.app/”
Ví dụ: https://az5sd-cqaaa-aaaae-aaarq-cai.ic0.app/
Trong đó
– Phần <canister-id> của URL là mã định danh duy nhất của hợp đồng thông minh đó. Định danh kiểu này giúp tăng cường bảo mật trong khi đang địa chỉ hoá các ứng dụng trên ICP, cải thiện tính phi tập trung. Trong ví dụ trên, Canister ID của dự án Distrikt là “az5sd-cqaaa-aaaae-aaarq-cai”
Do đó, lúc đầu, có lẽ ai cũng sẽ chột dạ khi bấm vào đường “link lạ” trông rất đáng nghi ngờ này. Nên dù các liên kết có thể trông hơi khác một chút nhưng chúng sẽ hoạt động giống như bất kỳ liên kết nào khác trên Web2 bình thường mà anh em từng truy cập thôi.
Đã có Smart Contract, sao lại phải cần tới “Canister”?
Đã có hợp đồng thông minh “Smart Contract”, tại sao phải cần tới hợp đồng thông minh thế hệ mới “Canister” ? Có phải ICP đang cố gọi tên theo kiểu khác để chứng tỏ mình đặc biệt?
Thực ra không phải vậy anh em ạ. Canister thực sự là một kiểu hợp đông thông minh, nhưng mang trong mình rất nhiều cải tiến và ưu việt hơn hẳn hợp đồng thông minh trên các Blockchain khác như Ethereum.
Giám đốc kĩ thuật DFINITY nói về Canister
Canister chính là những viên gạch để tạo nên giao thức Internet Computer
Khi nãy mình đã định nghĩa Canister là một hợp đồng thông minh thế hệ mới. Còn cụ thể hơn như sau
- – Một canister chính là một đơn vị tính toán cơ bản (actor). Canister được tạo nên từ các đoạn code, trạng thái và dữ liệu gộp lại với nhau.
- – Canister có khả năng lưu trữ dữ liệu. Việc đọc/lưu dữ liệu trên ICP thực chất là đọc/lưu dữ liệu trực tiếp từ các canister (1)
- – Các canister có thể chạy các luồng thực thi một cách đồng thời cùng nhau (2)
- – Các canister có khả năng tương tác với nhau và tạo ra canister mới (3)
- – Các canisters có khả năng gửi và nhận các tin nhắn hai chiều, tức là cả yêu cầu và phản hồi (4)
Kết hợp (1), (2), (3), (4), điều này mang lại cho Canister vượt qua được thách thức bị giới hạn khả năng mở rộng mà các nền tảng dùng smart contract đang gặp phải.
Ngoài ra, một ứng dụng phi tập trung được xây dựng trên Internet Computer có thể được tạo thành từ một hoặc nhiều canisters.Canister được code bằng bất cứ ngôn ngữ nào tương thích với ngôn ngữ WebAssembly. Canister có thể có nhiều loại khác nhau, chẳng hạn như canister back-end, canister giao diện người dùng (front end). Cái link loằng ngoằng mà mọi người nhập vào trình duyệt để vào web, chính là đường dẫn đến canister giao diện người dùng đó ạ.
Do đó, khi càng có nhiều canister được triển khai trên ICP, điều đó chứng tỏ mạng lưới ngày càng phát triển, số lượng Daaps càng nhiều. Anh em có thể xem tổng số canister trên dashboard của Internet Computer
Số lượng Canister phản ánh sự phát triển của mạng lưới
Qua bài viết này, Shiba đã giới thiệu với anh em về Canister – một smartcontract thế hệ mới, hiện đại hơn. Hiểu hơn về Canister sẽ giúp anh em tương tác và lập trình trên ICP thuận lợi, dễ dàng. Hẹn gặp lại anh em trong các bài viết sau