IoTeX本地standalone模式及合约部署
BlockChain众所周知信奉的是天下没有免费的午餐
,任何操作都是要收费的。此时如果你想进行些测试相关的内容或者只是想了解学习下,就不太方便进行操作。
所以这里记录下IoTeX如何本地部署standalone模式,并且使用Remix进行合约部署。
其实现在docker技术已比较普及,IoTeX也提供了很多docker容器,也可以直接使用,这里由于个人原因采用从源码的方式进行部署
本地部署standalone
从github上clone源码 git clone git@github.com:iotexproject/iotex-core.git
,进入repo目录,执行make run
。
这里大概率会报错,内容是缺少某个文件,报错内容如下:
1 | 2023-08-03T18:14:33.725+0800 ERROR factory/statedb.go:99 Failed to execute state factory creation option 0x49a7520: failed to open kvstore patch, /var/data/trie.db.patch: open /var/data/trie.db.patch: no such file or directory {"ioAddr": "io1ppjspvypu7e3y93vg9tc3csauf097ht5zl69tq"} |
该文件需要从另一个repo中获取,将其仓库clone到本地git@github.com:iotexproject/iotex-bootstrap.git
,将 trie.db.patch
复制到 /var/data
目录中,再次执行 make run
即可。
如果没有报什么错,就代表启动成功了,启动成功之后会自动挖块,块的高度会发生变化。
Remix链接本地IoTeX私链进行合约部署
Remix可以使用在线模式也可以进行本地模式,这里直接使用在线模式,在deploy
中选择metamask
模式。
然后会跳转到MetaMask
页面,添加一个本地standalone网络即可
添加standalone网络时,要先将standalone节点运行起来
此时细心的你会发现Remix虽然连上了本地私链,但是账号余额显示是0,依然不能进行合约部署,接下来就是给账户增加余额,一种简单粗暴的方式就是将其MetaMask
中的账户地址设置为genesis
地址,不过这里有一点需要注意,设置genesis地址之后,需要删除原先运行的数据,默认是在/var/data
目录下。 删除之后再次启动standalone就会发现已有余额了,可用随便造了。