Andrew C. | TON DevRel
你一定听过或者已经感受到,TON 的合约或者 DApp开发有点困难,或者更具体一点,是“入门”比较困难。
根本原因是 TON 是为了区块链的大规模应用而设计,从而在架构上做了一些创新和取舍,并且 TON 的架构不仅仅是一个区块链,而是希望围绕区块链建立一个完整的 Web3 生态系统。因此 TON 的开发入门相对是比较困难的,但是一旦理清了 TON 的设计理念,那很多问题就会迎刃而解。
下面是 TON 区块链架构上的主要特点:
除了上面这些架构特性,还有一些在入门上的困难点,下面这些是发展中的“技术债务”,随着 TON 的发展和完善,这些技术债务都是可以偿还的,也就是说下面的问题随着时间的推进都会解决:
下面是 Ethereum 的基本原理,验证节点维护一个“状态树“(俗称 World State),所有 EOA 和 合约地址都对应树上一个节点,其中 EOA 和合约的区别是合约类型含有”代码和存储的哈希“,合约的可执行代码和数据存储在额外的 LevelDB 和存储树中,另外 EOA 需要通过 nouce 来控制并发。
当 Ethereum 用户通过钱包签名发送一个交易到链上,验证节点会判断是简单的 “ETH 转账“ 还是 ”合约调用“,如果是 “ETH 转账“ 则根据内置验证规则修改双方的 balance 即可,如果是合约调用,则根据调用的合约地址,从状态树中找到代码和存储哈希,再根据哈希找到可执行代码和真实数据,加载到 EVM 中执行,执行的结果更新到“状态树“,执行的过程将以交易的形式打包到区块中。