原创 PlatON
PlatON结合区块链、人工智能和隐私计算技术,建立了一个去中心化的协作式隐私人工智能区块链网络。相较于以太坊在交易速度、交易成本和数据隐私方面有巨大的优势。
为提高开发效率,PlatON 1.1.1版本和Alaya0.16.1版本将开始全面兼容以太坊生态工具。本文将以ENS为例,讲解如何将以太坊智能合约迁移到PlatON中。
| 使用Remix迁移ENS合约
使用Truffle迁移智能合约并非是最佳选择,主要原因包括三点:一是,需部署额外的Migrations.sol合约,增加了部署成本;二是,若部署合约所需时间较长,无法及时根据网络拥堵情况,灵活调整Gas;三是,部署过程中需全程保证网络连接,一旦失去网络连接需从头开始部署合约。而使用Remix可以较好地解决上述问题。
2.1 将合约导入Remix
通过分析可知,迁移ENS需要部署四个智能合约。这四个合约分别位于:
https://github.com/ensdomains/ens/tree/master/contracts
https://github.com/ensdomains/resolvers
首先进入
并将所有合约导入Remix中,如图1所示:
2.2 部署合约
根据合约依赖关系,需要第一个部署的是注册表合约,即ENSRegistry.sol。
首先,选择所需部署的合约;
其次,根据合约声明选择solidity版本;
最后,点击【Compile ContractName】编译合约,如图2、3所示。
若编译成功,则进入Remix的部署界面,完成ENSRegistry合约的部署,如图4所示。
部署时,首先将PlatON测试网RPC添加到MateMask中,通过私钥将LAT地址导入到MateMask中;
其次,在Remix的deploy界面中将ENVIRONMENT设置为Injected Web3 ,并将CONTRACT设置为所需部署的合约;
然后,点击Deploy可以设置该笔交易的Gas Price,如图5所示;
最后,在MateMask中点击确认,便成功部署该合约。
同理,使用Remix部署其余三个合约与部署ENSRegistry.sol方法一致。需额外注意的有三点。
一是,如果合约通过
import“@PATH/contractName.sol”导入其他合约。
需要统一修改为:
import“https://github.com/PATH/contractName.sol”
二是,若导入合约所使用solidity版本与项目版本不一致,需修改solidity版本和因此导致的编译错误;
三是,构造函数需要传参时,需在Deploy后面传入参数。入参大于一时,使用“,”分割,如图6所示。
下一期将讲解合约测试部分,敬请关注。
本文转载自https://mp.weixin.qq.com/s/Jg6_pYsc_KE8MUqffsnEOw