三:将智能合约部署到ganache测试网
文章目录
三:将智能合约部署到ganache测试网实验目的实验原理开始条件实验过程实验步骤相关官方知识库下一章内容:实验目的
掌握将智能合约部署到ganache测试网,首先要构建本地的ganache,然后用ganache中的用户去连接到ganache。
实验原理
ganache是一个模拟区块链网络的本地区块链程序,里面有20个用户共我们使用,方便我们模拟用户的使用,进行代码测试等操作。ethers.js为以太坊区块链及其生态系统提供一个小而完整的 JavaScript API 库。方便开发者更好的与智能合约交互。fs是js读取文件的一个组件,方便我们读取目录中的文件。开始条件
安装好基于windows系统的子系统wsl。默认安装ubuntu20.04。在ubuntu中安装node.js安装好solidity的编译器使用yarn需要先进行设置,在命令行中输入corepack enable
实验过程
下载ganche下载ethers.js下载fs编写deploy.js部署合约实验步骤
ganache下载yarn add ganache-cli
2.开启本地ganache
ganache-cli
** ganache中内置了10个账户, 记住ip和其中一个私钥,通过ip和私钥来连接到ganache(窗口别关闭) **
另外启动一个窗口完成后面的操作
下载ethers.js
yarn add ethers
下载fs
yarn add fs-extra
在test目录中创建 一个deploy.js文件(文件源码在后面) //test目录是上一章创建并编译的项目路径
上一章的连接地址(solidity代码编译)[]
touch deploy.jsvim deploy.js
运行deploy.js
node deploy.js
结果如下:左边为ganache的运行日志,右边为运行deploy.js中控制台打印的部署合约的相关信息。
相关官方知识库
ether.jsganache-lic下一章内容:
调用部署在ganache的智能合约
欢迎讨论学习⊙﹏⊙
** deploy.js的代码如下:**
// 引包const ethers = require("ethers");const fs = require("fs-extra");async function main() {// 建立ganache网络let provider = new ethers.providers.JsonRpcProvider("http://127.0.0.1:8545");//用户连接到网络let wallet = new ethers.Wallet("0x955befd54e2c3d5825644c32eb9770dc273e6249724eadb42969eb33d19e", //私钥provider);// 获取solidity的接口和字节码const abi = fs.readFileSync("./SimpleStorage_sol_SimpleStorage.abi", "utf8");const binary = fs.readFileSync("./SimpleStorage_sol_SimpleStorage.bin","utf8");//用户创建交易const contractFactory = new ethers.ContractFactory(abi, binary, wallet);console.log("Deploying, please wait...");//用户部署智能合约const contract = await contractFactory.deploy();console.log(contract);}main().then(() => process.exit(0)).catch((error) => {console.error(error);process.exit(1);});