代码编织梦想

一.xuperchain中的output目录解释分析:

二.部署xchain服务:

1)启动服务:

使用control.sh脚本启动单节点single共识链,启动这条链的区块链服务,让它运行起来后就能够实现对链上数据的存储。(注意因为这个脚本在output目录下,所以要在output目录下进行)

bash control.sh start

2) 确认服务状态:

xchain-cli:是超级链提供的客户端,在bin目录下。按照默认配置,xchain服务会监听37101端口,-H表示指向xchain服务的地址,是这条链所在的服务器地址,本次是直接部署到本地的,所以地址是127.0.0.1(可用命令行ifconfig查看)。

bin/xchain-cli status -H 127.0.0.1:37101

三.基本功能使用:

1)创建新账户:

在链上创建区块链账户,这个账户就相当于现实生活中的银行卡号,用于存储链上的资产。

xchain中,账号类型分为“普通账号”和“合约账号”。

1.1)创建普通账户:会生成账户的地址(address),公钥(publickey),私钥(privatekey)

普通账号:由程序离线生成,在本地保存。

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

1.2)创建合约账户: 

合约账号:是XuperChain中用于智能合约管理的单元,由普通账户发起交易,在链上生成的一个16位数字的账户(这里以16个1为例),存储在链上。(发起合约相关交易,比如合约调用时,需要使用合约账户)--fee:表示手续费。

bin/xchain-cli account new --account 1111111111111111 --fee 2000

2)查询资源余额:

2.1)普通账户查询资源余额:

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命令查看,或者直接图形化操作在文件夹里找到

2.2)查询合约账户余额:

bin/xchain-cli account balance 合约账户名称 -H 127.0.0.1:37101

 3)转账:会生成交易id(txid)

--keys:指向转账要提供私钥的目录,若不加此参数即未指定扣款账户,将会默认扣除data/keys下账户的资源,data/keys是超级链账户,是默认生成的。

3.1)使用超级链用户(data/keys)给自己创建的用户转账:

bin/xchain-cli transfer --to 得到转账金额的用户地址 --amount 转账金额(不可超出自身额度) --keys data/keys/ --H 127.0.0.1:37101

对于查询的账户余额为200是因为我之前也向bob用户转了100 

3.2)在自己创建的用户之间转账:

bin/xchain-cli transfer --to 得到转账的账户地址 --amount 转账金额 --keys 转出账户的私钥路径 -H 127.0.0.1:37101

 3.3)使用超级链账户给合约账户转账:

bin/xchain-cli transfer --to 合约账户名称 --amount 转账金额 -H 127.0.0.1:37101

3.4)使用自己新创建的账户给合约账户转账:

bin/xchain-cli transfer --to 合约账户名称 --amount 转账金额 --keys 转出账户私钥路径 -H 127.0.0.1:37101

4)查询交易信息:

bin/xchain-cli tx query 要查询的交易信息的交易id(txid) -H 127.0.0.1:37101

5)查询区块信息:

bin/xchain-cli block 要查询的区块id(在查询交易信息可以得到) -H 127.0.0.1:37101

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_61275790/article/details/126983213

xuperchain-爱代码爱编程

百度超级链(xuperchain) 简介 高性能,通过原创的XuperModel模型,真正实现了智能合约的并行执行和验证,通过自研的WASM虚拟机,做到了指令集级别的极致优化。 在架构方面,其可插拔、插件化的设计使得用户可以方便选择适合自己业务场景的解决方案,通过独有的XuperBridge技术,可插拔多语言虚拟机,从而支持丰富的合约开发语言。在网络能力

XuperChain安装-爱代码爱编程

问题一:make报了一个关于g++的错误g++: command not found centos: yum -y update gcc yum -y install gcc+ gcc-c++ ubuntu: apt-get update gcc apt-get install g++ 问题二:git下载速度过慢:解决办法将仓库复制到gitee码云上。找

步履不停:OpenAtom XuperChain V3.10新功能一览-爱代码爱编程

开放原子可信账本工作组XuperChain项目(下文简称XuperChain) V3.10正式发布!为了响应开源社区的对智能合约的多语言需求,并提高XuperChain的易用性、安全性,这个版本的亮点在于推出以太坊虚拟机(EVM,Ethereum Virtual Machine)、交易Txid生成方案升级、网络层P2P连接对于TLS和Ipv6的支持,以及其

xuperchain源码分析-插件机制-爱代码爱编程

背景 因为最近我们在自研底层联盟链,所以调研了现在市面上的主流的公链,联盟链。 xuperchain基于插件机制,实现多个核心模块可替换,包括存储,共识,网络等。下面我们就来看看这个插件机制是如何实现的 PluginMgr 插件管理器 // PluginMgr defines the data struct of plugin manager,只管

xuperchain源码分析-合约-爱代码爱编程

这里的合约定义更多的是自动执行约定,而不是预置了一个带有合约地址的合约代码,当时看源码时候就产生过疑惑 合约类图 Contract表示一种自定义执行约定,调用合约的方式必须是交易,交易到区块上面打包。 每一个合约实现,都被称为一个module,上面就有4个module,tdpos,kernel,consensus,proposal。 tdpos

xuperchain源码分析-接口-爱代码爱编程

XchainServer,TCPServer的对外接口 // XchainServer is the server API for Xchain service. type XchainServer interface { // SelectUTXOBySize merge many utxos into a few of utxos Sel

xuperchain源码分析-核心数据结构-爱代码爱编程

XChainCore ,保存区块链所有核心数据信息type XChainCore struct { con *consensus.PluggableConsensus Ledger *ledger.Ledger Utxovm *utxo.UtxoVM P2pSvr p2p_bas

xuperchain源码分析-智能合约-爱代码爱编程

XuperBridge XuperBridge为所有合约提供统一的合约接口,从抽象方式上类似于linux内核对应于应用程序,内核代码是一份,应用程序可以用各种语言实现,比如go,c。类比到合约上就是各种合约的功能,如KV访问,QueryBlock, QueryTx等,这些请求都会通过跟xchain通信的方式来执行,这样在其上实现的各种合约虚拟机只需要做纯