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