智能合约访问区块链数据的两种方法介绍

 作为在 TRON 协议上运行的虚拟机,TVM 需要能够与区块链上的数据进行交互。 因此,它必须能够帮助智能合约访问区块链数据。

智能合约有两种方法可以访问区块链:

1. 区块链数据(即账户数据,投票数据,代币发行等)

2. 智能合约数据:存储

访问链上的数据

在 TVM 运行期间,通常会查询链数据,例如帐户数据和代币发布数据。 在 TRON 的开发过程中,为了防止定期查询硬盘上的链,每个智能合约启动都会创建一个相关的区块链数据缓存。 对于每个智能合约,相同的密钥只能使用两次来访问 LevelDB,一次用于第一次读取,再次用于新数据(包括删除密钥)。

存储

存储用于保持智能合约状态。 每份合约都使用自己的 Solidity 存储。 在 Solidity 中,访问存储数据的主要命令是 SLOAD 和 STORE。

存储中的数据是多个键值对,包括存储密钥和存储值,键值对是一个字(32 字节的实体)。

在 Solidity 中,不同的数据类型具有用于确定其结构相应的规则,因为这在称为 文档。 Solidity 决定了 Storage Key 的逻辑结构。 对于不同的合同,可能会出现相同的存储密钥,因此存储不能直接存储在其逻辑结构中的现有     数据库   (LevelDB)中。 为了更有效地与链结合,必须相应地设计链上的物理存储。

由于智能合约中的存储访问通常只是存储密钥的一部分,因此最好通过按需访问加载存储,而不是每次都将所有存储加载到内存中。 因此,每个合同中的存储密钥需要全局唯一才能将其存储在同一数据库中。

存储密钥的逻辑结构确定后续的16个字节,以确保同一合同中存储密钥的唯一性。 因此,您可以使用合约地址的哈希值和存储密钥的最后16个字节来形成全局唯一键。 组成逻辑如下:

 智能合约访问区块链数据的两种方法介绍_设计制作_制造/封装

33
35
0
62

相关资讯

  1. 1、嗑药,卖身,潜规则,这片儿也太敢拍了1008
  2. 2、秦岚一改温柔素雅,又酷又俏皮,浴袍风大红裙都开衩到大腿了4968
  3. 3、又一军旅题材电影官宣杀青,神仙阵容引期待,网友:致敬英雄2797
  4. 4、《皇家酒店谋杀案》如何对上世纪60年代进行深刻的怀旧1336
  5. 5、吐槽大会黄圣依秀演技,王晶称和周星驰不是好朋友,信息量太大4473
  6. 6、《风暴舞》开播,剧情代入感差,娜扎妆容太艳,和陈伟霆CP感弱2117
  7. 7、新《雪豹》电影来了,男主不见熟脸,女配却请来“亚洲第一美女”3880
  8. 8、《小时代》不接地气?郭敬明:《哈利波特》咋办4337
  9. 9、《芸汐:毒谷新娘》今日上线《芸汐传》同源IP改编引爆粉丝期待_电影4516
  10. 10、《长歌行》还在热播,热巴又一热血剧阵容曝光,男主男配神仙打架3074
全部评论(0)
我也有话说
0
收藏
点赞
顶部