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