内容概要
- 介绍
- 编译
- 文件结构介绍
- 基本操作
介绍
XuperUion是超级链体系下的第一个开源项目,是构建超级联盟网络的底层方案。
-
核心特点
- 高性能
- 原创的XuperModel模型,真正实现了智能合约的并发执行和验证。
- TDPOS算法确保大规模节点下的快速共识。
- 使用AOT加速的WASM虚拟机,合约运行速度接近native程序。
- 更安全
- 多私钥保护的账户体系。
- 鉴权支持权重累计、集合运算等灵活的策略。
- 易扩展
- 鲁棒的P2P网络,支持广域网超大规模节点。
- 底层账本支持分叉管理,自动收敛一致性,实现真正全球化部署。
- 多语言开发智能合约
- 通过原创的XuperBridge技术,可插拔多语言虚拟机。
- 高灵活性
- 可插拔、插件化的设计使得用户可以方便选择适合自己业务场景的解决方案。
- 高性能
编译
- 系统配置
- 操作系统:支持Linux以及Mac OS
- 开发语言:Go 1.12.x及以上
- 编译器:GCC 4.8.x及以上
- 版本控制工具:Git
- 获取代码
git clone https://github.com/xuperchain/xuperunion
- 生成执行文件
cd xuperunion
make
- 编译完成
- 在output文件夹内部
文件结构介绍
output
│
├── conf // 创始的共识采用tdpos模式,指定单一地址有权利出块
│ │
│ ├── plugins.conf // 插件的配置信息
│ │
│ ├── xchain.yaml. // xchain服务的配置信息
│ │
│ └── xchain.yaml.sample // 防止冲突,部署时根据需要修改端口号
│
│
├── contractCall.sh
│
├── createAccount.sh
│
├── data // 数据的存放目录,创世块信息,以及共识和合约的样例
│ │
│ ├── blockchain // 账本目录
│ │ │
│ │ └── xuper
│ │ ├── ledger
│ │ │ ├── 000001.log
│ │ │ │
│ │ │ ├── CURRENT
│ │ │ │
│ │ │ ├── LOCK
│ │ │ │
│ │ │ ├── LOG
│ │ │ │
│ │ │ └── MANIFEST-000000
│ │ │
│ │ ├── utxoVM
│ │ │ │
│ │ │ ├── 000001.log
│ │ │ │
│ │ │ ├── CURRENT
│ │ │ │
│ │ │ ├── LOCK
│ │ │ │
│ │ │ ├── LOG
│ │ │ │
│ │ │ └── MANIFEST-000000
│ │ │
│ │ └── xuper.json
│ │
│ ├── config // 创始的共识采用tdpos模式,指定单一地址有权利出块
│ │ │
│ │ ├── decay_demo.json
│ │ │
│ │ ├── pmroot.json
│ │ │
│ │ ├── pow.json
│ │ │
│ │ ├── root_demo.json
│ │ │
│ │ └── xuper.json
│ │
│ │
│ ├── keys // 此节点的地址,唯一性
│ │ │
│ │ ├── address
│ │ │
│ │ ├── private.key
│ │ │
│ │ └── public.key
│ │
│ └── netkeys // 此节点的网络标识ID,唯一性
│ │
│ └── net_private.key
│
│
├── deployContract.sh
│
│
├── dump_chain
│
│
├── logs // 程序日志目录
│ │
│ ├── pluginmgr.log
│ │
│ ├── pluginmgr.log.wf
│ │
│ ├── xchain.log
│ │
│ └── xchain.log.wf
│
│
├── plugins // so的存放目录
│ │
│ ├── consensus
│ │ │
│ │ ├── consensus-pow.so.1.0.0
│ │ │
│ │ ├── consensus-single.so.1.0.0
│ │ │
│ │ └── consensus-tdpos.so.1.0.0
│ │
│ ├── contract
│ │
│ ├── crypto
│ │ │
│ │ └── crypto-default.so.1.0.0
│ │
│ └── kv
│ │
│ ├── kv-badger.so.1.0.0
│ │
│ ├── kv-ldb-multi.so.1.0.0
│ │
│ └── kv-ldb-single.so.1.0.0
│
│
├── testnet.conf
│
├── transfer.sh
│
├── wasm2c // wasm工具
│
├── xchain // 服务的二进制文件
│
└── xchain-cli // 客户端工具
链的操作
- 创建链
./xchain-cli createChain
- 启动服务
nohup ./xchain &
- 观察区块
./xchain-cli status -H 127.0.0.1:37101
- 创建账号
./xchain-cli account newkeys –output data/accounts/louis
- 创建合约账号
./xchain-cli account new –desc account.des 合约内容如下:
{ "module_name": "xkernel", "method_name": "NewAccount", "args" : { "account_name": "1111111111111111", //说明:16位数字组成的字符串 "acl": "{ \"pm\": {\"rule\": 1,\"acceptValue\": 0.6}, \"aksWeight\": {\"AK1\": 0.3,\"AK2\": 0.3}}" } }