Cointelegraph部署智能合约的经验教训,第2部分

这是我们在Telegram开放网络上集成支付渠道的系列文章中的第二篇。在第一部分中,我们介绍了网络,详细介绍了比赛经验,并解释了同步和异步智能合约的工作方式。作为该系列的下

Cointelegraph部署智能合约的经验教训,第2部分

这是我们在Telegram开放网络上集成支付渠道的系列文章中的第二篇。在第一部分中,我们介绍了网络,详细介绍了比赛经验,并解释了同步和异步智能合约的工作方式。作为该系列的下一个补充,本文详细介绍了我们在9月TON比赛期间如何在网络上建立同步支付渠道。在这里,我们仅讨论Fift(TON的通用编程语言)和FunC(TON用于编写智能合约的编程语言)。

TON白皮书提供了有关支付渠道的更深入的信息,但我们将再次简要说明它们。

智能合约的代码作为单个单元格(通常用FunC编写,然后编译为Fift ASM代码,并使用path-to-compiled-asm.fif包含在主.fif文件中)。 智能合约的初始存储(请参见下文)。 新的智能合约地址(来自智能合约初始状态的哈希,还包括智能合约代码单元格和初始存储单元格)。 recv_external函数的第一次调用的参数(参数的数量和类型取决于协定)。 一个用于初始化的外部消息单元,它将被序列化为字节并打包到.boc文件中,该文件包含第1至4点中的所有数据以及一些尚缺乏文档的其他数据。 seqno 32位 contract_status 4位 first_user_pubkey。第一方的公开密钥256位 second_user_pubkey。第二方的公开密钥256位 time_to_send。提交第一个实际状态后的发送时间32位(有效期至2038年) depositSum。两个参与者的存款总和,最多121位 state_num 64位。当前发生的状态数量 用户生成一个附加的正文有效载荷,该正文有效载荷包括消息(例如1位)及其在单独的.fif文件中的签名。 主体有效负载被编译为.boc文件。 主体有效负载从此.boc文件加载到.fif文件中,作为主体单元“传输”参考(.fif负责从钱包中传输GRAM)。 当已编译的.fif文件发送到网络时,将使用参数(通道的存款金额和目标地址)调用recv_external函数。 send_raw_message函数被执行。存放的GRAM和其他主体有效负载将发送到P2P通道智能合约目标地址。 P2P通道智能合约的recv_internal函数被调用。 GRAM由通道合同接收。 智能合约地址(排除从前具有相同参与者的P2P通道进入正确状态的可能性)。 第一位参与者的最终余额。 第二个参与者的最终余额。 州号。 从存储中存入的金额应等于参与者总余额的总和。 新输入的状态号必须大于或等于前一个。

继续阅读硬币电报

Cointelegraph部署智能合约的经验教训,第2部分

—-

原文链接:https://www.investing.com/news/cryptocurrency-news/behind-the-scenes-of-ton-lessons-learned-on-deploying-smart-contracts-part-2-2085832

原文作者:Cointelegraph

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

0

发表评论