📝 您还将了解到:
5 ^- N( ^1 M& ?+ r0 c1 r我们来谈谈可扩展性。 💎 在 TON 中,您确实有一个非常具体的可扩展性保证。TON 保证可以扩展到单个合约的分片。 因此,一个合约上的操作不会对另一个合约上的操作造成影响🍼。而 TON 网络显然会负责它们之间的所有信息路由🚅。 ❗ 你的工作是利用区块链的整体可扩展性,而不是在自己的合约中制造障碍! 单体合约的问题。对于来自传统系统、大型网络数据库或以太坊的人来说,一个显而易见的问题是,他们将合约设计成一个单体应用程序,拥有自己的可变长度存储空间。 🌐 例如,在以太坊中,通证是以银行分类账的形式实现的,其中只有一个智能合约包含账户列表。如果有一百万个用户,这个列表就会有一百万行。每个用户都有一个条目,说明该用户的地址是什么。他们的余额是多少。设计这样的合约非常简单直接。你可以进行原子交易,从一个余额中扣除,然后添加到另一个余额中。这样就很容易设计出系统的运行方式。 但是,这种模式无法在TON上扩展,因为如果把这么长的清单放在一份合约中,马上就会出现问题。
: W5 f! i- g+ g$ U) f规则为了帮助您,为您提供如何正确设计多用户和大规模应用程序和 TON 的指南,这里有一些规则。📰 3 A5 l4 s& @! S; [ b
区块链是一个数组。在 TON 中制作大型列表或数据字典的可扩展方法是将区块链本身用作数组。下面是一个简单的例子。 您可以想象这样一个系统:您有多个相互连接的合约,每个用户都在处理自己的合约。而且您不必将整个列表存储在应用程序的中央部分。 💎 在 TON 生态系统中,代币的设计是实现这一理念的最流行的例子。 个人用户的余额分布在所谓的 Jetton 钱包中。4 D o8 s" \' J9 o, o1 R
🔥 这样做的好处在于,一个地方的两个 Jeton 钱包之间的操作不会影响另一个地方的另外两个钱包的操作,而且它们可以分散在不同的分块链上,不会造成任何障碍。
+ U/ A0 `7 u, e# U+ O📝 现在你知道了: TON 保证可以扩展到单个合约的分片。 出于速度、可扩展性以及节省GAS的考虑,TON 区块链上的以太坊单体钱包合约应该以不同的方式实现。 避免使用长度可变的数据作为首要任务。 如果必须要有一个列表,那么至少要让它简短且有边界,比如静态定义。 TON DNS 域名是一个可收集的非同质化通证,可以有任意数量的附加记录与之相关。 在 TON 中制作大型列表或数据字典的可扩展方式是将区块链本身用作数组。 TON 中代币的设计方式是有一个单个发行人合约,但该合约并不存储所有用户的列表。相反,它被授权为其他用户铸造和创建代币,单个用户的余额分布在所谓的 Jettons 钱包中。 9 f3 J( }5 r/ B. h; r& q* W1 V
8 i/ ]3 o. ]; M, Z7 z0 u' I
% j, |) `* U' X, l
9 |. y* U, {$ d' z7 q
; Z( P2 N0 Q, u# T9 c/ W |