使用control.sh脚本启动单节点single共识链,启动这条链的区块链服务,让它运行起来后就能够实现对链上数据的存储。(注意因为这个脚本在output目录下,所以要在output目录下进行)
bash control.sh start
xchain-cli:是超级链提供的客户端,在bin目录下。按照默认配置,xchain服务会监听37101端口,-H表示指向xchain服务的地址,是这条链所在的服务器地址,本次是直接部署到本地的,所以地址是127.0.0.1(可用命令行ifconfig查看)。
bin/xchain-cli status -H 127.0.0.1:37101
在链上创建区块链账户,这个账户就相当于现实生活中的银行卡号,用于存储链上的资产。
xchain中,账号类型分为“普通账号”和“合约账号”。
普通账号:由程序离线生成,在本地保存。
1.1.1)使用默认加密类型创建普通帐户:
--output:指定新新创建用户的地址。(bob是自己的账户名称,可自定义;下面data/bob与bob不同之处在于,data/bob:data/为超级链中已有的文件目录,指在已有的data目录新建bob;bob:是直接将账户名称同时作为超级链中的文件目录与自己的账户名称)
bin/xchain-cli account newkeys --output data/bob
或者bin/xchain-cli account newkeys --output bob
1.1.2)使用加密类型国密创建普通帐户:
bin/xchain-cli account newkeys --output data/alice --crypto gm
合约账号:是XuperChain中用于智能合约管理的单元,由普通账户发起交易,在链上生成的一个16位数字的账户(这里以16个1为例),存储在链上。(发起合约相关交易,比如合约调用时,需要使用合约账户)--fee:表示手续费。
bin/xchain-cli account new --account 1111111111111111 --fee 2000
2.1.1)根据存储路径查询用户余额:(--keys:指向要 查询的账户地址)
bin/xchain-cli account balance --keys data/bob -H 127.0.0.1:37101
2.1.2)根据查询账户地址查询账户资源余额:
bin/xchain-cli account balance 要查询的账户地址 -H 127.0.0.1:37101
账户的地址可以用cat命令查看,或者直接图形化操作在文件夹里找到
bin/xchain-cli account balance 合约账户名称 -H 127.0.0.1:37101
--keys:指向转账要提供私钥的目录,若不加此参数即未指定扣款账户,将会默认扣除data/keys下账户的资源,data/keys是超级链账户,是默认生成的。
bin/xchain-cli transfer --to 得到转账金额的用户地址 --amount 转账金额(不可超出自身额度) --keys data/keys/ --H 127.0.0.1:37101
对于查询的账户余额为200是因为我之前也向bob用户转了100
bin/xchain-cli transfer --to 得到转账的账户地址 --amount 转账金额 --keys 转出账户的私钥路径 -H 127.0.0.1:37101
bin/xchain-cli transfer --to 合约账户名称 --amount 转账金额 -H 127.0.0.1:37101
bin/xchain-cli transfer --to 合约账户名称 --amount 转账金额 --keys 转出账户私钥路径 -H 127.0.0.1:37101
bin/xchain-cli tx query 要查询的交易信息的交易id(txid) -H 127.0.0.1:37101
bin/xchain-cli block 要查询的区块id(在查询交易信息可以得到) -H 127.0.0.1:37101