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模式。
Remix链接MetaMask

然后会跳转到MetaMask页面,添加一个本地standalone网络即可
Standalone网络

添加standalone网络时,要先将standalone节点运行起来

此时细心的你会发现Remix虽然连上了本地私链,但是账号余额显示是0,依然不能进行合约部署,接下来就是给账户增加余额,一种简单粗暴的方式就是将其MetaMask中的账户地址设置为genesis地址,不过这里有一点需要注意,设置genesis地址之后,需要删除原先运行的数据,默认是在/var/data目录下。 删除之后再次启动standalone就会发现已有余额了,可用随便造了。