Thông điệp và giao dịch

Tất cả các tương tác với mạng Venom đều được thực hiện thông qua các tin nhắn.

Điều kiện tiên quyết

Để giúp bạn hiểu rõ hơn trang này, chúng tôi khuyên bạn nên đọc trước Bài viết về Tài khoản.

Tin nhắn

Một tin nhắn được gửi đến một tài khoản sẽ kích hoạt việc tạo ra một giao dịch thay đổi trạng thái của tài khoản. Tin nhắn bao gồm các hướng dẫn để thực thi một smart contract (một tài khoản).

Các loại tin nhắn

Mạng Venom có ba loại tin nhắn khác nhau:

Inbound external message: Đây là một tin nhắn được gửi từ bên ngoài blockchain vào blockchain. Những tin nhắn này không có địa chỉ 'from' và có thể được gửi bởi các người dùng thông thường, dịch vụ bên ngoài và bất kỳ người tham gia bên ngoài blockchain nào, được gọi là "tin nhắn từ đâu". Các tin nhắn inbound external này khởi động các thay đổi đối với trạng thái của blockchain.

Tin nhắn external không thể là tin nhắn mang giá trị từ một người tham gia đến người khác, nó chỉ có thể tuyên bố ý định chuyển giá trị đến tài khoản khác.

Internal message: Đây là một tin nhắn được gửi từ một hợp đồng đến một hợp đồng khác. Tương tự như tin nhắn inbound external, nó cập nhật trạng thái của mạng Venom.

Chỉ có Internal message mới có thể là tin nhắn mang giá trị.

Outbound external message: Được gọi là "tin nhắn đến đâu" hoặc "sự kiện". Đây là một tin nhắn có thể được phát ra bởi một hợp đồng thông minh. Các bên ngoài blockchain có thể đăng ký nhận các sự kiện trong mạng Venom và nhận chúng.

Cấu trúc tin nhắn

Một tin nhắn bao gồm các phần như 'header' và 'body'.

Phần header chứa thông tin về người gửi, người nhận, giá trị và thông tin cần thiết để người xác thực áp dụng tin nhắn vào khối.

Phần body của tin nhắn bao gồm các lệnh máy ảo cần thiết để thực thi hợp đồng thông minh.

Giao dịch

Một giao dịch là kết quả trực tiếp của việc xử lý chính xác một tin nhắn đầu vào bởi mã tài khoản nhận. Khi một tin nhắn đầu vào được nhận bởi một tài khoản, nó dẫn đến tính toán trạng thái mới của tài khoản và khả năng tạo ra một hoặc nhiều tin nhắn đi ra với tài khoản đóng vai trò là nguồn. Tin nhắn đầu vào và trạng thái trước đó của tài khoản được sử dụng làm đầu vào cho giao dịch, trong khi các tin nhắn đi ra được tạo ra và trạng thái tiếp theo của tài khoản được sử dụng làm đầu ra. Mối quan hệ này có thể được đại diện dưới dạng Đồ thị có hướng và không có chu trình (DAG).

Các giai đoạn giao dịch

Một giao dịch là một quá trình đa bước gồm một số giai đoạn riêng biệt, mỗi giai đoạn có mục đích cụ thể của nó. Mỗi giai đoạn là một bước logic trong việc thực thi tin nhắn và có thể hoàn thành thành công hoặc gây ra lỗi. Nếu xảy ra lỗi, giai đoạn tiếp theo sẽ không được thực thi.

Mục đích của giai đoạn credit là thêm giá trị của tin nhắn nội bộ đã nhận vào số dư tài khoản.

Giai đoạn lưu trữ có trách nhiệm thu thập các khoản thanh toán lưu trữ cho trạng thái tài khoản, bao gồm mã hợp đồng thông minh và dữ liệu. Giai đoạn lưu trữ sẽ không xuất hiện nếu giao dịch được gửi để triển khai một hợp đồng thông minh mới, chưa tồn tại trước đó. Trong suốt giai đoạn này, hợp đồng thông minh có thể bị đóng băng nếu số dư của nó không đủ để trả phí lưu trữ.

Giai đoạn tính toán là nơi mã hợp đồng thông minh được gọi trong một phiên bản của TVM với các tham số phù hợp, bao gồm thông điệp đầu vào và dữ liệu lưu trữ cố định của tài khoản. Giai đoạn này kết thúc với một mã thoát ra, dữ liệu cố định mới và một danh sách hành động, bao gồm các thông điệp đi ra cần gửi đi. Giai đoạn xử lý có thể dẫn đến việc tạo một tài khoản mới (chưa khởi tạo hoặc hoạt động) hoặc kích hoạt một tài khoản chưa được khởi tạo hoặc bị đóng băng trước đó. Chi phí gas, bằng tích của giá gas và gas đã tiêu thụ, được lấy từ số dư tài khoản.

Giai đoạn hành động là nơi thực hiện các hành động từ danh sách hành động nếu hợp đồng thông minh được kết thúc thành công (với mã thoát ra 0 hoặc 1). Nếu không thể thực hiện tất cả các hành động, ví dụ như do thiếu tiền để chuyển khoản với một thông điệp đi ra, thì giao dịch sẽ bị hủy bỏ, và trạng thái tài khoản sẽ được quay trở lại.

Giai đoạn Bounce được kích hoạt khi giao dịch bị hủy bỏ và thông điệp đầu vào có cờ bounce được đặt. Giai đoạn này bao gồm tự động tạo ra một thông điệp đi ra, với cờ bounce rõ ràng, và gửi nó trở lại người gửi ban đầu. Giá trị của thông điệp đầu vào ban đầu, trừ bất kỳ khoản thanh toán gas và phí chuyển tiếp nào, được chuyển sang thông điệp được tạo ra này, có một thân nội dung rỗng.

Việc thực thi một giao dịch yêu cầu thanh toán các loại phí khác nhau. Mỗi loại phí phục vụ một mục đích cụ thể, chẳng hạn như khuyến khích các nhà xác nhận duy trì hoạt động chính xác của mạng, thực thi giao dịch và lưu trữ dữ liệu hợp đồng trên nút của họ. Nó cũng phục vụ như một biện pháp để hạn chế spam và các nỗ lực độc hại nhằm làm chậm mạng.

Lưu ý rằng một tin nhắn bên ngoài không phải là một tin nhắn mang giá trị. Chỉ có tin nhắn nội bộ mới có thể chuyển giá trị giữa các tài khoản và tăng số dư tài khoản trong giai đoạn tín dụng, và chỉ sau đó mới đến tất cả các khoản phí phải trả từ số dư tài khoản.

Last updated