原创 PlatON
PlatON结合区块链、人工智能和隐私计算技术,建立了一个去中心化的协作式隐私人工智能区块链网络。相较于以太坊在交易速度、交易成本和数据隐私方面有巨大的优势。
为提高开发效率,PlatON 1.1.1版本和Alaya0.16.1版本将开始全面兼容以太坊生态工具。本文将以ENS为例,讲解如何将以太坊智能合约迁移到PlatON中。
感谢提供本教程的PlatON生态参与者@metaPort
| 合约测试
如果使用Truffle部署合约,可以使用Web3对部署的合约进行调试。首先,通过npm install web3安装Web3包。
由于项目需要调试的内容比较多,本文只介绍测试程序的主要框架。
const Web3 = require('web3')
const HttpProvider = ${RPC}
const web3 = new Web3(new Web3.providers.HttpProvider(HttpProvider))
const fs = require("fs");
const ABIString= fs.readFileSync("./build/contracts/fileName.json", "utf-8");
const ABIJSON= JSON.parse(ABIString);
const privateKey = '私钥'
web3.eth.accounts.wallet.add(privateKey)
const myAddr = web3.eth.accounts.wallet[0].address
var ContractName = new web3.eth.Contract(ABIJSON.abi,'ContractAddr');
async function test() {
// 修改合约状态的方法
var renturnsContent = await ContractName.methods.methodsName(param).send({
from:myAddr,
gas:2000000,
gasPrice:"999999"
},function(error,txHash){
console.log("error:",error);
console.log("txHash:",txHash);
})
console.log("renturnsContent:",renturnsContent);
// 查询合约状态
var renturnsContent= await ContractName.methods.methodsName(param).call()
console.log("renturnsContent:",renturnsContent);
}
如果使用Remix部署合约,合约部署成功之后在Deployed Contract下面会显示合约名称,合约地址和合约的对外方法,如图7所示。
至此,将ENS迁移到PlatON的整个流程介绍完毕。整个流程与在以太坊上部署合约的体验一致,说明PlatON在兼容以太坊生态方面已经足够成熟,将一步降低了以太坊开发者在PlatON上的开发成本。
期待PlatON借助自身的隐私计算、AI方面的优势以及以太坊强悍的生态,打造出更加强悍的生态,更好地服务于实体经济的发展。
本文转载自https://mp.weixin.qq.com/s/0bgIGbgEFlFl5bbdTn4EyA