首先说一下。我的开发项目是智能设备自治,其中有一个很关键的部分就是如何将物联网数据可靠的上传到智能合约当中。这里必须要求很灵活,所以综合研究的是 chainlink 与 nest。这里主要是对 nest 开源的智能合约做一下个人的理解。本节主要是关于 nest2.0 智能合约的架构解析。
nest 从 1.0 到 2.0
Nest 的 1.0 不提了,从 2.0 开始进行的是预言机方案,目前最新的是 3.5。2.0 是 nest 团队逐步完成的,最开始做的是报价系统部分,然后又做了分红池,最后才是守护者节点。其中一共有 7 个合约文件,15 个合约地址。
NEST-Price 报价系统
NEST-Price 报价系统主要由报价生成模块、报价单买入模块、报价资金管理模块、链上价格生成模块 4 个核心部分构成。但在 2.0 的时候,开发的并不完整。主要完成了头三个部分。
nest 对应的 15 个合约地址(整理版)
IBMapping :映射合约,主要是把相关的合约地址都映射到对应的合约上面。合约地址:0x5E7db2FFc5b2c7C47103e4F21C702bc402603fBf IBNEST :token 合约, 合约地址:0x04abEdA201850aC0124161F037Efd70c74ddC74C NEST_MiningSave.sol :矿池合约 合约地址:0x923F80828663E44e0FFD5eB499686dC1CCc78476 NEST_3_OrePoolLogic.sol :矿池逻辑 合约地址:0x9C3C7bcf8993A58410016E29882c78B552D5C9b4 NEST_3_OfferFactory.sol 报价数据合约 : 0x72B07FC5753a3564CfcAC50cD6f246187d2d4306: 报价工厂 : 0x43D99D54F14c64994FD9666BEAB6023b0069De20 价格合约 : 0x60cbAeEe17D19458420cE572CA32a8de337Bcc2E NESTAbonus.sol 分红 nest 锁仓 : 0x561d0d6c498a379574eAaA4a5F2532b223fFaeBF 分红池合约 : 0x607B80a3498F01f87b889486f4E7f82C98CF0584 平准合约 : 0xc2CdF3457819A61720166d524F6E320C5451092C 分红逻辑合约 : 0xF67B829397Dc05751a98f243DbdE5Db63f86E7f6 NESTNODE.sol 守护者节点 Token 合约 : 0xC028E81e11F374f7c1A3bE6b8D2a815fa3E96E6e 守护者节点 Nest 存储合约 : 0x101D8b63A081dFfF2B1364864345b7F071b052a 守护者节点领取数据合约 : 0xb086F99E36c2c0ef6c051EE9E4d638717BBc6cbC 守护者节点分配合约 : 0x472c31697633daCd24C4674b4571d4A393d54870
简单的解析说明
我们在这里做一下简单的解析说明,为下一步的解析做准备。1. 守护者节点合约组 NESTNODE.sol 先不用考虑。因为和预言机本身关系不大。
- 分红合约组 NESTAbonus.sol 暂时不用看,因为也不涉及到报价本身。
3.IBMapping (映射合约)里面最主要的关键内容就是,将需要的合约地址与变量一一对应,这种方法的优点就是方便后期平滑升级。
-
而 IBNEST (token 合约)基本上就是一个加强版的 ERC20 代币。
-
重点是看 NEST_MiningSave.sol:矿池合约。
-
还有矿池逻辑(NEST_3_OrePoolLogic.sol)
-
以及报价合约组(NEST_3_OfferFactory.sol) 我们在后面的文章将对这几个合约进行更加详细的描述。
ps:我搜了一下,发现并没有相关类似的源码解析类文章,所以把自己去年做的一些给整理了一下发了出来,有些内容可能和官方文本有些重复,谢谢观看。