📝 您还将了解到 TON 合约有哪些重要方面? TON 区块链无限可扩展性的关键是什么? 可以用合约构建什么? TON 提供了哪些防范拒绝服务攻击的措施? 设计智能合约时有哪些重要考虑因素?
; o' p# s6 R5 P 9 ?0 t; q" F% w ]! B
合约在上一课中,我们学习了以下有关合约的知识:不过,让我们再深入一点。🐳 📬 合约也有标识符或地址。 该地址是合约初始数据和初始代码的加密哈希值。这是为什么呢?☑️ 毕竟您也不想每当合约的状态发生变化时就更改地址,这就是为什么该地址可以唯一识别合约创建时的初始状态。 ⛺ 合约的第二个重要方面是局域性。 所有这些数据都是完全封装的,从程序代码的角度来看,它只能看到合约本身的存储空间及其余额。它无法看到其他所有合约的状态。这就意味着,无论一个交易中的合约发生什么变化,都与区块链上其他地方的另一个交易中的另一个合约的变化完全无关。 这是 TON 区块链无限可扩展性的关键所在。 合约可以做些什么?❓ 你能用合约建立什么?
4 g: U# E+ A# R0 tTon上的通证 (Tokens)在 TON 中,可以转让的通证实际上是一个独立的合约,它有自己的状态,指定了该通证的一些属性。 💰 其中一个属性就是所有者。 每当你想改变一个通证的所有权时,就必须向这个通证发送信息,指定新的所有者。然后,通证会检查该信息是否由适当的所有者发送,将其所有者更改为新的所有者,然后就完成了。 保护 TON为了保护网络免受拒绝服务攻击,所有合约都需要支付运行费用。 这种付款(也称为费用)由很多很多参数组成,包括租金、执行成本、信息路由和其他一些费用。让我们深入了解最重要的参数。🐳 ❗ 每次执行合约上的代码,都会产生GAS成本--虚拟机 TVM 中的每条指令都有一个指定的成本,被称为GAS。 💎 在网络层面,有一个称为GAS价格的参数,规定了每条指令需要支付多少TON。 ⏳ 程序运行时间越长,产生的GAS费用就越多,这笔费用将从合约余额中扣除。 ❌ 每当余额减少到零时,执行就会中止,交易就会失败。 💲 GAS成本可确保您无法在不付出代价的情况下对整个网络施加无限制的执行成本。 但还有一项重要的成本,那就是租金! ❗ TON 确保在合约有效期内的每一分、每一秒,都会从合同余额中扣除一笔名为租金的指定付款。 ; h7 K( w( H+ T" `- o
设计智能合约时的注意事项在设计智能合约时,有两个最重要的考虑因素: 执行过程中的GAS费用。 合约有效期内必须承担的租金。 ) N5 c. n4 n4 Q. f1 S5 k
冻结合同。如果合约资金用完,由于租金的原因,合约可能会被冻结😰。 这意味着网络将卸载其所有数据,并用其最新状态的加密哈希值取而代之。在这种情况下,数据不会丢失,但网络会优化存储💿将昂贵的数据从验证器的存储中卸载。当该合约的用户想要恢复该合约以解冻它时,他们必须提供与哈希值相匹配的数据快照。
' p; E; I: J# E) }: R
📝 现在你知道了 合约地址是合约初始数据和初始代码的加密哈希值。 合约的所有数据都是完全封装的,从程序代码的角度来看,它只能看到合约本身及其余额的存储空间。 你可以转移的 TON 中的代币实际上是一个独立的合约,它有自己的状态,指定了这个代币的一些属性。 合约实际上是底层的构建模块,你可以构建钱包账户、多签名协议、大型去中心化应用程序、单个通证,甚至通证集合。 TON 可以确保合约生命周期内的每一点数据和每一秒都会从合约余额中扣除一笔指定的款项,这笔款项被称为租金。 8 D3 I: w5 [# C2 @* s4 i
9 W+ j+ O& t8 Y% h! \6 g# d
6 q0 o4 i5 n, u _: m! m& ]2 z i, i4 p' E# Y2 E
|