官方开源文档:XuperChain文档 — XuperChain 官方文档 文档
1. Ubuntu
2.XuperIDE(Windows环境下)
3.Docker Desktop(Windows环境下)
XuperIDE 使用 Docker 来启动 Xuper 节点和进行项目编译。
1. 开启Docker打开XuperIDE,创建密钥对
2. New Instance 按钮创建节点
3. 点击实例的绿色 Start 按钮启动 Xuper 节点。启动完成后,你可以在下方的日志查看器中检查节点运行日志
4. 选择连接网络
5. 在explorer按钮下 点击加号创建智能合约账户,格式为16位数字,该标签下还可查看对应的地址信息。只有合约账户才拥有代码
6. 左上角project处创建智能合约项目
7. 选择相应的编译器版本,编译合约
8. 部署合约,输入部署合约的名称、构造函数的参数、约账号等信息
9. 调用合约,在contract标签下对合约中的函数进行调用
1. 复制.abi和.bin文件
使用XuperIDE的docker进行拉取镜像solc去编译solidity源码,即执行到上述第7步。
在第7步编译完成之后,复制.abi和.bin文件到Ubuntu中xuperchain的output目录下。
# linux权限更改chmod 777 filename/*
2. 启动xuper链
# 启动xuper链 /workspace/xuperchain/output$ bash control.sh start 其他可能用到的命令: # 创建普通用户, 生成的地址,公钥,私钥在--output 指定位置 $ bin/xchain-cli account newkeys --output data/bob create account using crypto type default create account in data/bob ## 创建合约账号 bin/xchain-cli account new --account 1111111111111111 --fee 2000 # 根据账户存储的路径,查询该账户的余额。--keys为要查询的账户的地址 $ bin/xchain-cli account balance --keys data/keys 100000000000338000000 # 根据地址查询该账户余额 $ bin/xchain-cli account balance TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY 100000000000401000000 $ bin/xchain-cli account balance XC1111111111111111@xuper # --keys 从此地址 转给 --to地址 --amount 金额 $ bin/xchain-cli transfer --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 10 --keys data/keys/ -H 127.0.0.1:37101 24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4 # 可查询上一步生成的txid的交易信息 $ bin/xchain-cli tx query 24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4 -H 127.0.0.1:37101 # 可查询上一步交易所在的block id信息 $ bin/xchain-cli block e83eae0750d0f48cc2b45f25d853fb587d124552851bf6693757e0715837b377 -H 127.0.0.1:37101
3. 部署合约
#部署合约 # 要确保合约账户中有钱,否则需要先向该账户转入资金 $ xchain-cli evm deploy --account XC1111111111111111@xuper --cname counterevm --fee 5200000 Counter.bin --abi Counter.abi contract response: ok The gas you cousume is: 1789 The fee you pay is: 22787517 Tx id: 78469246d86a92ad47e5c15991a55978075902809346e48533e09a8eb0e3a7e4
--abi Counter.abi
:表示部署需要使用的abi文件,用于合约方法参数编解码-a
:如果合约需要构造函数,通过-a进行指定# 假如调用solidity合约,increase方法,counterevm为合约名 $ xchain-cli evm invoke --method increase -a '{"key":"test"}' counterevm --fee 22787517 # 调用solidity合约,get方法,counterevm为合约名 $ xchain-cli evm query --method get -a '{"key":"test"}' counterevm # 调用结果,其中0表示返回值的次序,1为返回值 # key,value: 0 1