比特派钱包官方下载app正版|xuperchain

作者: 比特派钱包官方下载app正版
2024-03-07 22:11:05

百度超级链-区块链开放平台

百度超级链-区块链开放平台

产品

可信基础设施

超级链BaaS

可信数字身份

可信跨链

智能预言机

开放网络

可信数据流通

智能链网

隐私计算

可信数字经济

数字商品可信登记平台

电子签约

可信存证

解决方案

司法

版权

金融

政务

溯源

教育

教程

开源社区

XuperChain

链桨

技术论坛

文档中心

服务与支持

充值

工作台

首页

产品

超级链BaaS

开放网络

可信存证

电子签约

隐私计算

可信跨链

可信数字身份

数字商品可信登记平台

超级链智能预言机

智能链网

解决方案

司法

版权

金融

政务

溯源

教育

教程

开源社区

XuperChain

链桨

技术论坛

文档中心

服务与支持

视频介绍

XuperOS

开放网络

提供区块链的快速部署和运行环境,只花2元立即体验区块链服务

查看详情

XuperChain

XuperChain开源

自研可控 / 四大核心技术支持 / 灵活高效支持各类业务应用场景

查看详情

【最新消息】

星际社区悄然预备:AI聊天机器人即将上线,共创社交新篇章

【最新消息】

XuperOS新年致辞

【最新消息】

百度超级链DAPP互通计划发布

超级链数据动态

-

用户数

-

区块高度

-

历史并发峰值

-

总交易笔数

超级链技术优势

超级节点技术

利用超级计算机和分布式架构

具备计算力和储存力

对外呈现为节点,内部为分布式网络

链内并行技术

事务能并行处理的核心技术

能够充分利用多核和多机的计算资源

可插拔共识机制

支持单链上多种共识机制无缝切换

当前支持:DPOS、授权共识、PBFT

支持根据需求定制开发插件

立体网络技术

基于平行链、侧链、链内 DAG 并行技术的逻辑处理

单链:8.7万TPS

整体网络:20万TPS

一体化智能合约

智能合约和核心架构分离技术

具备合约生命周期管理、预执行等特色

合约语言:C++、Go、Solidity等

账号权限系统

去中心化的账号权限系统

可扩展的权限模型,支持多种权限模型配置

产品介绍

超级链BaaS

超级链BaaS提供的标准化区块链产品,可以简单快速的实现业务与区块链的融合,帮助您便捷地完成区块链网络的部署、监控和运维。

查看更多

开放网络

自主研发的开源技术搭建的区块链基础服务网络,为开发者提供区块链应用快速部署和运行的环境。

查看更多

可信存证

通过司法权威节点见证,发挥区块链防篡改、安全的优势,使电子数据作为电子证据对接到互联网法院,具备全链路可信

查看更多

数据协同平台

数据协同平台是基于百度超级链、多方安全计算、数据隐私保护等技术打造的国内首个多企业数据安全协同计算方案

查看更多

解决方案

司法

是由法院、公证处、司法鉴定中心等为节点构建的区块链法院联盟体系,实现数据从生成、存储、传输到最终提交的整个环节真实可信,并具有法律效力。全链路可信,全流程司法权威节点见证

查看详情 >

版权

基于区块链技术,为原创作者和机构提供版权保护、传播变现到监控维权的全链路服务。全方位推动版权存证、监控取证及司法维权全链条。图片机构、确权机构、司法机构三类联盟节点加持,提升版权链公信力,打造真正可信、可靠的版权保护。

查看详情 >

金融

百度超级链与可信计算技术的集成,实现数据不出库,即可完成多方安全建模和共享,为金融机构提供安全可控、保护隐私的数据流通共享的解决方案。大大提升金融机构的风险定价、信用评估,反欺诈系统等金融风控能力

查看详情 >

政务

百度区块链能够助力政府构建“一号申请、一窗受理、一网通办”的政务体系,实现政务数据互认。通过百度超级链的数据协同平台能够在保护用户隐私不受侵害、国家机密安全可靠基础上,用跨链计算方式实现协同工作,提升社会运转效率。

查看详情 >

溯源

通过区块链与物联网技术,将农产品从生产,加工,质检,运输,经销商,零售商一直到消费者手里全流程信息的可信记录,解决了信息孤岛,信息流转不畅,信息缺乏透明度等行业问题。构建数字化一站式消费生态

查看详情 >

开源社区

百度超级链开源技术是百度自主研发创新的产物,拥有链内并行技术、可插拔共识机制、一体化智能合约等业内领先技术支撑,让区块链应用搭建更灵活、性能更高效、安全性更强,全面赋能区块链开发者

进入开源社区

超级链历程

2015年

启动战略投资和方向布局

2017年

区块链技术部门成立

2017年3月

支持长安新生公募ABS发行

2018年3月

区块链版权保护平台上线

2018年9月

百度区块链白皮书V1.0发布

2018年12月

与北京互联网法院共建“天平链”

2019年4月

获得网信办首批区块链信息服务备案

2019年5月

XuperChain宣布开源

2019年7月

通过工信部电子一所安全性、性能测评

2019年8月

与重庆市达成区块链医疗处方流转平台合作

2019年12月

中国唯一代表出席WTO区块链论坛

2020年1月

开放网络正式发布

2020年2月

首个区块链广告监播案例落地

2020年4月

推动区块链首次写入防伪溯源国家标准

2020年6月

牵头制定IEEE跨链国际标准

2020年9月

捐赠开放原子开源基金会

2021年3月

超级链动态内核发布

2021年5月

超级链累计接入全国百余家法院电子证据平台

2021年7月

超级链创新中心落户上海

2021年9月

首个NFT产品发布

2021年12月

首个区块链+AI产品链桨发布

2022年1月

百度超级链数字藏品平台上线

合作伙伴

咨询反馈

请留下您的联系方式与需求,我们将尽快联系您

业务咨询类型*

超级链BaaS开放网络可信存证合作咨询问题反馈可信跨链可信数字身份数字商品可信登记平台超级链智能预言机智能链网

错误信息

姓名*

错误信息

手机号码*

错误信息

邮箱地址*

错误信息

企业名称*

错误信息

行业*

错误信息

咨询反馈*

错误信息

错误信息

提交

关闭

提交成功

xchain-help@baidu.com

邮件联系我们

联系小助手

扫二维码下载

产品

超级链BaaS

开放网络

可信存证

电子签约

隐私计算

可信跨链

可信数字身份

数字商品可信登记平台

教育实训

超级链智能预言机

智能链网

解决方案

司法

版权

金融

政务

溯源

开源社区

XuperChain

链桨

技术论坛

文档中心

服务与支持

服务与支持

关于我们

联系我们

加入我们

官方微信

联系邮箱

xchain-help@baidu.com

友情链接

京公网安备 11000002000001号

北京ICP证030173号

京网信备 11010819390879370022号

使用百度前必读

© Baidu

XuperChain文档 — XuperChain 官方文档 文档

XuperChain文档 — XuperChain 官方文档 文档

XuperChain 官方文档 5.3

XUPERCHAIN介绍

1. 整体介绍

2. 基本概念

快速入门

1. 环境部署

2. 基本操作

进阶使用

1. 网络部署

2. 合约管理

3. 权限管理

4. 共识使用

5. 链上治理

6. 联盟链配置

7. 压测工具

8. 监控说明

9. 高级功能

开放网络

1. 开放网络介绍

2. Go SDK 接入指南

3. Java SDK 接入指南

4. Js SDK 接入指南

开发手册

1. 多语言SDK介绍

2. DAPP开发手册

应用案例

1. 标杆应用

设计原理

1. 整体流程

2. 智能合约

3. 密码学基础

4. p2p网络

5. 共识算法

6. 账本状态机

7. 权限管理

8. 监管机制

9. 其他

贡献指南

代码提交指南

更多资料

1. 源码解读

2. 配置文件

3. 视频教程

XuperChain 官方文档

首页

XuperChain文档

编辑此页

XuperChain文档¶

快速入口

工具介绍

应用案例

技术生态

社区交流

快速入口

工具介绍

应用案例

技术生态

社区交流

XuperChain是百度100%自主研发,拥有完全自主知识产权的区块链底层技术。拥有500+篇核心技术专利。XuperChain以高性能、自主可控、开源为主要设计目标,响应国家政策,打破了国外技术在区块链技术领域的垄断,致力于创建最快、最通用、最好用的区块链底层技术。2019年5月,XuperChain正式向全社会开源。2020年9月,百度将XuperChain的内核技术XuperCore捐赠给开放原子开源基金会,以全新的开源治理模式面向全社会。

快速入口

快速入门

环境部署

基本操作

进阶使用

网络部署

合约管理

权限管理

共识使用

开发手册

多语言SDK介绍

DAPP开发手册

设计原理

整体流程

账本状态机

共识机制

工具介绍

XuperIDE

由生态伙伴黑曜石实验室(Obsidian Labs)贡献的开源项目,支持开发者一键创建节点、编写、编译、部署、调用合约等

查看详情

XuperScan

由生态合作伙伴超级共识贡献的开源项目,支持通过浏览器以可视化的方式查看区块,交易,合约等链上信息

查看详情

XuperBench

XuperChain 官方压测工具,支持转账、存证和合约的压测,也可以根据压测场景构造数据集;具备控制并发数、恒定RPS、阶梯发压、异步发压等能力

查看详情

XuperWallet

区块链密钥管理工具,保护用户隐私,方便备份以及权限管理

即将上线

应用案例下载案例集

消费金融ABS融资系统

依托区块链技术实现资产交易等全流程数据的实时上链,对现金流进行实时监控和精准预测,打造ABS平台上的“真资产”,有效解决资产质量真实性问题

查看详情

百度文库版权区块链服务

借助区块链技术实现版权上链存证,解决取证难题,为原创作者和机构提供从版权保护、传播变现到监控维权的全链路服务

查看详情

云南省生物医药可信供应链金融平台

利用区块链技术实现“融信”的流通、拆分、兑付、融资上链管理,打造可信的供应链服务生态,解决交易信用难题

查看详情

重庆市渝中区电子处方流转平台

基于区块链技术,推动电子处方上链,解决传统医疗服务中数据共享、流通、归集和安全问题,促进了电子处方可信、安全、高效流转

查看详情

上海市徐家汇商圈积分平台

依托区块链技术使多渠道、多终端、多商品品种的数字资产上链管理,实现多个商场的积分打通,赋能徐家汇商圈智慧化升级

查看详情

大闸蟹区块链溯源平台

利用区块链+AI技术实现大闸蟹信息透明、安全上链存储且可追溯,保障大闸蟹品质,重塑周边产业生态

查看详情

技术生态

XuperChain 核心

XuperChain 区块链底层解决方案 源码 文档

XuperCore 区块链内核 源码 文档

智能合约开发工具

C++ 合约 SDK 源码 文档

GO 合约 SDK 源码 文档

JAVA 合约 SDK源码 文档

合约构建测试工具 源码 文档

JAVA SDK 源码 文档

GO SDK 源码 文档

JS SDK 源码 文档

OC SDK 源码 文档

XuperChain 技术生态

XuperIDE 智能合约IDE 源码 文档

XuperFront 接入网关 源码 文档

XuperCA 证书中心 源码 文档

XuperBench 压测工具 源码 文档

XuperScan 区块浏览器

文档

Crypto 密码学库 源码 文档

XuperCross 可信跨链 文档

XuperDID 分布式身份 文档

XuperData 可信计算 文档

XuperWallet 区块链钱包 即将上线

社区交流

超级链官方GitHub

加入论坛

官方技术交流群

扫码加入微信社群

取消

常见问题

Next

© 版权所有 2021, xuper.

Built with Sphinx using a

theme

provided by Read the Docs.

Other Versions

v: master

Branches

master

v3.1

v3.10

v3.12

v3.2

v3.7

v3.8

v3.9

v5.1

v5.3

1. 整体介绍 — XuperChain 官方文档 文档

1. 整体介绍 — XuperChain 官方文档 文档

XuperChain 官方文档 5.3

XUPERCHAIN介绍

1. 整体介绍

1.1. 简介

1.2. 核心优势

1.2.1. 超高性能

1.2.2. 高可扩展

1.2.3. 高度易用

1.2.4. 自主研发

1.3. 架构设计

1.3.1. 协议层

1.3.2. 核心组件层

1.3.3. 基础组件层

1.4. 生态技术

1.4.1. 内核技术

1.4.2. 核心方向

1.4.3. 生态工具

1.4.4. 交叉学科

1.4.5. 解决方案

2. 基本概念

快速入门

1. 环境部署

2. 基本操作

进阶使用

1. 网络部署

2. 合约管理

3. 权限管理

4. 共识使用

5. 链上治理

6. 联盟链配置

7. 压测工具

8. 监控说明

9. 高级功能

开放网络

1. 开放网络介绍

2. Go SDK 接入指南

3. Java SDK 接入指南

4. Js SDK 接入指南

开发手册

1. 多语言SDK介绍

2. DAPP开发手册

应用案例

1. 标杆应用

设计原理

1. 整体流程

2. 智能合约

3. 密码学基础

4. p2p网络

5. 共识算法

6. 账本状态机

7. 权限管理

8. 监管机制

9. 其他

贡献指南

代码提交指南

更多资料

1. 源码解读

2. 配置文件

3. 视频教程

XuperChain 官方文档

首页

1. 整体介绍

编辑此页

1. 整体介绍¶

1.1. 简介¶

XuperChain是百度100%自主研发,拥有完全自主知识产权的区块链底层技术。拥有500+篇核心技术专利。XuperChain以 高性能、自主可控、开源 为主要设计目标,响应国家政策,打破了国外技术在区块链技术领域的垄断,致力于创建 最快、 最通用、 最好用 的区块链底层技术。2019年5月,XuperChain正式向全社会开源。2020年9月,百度将XuperChain的内核技术XuperCore捐赠给开放原子开源基金会,以全新的开源治理模式面向全社会。

1.2. 核心优势¶

1.2.1. 超高性能¶

XuperChain致力于打造最快的区块链底层技术。性能一直是区块链技术被广泛应用的最大障碍。XuperChain基于独创的XuperModel技术、大规模节点快速共识技术、AOT加速的WASM虚拟机技术等核心技术,保证了XuperChain的超高性能。并高分通过全行业的功能、性能测评,单链性能达8.7WTPS。

1.2.2. 高可扩展¶

XuperChain致力于打造最通用的区块链底层技术。不同的应用场景对于区块链的使用需求不同,为了适应更多的场景,底层技术需要能够可扩展。XuperChain基于动态内核技术,实现无内核代码侵入的自由扩展内核核心组件和轻量级的扩展订制内核引擎,满足面向不同场景的区块链实现的需求。并且不同的模块有丰富的技术选型。

1.2.3. 高度易用¶

XuperChain致力于打造最好用的区块链底层技术。XuperChain具有丰富的生态工具、官方文档教程、7*24小时开源社区支持,大大降低开发者的使用门槛。能够帮助用户快速上手,构建自己的区块链应用。

1.2.4. 自主研发¶

XuperChain是百度100%自主研发的技术,核心技术完全自主可控,并采用Apache2.0协议向全社会免费开源。

1.3. 架构设计¶

XuperChain的系统架构设计,采用模块化架构,基础组件模块化共用,内核层聚合各组件,提供能力实现业务需求,从而实现核心流程低成本订制。通过对业务抽象分层、划分子领域和模块化,最大限度的提升代码复用和系统可扩展性。从而做到,通过低成本的定制不同流程来满足不同场景的需求,最大限度的复用核心基础能力。通过分治降低系统复杂度,提升系统可维护性。

整个系统分成四层,其中下面三层构成整个XuperChain内核的核心组成部分,分别为协议层、核心组件层、基础组件层。

1.3.1. 协议层¶

这一层定义区块链的各个模块API、核心结构和流程,并管理各模块的加载和初始化,聚合和调度各核心组件实现系统需求。

1.3.2. 核心组件层¶

这一层负责区块链核心组件的具体实现,通过实现核心层定义的、接口和加载方式,接入到系统。这层的组件可以针对不同的需求场景有多种不同的实现。

1.3.3. 基础组件层¶

这一层实现业务无关的通用基础库,各层都可以引用。

1.4. 生态技术¶

围绕者XuperChain底层核心技术,构建起了整个开源生态技术体系,形成强大的开源技术生态。整个技术生态主要包括内核技术、核心方向、生态工具、交叉学科、解决方案五大组成部分。

1.4.1. 内核技术¶

内核层就是XuperChain内核技术,其定义了一系列标准API,构建一个区块链体系结构,规定了各个模块的逻辑结构、功能特征和各模块间的交互关系,并提供了各个模块适用不同场景的标准实现。

1.4.2. 核心方向¶

核心技术方向是基于内核标准API定义的区块链体系结构之上,各个组成可以独立发展起来的技术方向,主要包括九大核心技术方向,分别包括共识技术、密码服务、存储账本、节点通信、智能合约、系统安全、监管治理、隐私保护、跨链技术等。

1.4.3. 生态工具¶

生态工具技术是围绕着分布式账本技术的周边技术,主要包括区块链管理工具技术、区块链测试技术、钱包技术、浏览器技术、业务集成工具集、合约开发工具集(IDE、XDEV)等等。

1.4.4. 交叉学科¶

主要是XuperChain技术和其他技术相结合的交叉学科技术,比如去中心化身份技术、可信计算技术、边缘技术以及5G技术等等。

1.4.5. 解决方案¶

行业领域技术主要是区块链应用具体行业所产生的行业领域技术,比如与金融行业、供应链领域、医疗行业、政务行业等,目前XuperChain已经在30+场景,100+应用落地。

Next

Previous

© 版权所有 2021, xuper.

Built with Sphinx using a

theme

provided by Read the Docs.

Other Versions

v: master

Branches

master

v3.1

v3.10

v3.12

v3.2

v3.7

v3.8

v3.9

v5.1

v5.3

GitHub - xuperchain/xuperchain: A highly flexible blockchain architecture with great transaction performance.

GitHub - xuperchain/xuperchain: A highly flexible blockchain architecture with great transaction performance.

Skip to content

Toggle navigation

Sign in

Product

Actions

Automate any workflow

Packages

Host and manage packages

Security

Find and fix vulnerabilities

Codespaces

Instant dev environments

Copilot

Write better code with AI

Code review

Manage code changes

Issues

Plan and track work

Discussions

Collaborate outside of code

Explore

All features

Documentation

GitHub Skills

Blog

Solutions

For

Enterprise

Teams

Startups

Education

By Solution

CI/CD & Automation

DevOps

DevSecOps

Resources

Learning Pathways

White papers, Ebooks, Webinars

Customer Stories

Partners

Open Source

GitHub Sponsors

Fund open source developers

The ReadME Project

GitHub community articles

Repositories

Topics

Trending

Collections

Pricing

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

Sign up

You signed in with another tab or window. Reload to refresh your session.

You signed out in another tab or window. Reload to refresh your session.

You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

xuperchain

/

xuperchain

Public

Notifications

Fork

406

Star

1.7k

A highly flexible blockchain architecture with great transaction performance.

xuper.baidu.com/

License

Apache-2.0 license

1.7k

stars

406

forks

Branches

Tags

Activity

Star

Notifications

Code

Issues

64

Pull requests

15

Discussions

Actions

Projects

3

Wiki

Security

Insights

Additional navigation options

Code

Issues

Pull requests

Discussions

Actions

Projects

Wiki

Security

Insights

xuperchain/xuperchain

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

 masterBranchesTagsGo to fileCodeFolders and filesNameNameLast commit messageLast commit dateLatest commit History610 Commits.github.github  autoauto  cmdcmd  confconf  datadata  docsdocs  modelsmodels  serviceservice  .dockerignore.dockerignore  .gitignore.gitignore  .golangci.yaml.golangci.yaml  .licenserc.yaml.licenserc.yaml  .pre-commit-config.yaml.pre-commit-config.yaml  .travis.yml.travis.yml  DockerfileDockerfile  LICENSELICENSE  MakefileMakefile  README-CN.mdREADME-CN.md  README.mdREADME.md  codecov.ymlcodecov.yml  go.modgo.mod  go.sumgo.sum  View all filesRepository files navigationREADMEApache-2.0 licenseXuperChain

中文 | English

What is XuperChain

XuperChain, the first open source project of XuperChain Lab,

introduces an underlying solution to build the super alliance network,

based on the dynamic kernel of xupercore.

You can use xuperchain as a blockchain infrastructure to build a compliant blockchain network.

XuperChain is the underlying solution for union networks with following highlight features:

Dynamic kernel

Based on the dynamic kernel technology, the free extension kernel components without kernel code intrusion and lightweight extension customized kernel engine are implemented to meet the needs of blockchain implementation for various scenarios.

It provides a comprehensive and high-performance implementation of standard kernel components.

Comprehensively reduce the cost of blockchain research and development, and open a new era of one click chain development.

High Performance

Creative XuperModel technology makes contract execution and verification run parallel.

TDPoS ensures quick consensus in a large scale network.

WASM VM using AOT technology.

Solid Security

Contract account protected by multiple private keys ensures assets safety.

Flexible authorization system supports weight threshold, AK sets and could be easily extended.

High Scalability

Robust P2P network supports a large scale network with thousands of nodes.

Branch management on ledger makes automatic convergence consistency and supports global deployment.

Multi-Language Support: Support pluggable multi-language contract VM using XuperBridge technology.

Flexibility: Modular and pluggable design provides high flexibility for users to build their blockchain solutions for various business scenarios.

Quick start

Requirements

OS Support: Linux and Mac OS

Go 1.14.x or later

GCC 4.8.x or later

Git

Build

Clone the repository

git clone https://github.com/xuperchain/xuperchain

Note:

master branch contains the latest features but might be unstable.

For production use, please check out the latest release.

Enter the xuperchain folder and build the code:

cd xuperchain

make

Note that if you are using Go 1.11 or later, go modules are used to download 3rd-party dependencies by default. You can also disable go modules and use the prepared dependencies under vendor folder.

Run test:

make test

Run

Run single node blockchain

There is an output folder if build successfully. Enter the output folder, create a default chain & start blockchains:

cd ./output

sh control.sh start

By doing this, a blockchain named "xuper" is created, you can find the data of this blockchain at ./data/blockchain/xuper/.

By default, the xuper chain will produce a block every 3 seconds, try the following command to see the trunkHeight of chain and make sure it's growing.

./bin/xchain-cli status

Run multi nodes blockchain

Generate multi nodes.

Before running the following command, make sure you have run make to make the code.

make testnet

Enter the testnet directory, and then start three nodes separately (make sure the port is not used)

cd ./testnet/node1

sh ./control.sh start

cd ../node2

sh ./control.sh start

cd ../node3

sh ./control.sh start

Observe the status of each node

./bin/xchain-cli status -H :37101

./bin/xchain-cli status -H :37102

./bin/xchain-cli status -H :37103

Documentation

We have new documentation of Chinese version at XuperChain Chinese Docs,

the English version is coming soon.

How to Contribute

We encourage you to contribute to XuperChain.

Please review the Contribution guidelines for information on how to get started contributing to the project.

License

XuperChain is under the Apache License, Version 2.0.

Contact

For business cooperation, please email:xchain-help@baidu.com (Note with source: GitHub)。

If you are interested in the open source technology and application of XuperChain,

welcome to add 百度超级链·小助手 in WeChat,

join the Baidu Super Chain Developer Community by replying 技术论坛进群,

and have in-depth exchanges with Baidu senior engineers!

WeChat QR code is as follows:

About

A highly flexible blockchain architecture with great transaction performance.

xuper.baidu.com/

Resources

Readme

License

Apache-2.0 license

Activity

Custom properties

Stars

1.7k

stars

Watchers

92

watching

Forks

406

forks

Report repository

Releases

17

XuperChain v5.3.0 Release Note

Latest

Nov 24, 2022

+ 16 releases

Packages

0

No packages published

Contributors

50

+ 36 contributors

Languages

Go

93.9%

Shell

5.5%

Other

0.6%

Footer

© 2024 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

1. XuperChain环境部署 — xuperchain-doc 文档

1. XuperChain环境部署 — xuperchain-doc 文档

xuperchain-doc

latest

XuperChain介绍:

1. 简介

2. 模块

3. 核心数据结构

4. 智能合约

5. 权限系统

6. 隐私和保密

7. 性能

8. 可信账本

9. 总结

快速入门

1. XuperChain环境部署

1.1. 准备环境

1.2. 编译XuperChain

2. XuperChain基本操作

2.1. 部署xchain服务

2.1.1. 创建链

2.1.2. 启动服务

2.1.3. 确认服务状态

2.2. 基本功能的使用

2.2.1. 创建新账号

2.2.2. 查询资源余额

2.2.3. 转账

2.2.4. 查询交易信息

2.2.5. 查询block信息

2.2.6. 发起多重签名交易

技术设计文档:

1. XuperModel

2. XuperBridge

3. XVM虚拟机

4. 账号权限控制模型

5. XuperChain p2p网络

6. 身份认证

7. 提案和投票机制

8. 密码学和隐私保护

9. 插件机制

10. XuperChain 共识框架

11. Chained-BFT共识公共组件

12. XPoS共识

13. XPoA共识

14. Single及PoW共识

15. XuperChain 监管机制

16. 多盘散列

17. 平行链与群组

18. XuperChain 跨链技术

19. 可信账本

进阶使用

1. 合约账号

2. 多节点部署

3. 创建合约

4. 发起提案

5. 配置变更

6. 使用平行链与群组

7. 使用事件订阅功能

8. 只读跨链场景使用文档

9. 非事务场景跨链使用文档

10. 搭建XPoA共识的 XuperChain 网络

11. 可信账本使用文档

12. 监控使用文档

13. 下载发行版

开发应用

1. 电子存证合约

2. 数字资产交易

开发手册

1. 智能合约SDK使用说明

2. 智能合约开发详解

3. XuperChain RPC 接口使用说明

4. XuperIDE 使用文档

XuperChain 测试环境

1. XuperChain 测试环境说明

2. XuperChain 测试环境使用指南

贡献指南

1. 代码提交指南

其他

1. 操作指导

2. 视频教程

3. 指令介绍(API)

4. 常见问题解答

5. 词汇表

6. XuperChain 小课堂

xuperchain-doc

Docs »

1. XuperChain环境部署

编辑此页

本章节将指导您获取XuperChain的代码并部署一个基础的可用环境,还会展示一些基本操作

1. XuperChain环境部署¶

1.1. 准备环境¶

XuperChain主要由Golang开发,需要首先准备编译运行的环境

安装go语言编译环境,版本为1.11或更高

下载地址:golang

安装git

下载地址:git

1.2. 编译XuperChain¶

使用git下载源码到本地

git clone https://github.com/xuperchain/xuperchain.git

执行命令

1cd src/github.com/xuperchain/xuperchain

2make

在output目录得到产出xchain和xchain-cli

注解

可能需要配置go语言环境变量($GOROOT, $PATH)

GOPATH问题报错(go1.11版本之后无需关注)

在1.11版本之前需要配置。配置成以下形式:

export GOPATH=xxx/github.com/xuperchain/xuperchain

GCC版本需要升级到4或5以上

2. XuperChain基本操作¶

在output下,主要目录有data, logs, conf, plugins等, 二进制文件有xchain,xchain-cli

各目录的功能如下表:

目录名

功能

output/

节点根目录

├─ conf

xchain.yaml: xchain服务的配置信息(注意端口冲突)

plugins.conf: 插件的配置信息

├─ data

数据的存放目录,创世块信息,以及共识和合约的样例

│ ··· ├─ blockchain

账本目录

│ ··· ├─ keys

此节点的地址,具有全局唯一性

│ ··· ├─ netkeys

此节点的网络标识ID,具有全局唯一性

│ ··· └─ config

包括创始的共识,初始的资源数,矿工奖励机制等

├─ logs

程序日志目录

├─ plugins

so扩展的存放目录

├─ xchain

xchain服务的二进制文件

├─ xchain-cli

xchain客户端工具

└─ wasm2c

wasm工具(智能合约会用到)

2.1. 部署xchain服务¶

2.1.1. 创建链¶

在启动xchain服务之前,我们首先需要创建一条链(创世区块),xchain客户端工具提供了此功能

1# 创建xuper链

2./xchain-cli createChain

创建链¶

这样我们就使用 config/xuper.json 中的配置创建了一条链(此时 data/blockchain 中会生成 xuper 目录,里面即是我们创建的链的账本等文件)

2.1.2. 启动服务¶

启动服务命令十分简单,还可以配合多种参数使用,详见命令行的 -h 输出

1# 启动服务节点

2nohup ./xchain &

2.1.3. 确认服务状态¶

按照默认配置,xchain服务会监听37101端口,可以使用如下命令查看xchain服务的运行状态

1# check服务运行状况

2./xchain-cli status -H 127.0.0.1:37101

查看运行状态¶

2.2. 基本功能的使用¶

2.2.1. 创建新账号¶

xchain中,账号分为普通账号和“合约账号”,这里先介绍普通账号的创建,命令如下

1# 创建普通用户, 包含地址,公钥,私钥

2./xchain-cli account newkeys --output data/bob

3# 在bob目录下会看到文件address,publickey,privatekey生成

创建账号¶

2.2.2. 查询资源余额¶

对于普通账号,可使用如下命令查询账号资源余额,其中 -H 参数为xchain服务的地址

1./xchain-cli account balance --keys data/keys -H 127.0.0.1:37101

查询余额¶

2.2.3. 转账¶

转账操作需要提供源账号的私钥目录,也就类似“1.2.4.1”中生成的目录,这里注意到并不需要提供目标账号的任何密钥,只需要提供地址即可

1# --keys 从此地址 转给 --to地址 --amount 钱

2./xchain-cli transfer --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 10 --keys data/keys/ -H 127.0.0.1:37101

命令执行的返回是转账操作的交易id(txid)

普通转账操作¶

2.2.4. 查询交易信息¶

通过以下命令可以查询交易的信息,包括交易状态、交易的源和目标账号、交易的金额、所在的区块(如果已上链)等内容

1# 可查询上一步生成的txid的交易信息

2./xchain-cli tx query cbbda2606837c950160e99480049e2aec3e60689a280b68a2d253fdd8a6ce931 -H 127.0.0.1:37101

查询交易¶

2.2.5. 查询block信息¶

通过blockid可以查询区块的相关信息,包括区块内打包的交易、所在链的高度、前驱/后继区块的id等内容

1# 可查询上一步交易所在的block id信息

2./xchain-cli block 0354240c8335e10d8b48d76c0584e29ab604cfdb7b421d973f01a2a49bb67fee -H 127.0.0.1:37101

查询区块¶

2.2.6. 发起多重签名交易¶

对于需要多个账号签名才可以生效的交易,需要先发起多重签名交易,收集需要的签名,然后再发出

对需要收集签名的账号地址,需要事先维护在一个文件中(假定名为addr_list),每个地址一行

1YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG

2ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z

假设要发起一笔转账操作

1# 从账号发起

2./xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 100 -A addr_list

3# 从合约账号发起

4./xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 100 -A addr_list --from XC11111111111111@xuper

这样会生成一个tx.out文件,包含了需发起的交易内容

1# 各方在签名之前可以check 原始交易是否ok,查看visual.out

2./xchain-cli multisig check --input tx.out --output visual.out

然后收集需要的签名

1# 首先需要发起者自己的签名

2./xchain-cli multisig sign --tx tx.out --output my.sign

3# 假设addr_list中的地址对应的私钥存放在alice、bob中

4./xchain-cli multisig sign --keys data/account/alice --tx tx.out --output alice.sign

5./xchain-cli multisig sign --keys data/account/bob --tx tx.out --output bob.sign

最后将交易和收集好的签名发出

1# send后第一个参数是发起者的签名文件,第二个参数是需要收集的签名文件,均为逗号分割

2./xchain-cli multisig send --tx tx.out my.sign alice.sign,bob.sign

Next

Previous

© Copyright 2019, xuper

Revision 7caba979.

Built with Sphinx using a theme provided by Read the Docs.

Read the Docs

v: latest

Versions

latest

v3.7

v3.2

v3.1

Downloads

html

epub

On Read the Docs

Project Home

Builds

Free document hosting provided by Read the Docs.

18. XuperChain 跨链技术 — xuperchain-doc 文档

18. XuperChain 跨链技术 — xuperchain-doc 文档

xuperchain-doc

latest

XuperChain介绍:

1. 简介

2. 模块

3. 核心数据结构

4. 智能合约

5. 权限系统

6. 隐私和保密

7. 性能

8. 可信账本

9. 总结

快速入门

1. XuperChain环境部署

2. XuperChain基本操作

技术设计文档:

1. XuperModel

2. XuperBridge

3. XVM虚拟机

4. 账号权限控制模型

5. XuperChain p2p网络

6. 身份认证

7. 提案和投票机制

8. 密码学和隐私保护

9. 插件机制

10. XuperChain 共识框架

11. Chained-BFT共识公共组件

12. XPoS共识

13. XPoA共识

14. Single及PoW共识

15. XuperChain 监管机制

16. 多盘散列

17. 平行链与群组

18. XuperChain 跨链技术

18.1. 背景

18.2. 什么是跨链

18.2.1. 常见的跨链互操作类型

18.2.1.1. 跨链资产互换

18.2.1.2. 跨链资产转移

18.2.1.3. 跨链任意数据

18.3. 主流跨链方案

18.3.1. 跨链技术的主要挑战

18.3.2. 主流的跨链方案

18.3.2.1. 公证人模式

18.3.2.2. 侧链/中继模式

18.3.2.3. 异步模式

18.3.2.4. 同步模式

18.4. XuperChain 跨链方案

18.4.1. 跨链域名解析

18.4.1.1. 跨链寻址协议

18.4.1.2. 链名解析合约

18.4.2. 只读事务场景跨链

18.4.2.1. 整体方案

18.4.2.2. 背书和验证

18.4.2.3. 使用说明

18.4.3. 非事务场景跨链

18.4.3.1. 什么是非事务性场景跨链

18.4.3.2. 整体方案

18.4.3.3. 梅克尔证明

18.4.3.4. 链上中继合约

18.4.3.5. 中继同步进程

18.4.3.6. 使用说明

18.4.3.7. 事务场景跨链

19. 可信账本

进阶使用

1. 合约账号

2. 多节点部署

3. 创建合约

4. 发起提案

5. 配置变更

6. 使用平行链与群组

7. 使用事件订阅功能

8. 只读跨链场景使用文档

9. 非事务场景跨链使用文档

10. 搭建XPoA共识的 XuperChain 网络

11. 可信账本使用文档

12. 监控使用文档

13. 下载发行版

开发应用

1. 电子存证合约

2. 数字资产交易

开发手册

1. 智能合约SDK使用说明

2. 智能合约开发详解

3. XuperChain RPC 接口使用说明

4. XuperIDE 使用文档

XuperChain 测试环境

1. XuperChain 测试环境说明

2. XuperChain 测试环境使用指南

贡献指南

1. 代码提交指南

其他

1. 操作指导

2. 视频教程

3. 指令介绍(API)

4. 常见问题解答

5. 词汇表

6. XuperChain 小课堂

xuperchain-doc

Docs »

18. XuperChain 跨链技术

编辑此页

18. XuperChain 跨链技术¶

18.1. 背景¶

近年来,随着区块链行业的蓬勃发展,产生了很多区块链系统,这些系统底层协议各不相同。并且随着区块链被被纳入新基建的范畴, 如火如荼的区块链改造运动更加活跃,正在形成一个个新的数据孤岛无论这些孤岛是基于相同的底层系统还是不同的底层系统,其数据互通都非常困困难,因此,迫切需要一个解决方案能够系统地解决多链之间融合的问题,从而实现不同链之间地价值互通。

18.2. 什么是跨链¶

跨链(Cross-Chain),简单来说就是通过一定的技术措施实现相对独立的不同区块链系统之间数据和资产的链接互通。常见的跨链解决方案一般是针对资产类,实现不同链之间任意数据的跨链互通难度会更高

18.2.1. 常见的跨链互操作类型¶

18.2.1.1. 跨链资产互换¶

18.2.1.2. 跨链资产转移¶

18.2.1.3. 跨链任意数据¶

18.3. 主流跨链方案¶

18.3.1. 跨链技术的主要挑战¶

生效的原子性

对两个网络分别发起交易tx1、交易tx2,如何保证要么都不生效,要么都生效。可以通过经典的两阶段提交来完成, 两个交易互为锚点,锚点超过一段时间仍然无效,就可以发起对交易的回滚。

锚点有效性校验

所有节点对锚点的有效性达成没有分歧的判断,不能依赖远程访问证明,由于网络不稳定因素可能会造成验证难的问题。

合约验证的不确定性

一般的区块链系统,每个节点都会验证交易,以防止作恶。所以如果一个合约嵌入了外部链的合约调用,那么在验证阶段,如何确保各个节点验证的结果的一致性,是否会依赖外链的稳定性,这些问题都需要解决。

18.3.2. 主流的跨链方案¶

一般地通过哈希时间锁可以保证跨链交易的原子性。对于两个比较独立的区块链系统,一般的需要依赖一个第三方组件实现信息的交互。根据第三方组件是否执行验证可以分为两种模式,分为公证人模式、侧链/中继模式和哈希锁定模式。根据不同链的交易是异步生效还是同步生效,可以分为异步模式和同步模式。

18.3.2.1. 公证人模式¶

由一个或者一组节点作为公证人参与到两条链中,进行双方交易的收集和验证。其优点是简单,缺点是弱中心化,如下图所示:

18.3.2.2. 侧链/中继模式¶

侧链/中继链模式是2014年BlockStream提出的一种跨链方案。其与公证人模式最大的区别在于其验证是在目标链进行,通过双向锚定的方式实现资产在不同链之间的转移。目标链的验证方式各不相同,比如BTC-Relay使用的是SPV技术。

18.3.2.3. 异步模式¶

以太坊上很多预言机类的DApp的实现方式采用的是异步模式。简单来说,是指发起调用的是一个函数,处理调用结果的是另一个回调函数,如下图所示:

异步调用场景下,一个完整流程需要3笔交易:首先发送交易tx1到A链,A链代码执行到跨链调用会发出一个事件,并且声明了回调函数。

由一个中间件(单例)订阅到事件后,发起对B链调用的交易tx2,tx2上链成功后, 中间件在触发回调函数调用Tx3.

异步的缺点是业务逻辑被迫拆成很多碎片,交互次数多,编程不友好。

18.3.2.4. 同步模式¶

同步模式目前业界没有比较统一的方案,一般地区块链的上的合约在每个节点都会重复执行,如何保证重复执行的结果确定性,且具备幂等性、无副作用是一个难解决的问题。但是现在很多区块链系统采取的是预执行再提交的方式,比如 XuperChain 和Fabric,基于这种事务模式比较容易同步模式的跨链,下面是同步模式的示意图:

18.4. XuperChain 跨链方案¶

XuperChain 是一个易于编程的区块链框架,可以方便地定制新的功能。基于此框架, XuperChain 设计了一个轻量级的跨链方案,通过合约和一些基础库组成了一个完整的跨链方案,适用于不同的跨链应用场景。

通过对用户实际需求的调研,我们抽象出三种不同的跨链场景,分别是只读事务场景跨链、非事务场景跨链和事务场景跨链。并通过上述合约和基础库的能力设计了满足不同场景的解决方案,下面会进行详细的介绍。

18.4.1. 跨链域名解析¶

跨链涉及到不同链资源的互操作,由于不同的链的协议各部相同,为了实现对不同链的资源进行统一定义, XuperChain 定义了如下跨链寻址协议,结合着链名解析合约,便可以实现对任何协议链的统一资源寻址。

18.4.1.1. 跨链寻址协议¶

1 [chain_scheme:][//chain_name][path][?query]

chain_scheme:跨链链类型标识符,用于标识链的具体类型,比如: xuper 表示所跨链链接的链的类型是 XuperChain 。

chain_name:所跨链的链名,定位某一个具体的链,同一Scheme下链名是唯一的;

path:不同Scheme的链类型扩展字段;

query:用于定位某个链内的某项资源,比如对于 XuperChain ,声明调用的合约名、方法名和参数等信息;

下面举例说明:

xuper://chain1?module=wasm&bcname=xuper&contract_name=counter&method_name=increase

xuper: 表示被访问的目标链为XuperChain;

chain1: 表示被访问的目标链的链名;

module: 表示被访问目标xuper链被访问合约的vm为wasm;

bcname: 表示被访问目标xuper链的子链名;

contract_name: 表示被访问目标xuper链合约名;

method_name:表示被访问目标xuper链合约方法名;

目前 XuperChain 仅开源了 XuperChain 搭建的网络之间的跨链互操作,后续会逐步开源与其他链之间的互操作能力。

18.4.1.2. 链名解析合约¶

为了实现跨链请求,仅有上面的链名跨链寻址协议是不够的,在跨链发起的原链上还需要部署一个链名解析合约,该合约目前也已开源 链名解析合约。

1// 注册一个网络,同时包含网络初始meta信息

2RegisterChain(name, chain_meta)

3// 更新一个网络的meta信息,比如修改网络的背书策略

4UpdateChain(name, chain_meta)

5// 根据网络名解析所有背书节点

6Resolve(chain_name) *CrossQueryMeta

7// 插入一个背书节点

8AddEndorsor(chain_name, info)

9// 更新背书节点信息

10UpdateEndorsor(chain_name, address, info)

11// 删除背书节点

12DeleteEndorsor(chain_name, address)

13// 目标网络meta信息

14message CrossChainMeta {

15 string type = 1;

16 int64 min_endorsor_num = 2;

17}

18// 目标网络背书信息

19message CrossEndorsor {

20 string address = 1;

21 string pub_key = 2;

22 tring host = 3; // ip+port

23}

24// 目标网络CrossQuery完整信息

25message CrossQueryMeta {

26 CrossChainMeta chain_meta = 1;

27 repeated CrossEndorsor endorsors = 2;

28}

18.4.2. 只读事务场景跨链¶

18.4.2.1. 整体方案¶

在大部分使用场景下,用户仅希望从一个链能够查询到另一个链的数据,并且能够满足稳定性、幂等性和安全性,我们称为只读事务跨链。

只读事务跨链的典型场景包括身份认证、资质认证等;

为了满足上述要求,我们采取了目标链背书的方式,如下图所示:

完整的步骤如下:

用户在原链发起预执行,合约内部调用”cross_query”原语,访问目标链Hello()合约;

原链内部解析到”cross_query”原语后会调用跨链寻址合约解析目标链链接和背书信息;

原链访问目标链的背书服务;

目标链背书服务内部访问Hello()合约,得到Response并进行签名,返回给原链;

原链继续执行合约,并返回预执行结果给用户;

用户组装完整的交易提交给原链网络;

18.4.2.2. 背书和验证¶

XuperChain 的合约采用的是先预执行再提交的二阶段处理过程,参看 (https://xuperchain.readthedocs.io/zh/latest/design_documents/XuperModel.html)。

预执行阶段,原链节点会远程访问目标链背书服务,背书服务会预执行该合约并且对合约结果进行签名背书,原链会将该合约的结果和背书信息写进写集中一个特殊的bucket中。

提交阶段,不需要再进行远程调用,原链节点在验证合约时,首先会解析出该特殊的写集中的跨链结果和背书签名信息,以填充合约执行的上下文环境,当执行到只读跨链原语时,原链节点不再进行远程调用,而是验证预执行的背书签名,当签名满足背书策略的要求后,就直接使用写集中的跨链合约结果继续后续的合约逻辑,否则验证失败。

18.4.2.3. 使用说明¶

https://xuperchain.readthedocs.io/zh/latest/advanced_usage/readonly_queries.html

18.4.3. 非事务场景跨链¶

18.4.3.1. 什么是非事务性场景跨链¶

非事务场景跨链是指跨链行为并不是要求不同链上的交易具备事务性,即不要求不同链上的跨链交易同时生效或同时失败,跨链交易只对当时被跨链的交易状态进行确认,并根据目标交易状态执行交易后续操作。

举例来讲,在A链上发起的交易tx1执行成功后,发起B链上的交易tx2,但tx2执行失败并不会影响tx1,即不会发生tx1回滚。这种存在依赖的交易,但不保证多个交易执行满足事务性的场景,是典型的非事务跨链。

非事务跨链的典型场景比如身份验证、预言机、资产跨链转移等等,在技术上主要强调跨链交易的存在性证明,但对跨链交易的原子性没有要求。

18.4.3.2. 整体方案¶

非事务跨链典型技术是通过中继实现对目标链数据的数据同步和交易存在性验证,类似BTCRelay。在 XuperChain 中,我们也实现了一套中继机制,通过对目标链的区块头同步,以及梅克尔验证技术,可以做到在原链上直接验证目标链的交易是否存在。

如下图是中继机制的整体结构,主要分为以下两个部分:

链上中继合约(XuperRelayer):部署在原链上的一个智能合约,会保存目标链的所有块头信息,并提供基于梅克尔证明的目标链交易存在性验证。

中继同步进程(Relay Process):在目标链和原链之间,会有一个或多个中继进程,持续监听目标链的最新出块信息,并抽取出块头信息写入

以一个典型的资产转移的场景为例,首先在B链上发起tx1交易,然后原链上发起tx2交易。tx2交易成功的前提条件是确认tx1交易已经生效。因此整个跨链交易生效流程:

用户首先在目标链提交tx1交易;

当tx1交易打包在块中后,中继同步进程会将块头同步到原链上,并保存在链上中继合约中;

用户在原链上发起资产转移交易tx2,同时在合约参数中填写tx1的信息以及tx1的梅克尔路径;

原链中的用户合约通过跨合约调用调用链上中继合约,进行梅克尔验证,如果证明tx1确实存在在目标链中,则返回验证成功,否则返回验证失败;

用户合约在拿到tx1验证成功的结果后,执行后续资产转移操作,并返回结果。

18.4.3.3. 梅克尔证明¶

在 XuperChain 中,区块头保存了块中所有交易的txid构造出的梅克尔树的树根。下图是一颗区块中的梅克尔树举例,区块中的8个交易是梅克尔树的叶子节点,按照交易顺序,每两个相邻的交易的txid通过SHA256计算出梅克尔树的父节点id,依次向上直到计算出了梅克尔树根。在这个树形结构中,任何一个节点的id都直接和自己的父子节点相关,因此树中任何一个节点数据的修改,都会导致整个梅克尔树的树根变化。

交易的验证方只需要知道待验证交易tx1的txid,tx1所在块的block1,并知道从tx1所在梅克尔树的叶子节点开始到梅克尔树根的路径上所有兄弟节点的hash值,就可以计算出梅克尔树根。例如我们要验证梅克尔树中绿色节点9Dog的存在性,那么我们同时给出从9Dog到梅克尔树根的路径上的所有兄弟节点数组[1FXq, ec20, 8f74],则从下而上:

1 Hash(1FXq+9Dog) ⇒ 781a

2Hash(ec20+781a) ⇒ 5c71

3Hash(5c71+8f74) ⇒ 6c0a

在得到计算出的根Hash后,我们从链上中继合约中获取之前已经保存的block1对应的区块头中的梅克尔树根,如果也是6c0a则证明验证通过,否则验证不通过。

18.4.3.4. 链上中继合约¶

链上中继合约是跨链存在性证明的核心,提供对目标链中的区块头同步存储,并通过梅克尔验证技术提供交易查询接口。链上中继合约主要解决三个问题,交易的真实性、及时性证明、区块头分叉管理。

真实性证明:即证明交易确实存在,主要通过Merkle Proof证明交易是否真的存在于链中以及是否在主干上。

及时性证明:即证明交易是否确认,跟目标链采用的共识算法相关。对于同步Byzantine类共识算法,及时性是内置的,只要交易在区块头中,那么交易必定在原链处于上链状态。对于PoW类共识算法,一般要求交易所在块距主干最新高度相差6个块以上。

区块头分叉管理:对同步的区块头按照树形结构维护依赖关系,并根据目标链的主干选择算法即使调整目标链的主干区块状态。

目前的跨链实现支持了对 XuperChain 同构链的链上中继合约,代码位于 https://github.com/xuperchain/xuperchain/tree/master/core/contractsdk/cpp/example/xuper_relayer 目录中。主要实现了对XPoS共识的区块头分叉管理和存在性证明,目前该功能仍处于实验状态,后续版本中会持续增加新的共识和异构链的支持。

合约主要接口如下:

接口名

参数

说明

initialize

合约初始化函数

initAnchorBlockHe

ader

blockHeader: 区块头数据

初始化锚点区块头,锚点区块头一般是初始化后写入的第一个区块头,目

标链不一定需要从创世块开始同步,因此有了锚点区块的概念。

putBlockHeader

blockHeader: 区块头数据

写入一个新区块头信息,会自动验证区块头数据是否正确并进行分叉管理

verifyTx

blockid: 待验证交易的区块id

txid:待验证的交易id

proofPath:待验证交易的梅克尔路

径上的兄弟节点hash

txIndex:待验证交易在区块所有交

易中的序号

交易验证接口,通过梅克尔证明验证他链上的交易id是否真实有效

printBlockHeader

blockid: 区块id

打印指定区块id的区块头信息

18.4.3.5. 中继同步进程¶

中继同步进程相对简单,主要通过对目标链的出块监听,将最新区块中的区块头信息抽取出来,并同步到原链中。

中继同步进程的代码位于https://github.com/xuperchain/xuperchain/tree/master/core/cmd/relayer。

18.4.3.6. 使用说明¶

https://xuperchain.readthedocs.io/zh/latest/advanced_usage/cross_chain.html

18.4.3.7. 事务场景跨链¶

Next

Previous

© Copyright 2019, xuper

Revision 7caba979.

Built with Sphinx using a theme provided by Read the Docs.

Read the Docs

v: latest

Versions

latest

v3.7

v3.2

v3.1

Downloads

html

epub

On Read the Docs

Project Home

Builds

Free document hosting provided by Read the Docs.

XuperChain_百度百科

rChain_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心收藏查看我的收藏0有用+10XuperChain播报讨论上传视频百度自主研发的区块链操作系统XuperChain是百度自主研发的区块链操作系统。外文名XuperChain产品类型区块链操作系统目录1发展历史2定位发展历史播报编辑2018年10月18日,百度公司与海南省人民政府宣布将在区块链领域达成深度合作。百度与海南省工业和信息化厅及海南生态软件园将共同建设海南百度区块链实验室,发起设立海南自贸区(港)区块链试验区标准委员会。在当天的发布会上,百度还首次发布了《百度区块链白皮书1.0》以及百度的超级链系统——XuperChain,并宣布度链公司落户海南。 [1]定位播报编辑《百度区块链白皮书》显示,百度区块链战略的核心就是百度自主研发的区块链操作系统——XuperChain。据了解,超级链拥有100%自主产权创新,80篇专利保护,具备超级节点技术、链内并行技术和立体网络技术等核心亮点。 [1]新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

6. XuperChain 小课堂 — xuperchain-doc 文档

6. XuperChain 小课堂 — xuperchain-doc 文档

xuperchain-doc

latest

XuperChain介绍:

1. 简介

2. 模块

3. 核心数据结构

4. 智能合约

5. 权限系统

6. 隐私和保密

7. 性能

8. 可信账本

9. 总结

快速入门

1. XuperChain环境部署

2. XuperChain基本操作

技术设计文档:

1. XuperModel

2. XuperBridge

3. XVM虚拟机

4. 账号权限控制模型

5. XuperChain p2p网络

6. 身份认证

7. 提案和投票机制

8. 密码学和隐私保护

9. 插件机制

10. XuperChain 共识框架

11. Chained-BFT共识公共组件

12. XPoS共识

13. XPoA共识

14. Single及PoW共识

15. XuperChain 监管机制

16. 多盘散列

17. 平行链与群组

18. XuperChain 跨链技术

19. 可信账本

进阶使用

1. 合约账号

2. 多节点部署

3. 创建合约

4. 发起提案

5. 配置变更

6. 使用平行链与群组

7. 使用事件订阅功能

8. 只读跨链场景使用文档

9. 非事务场景跨链使用文档

10. 搭建XPoA共识的 XuperChain 网络

11. 可信账本使用文档

12. 监控使用文档

13. 下载发行版

开发应用

1. 电子存证合约

2. 数字资产交易

开发手册

1. 智能合约SDK使用说明

2. 智能合约开发详解

3. XuperChain RPC 接口使用说明

4. XuperIDE 使用文档

XuperChain 测试环境

1. XuperChain 测试环境说明

2. XuperChain 测试环境使用指南

贡献指南

1. 代码提交指南

其他

1. 操作指导

2. 视频教程

3. 指令介绍(API)

4. 常见问题解答

5. 词汇表

6. XuperChain 小课堂

xuperchain-doc

Docs »

6. XuperChain 小课堂

编辑此页

6. XuperChain 小课堂¶

第一期

什么是区块链共识算法?

一种通过确认交易上链顺序从而保证网络节点状态一致并且结合经济学中的博弈论让攻击者的攻击成本远远大于收益的算法。常见的区块链共识算法包括:POW,POS,DPOS,VBFT,SPOS等。

TDPOS是什么共识机制?

TDPOS是百度在DPOS共识算法(Delegated Proof of Staking,委托权益证明)基础上自研改进的共识算法。区块链网络中的持币用户通过不定期选举出一小群节点,让这些节点进行区块创建、签名、验证和相互监督。TDPOS在DPOS基础上做了很多优化和细节改造并且TDPOS作为百度 XuperChain 的默认共识算法。

第二期

什么是权限控制系统?

权限控制系统是为了约束资源查询/更新等能力而引入的一种系统要素。常见的权限控制系统包括:基于ACL的权限控制系统,基于RBAC的权限控制系统,基于ABAC的权限控制系统。

XuperChain 的权限控制系统是什么?

百度 XuperChain 基于ACL权限控制模型实现了一套去中心化的权限控制系统,用于限制合约资源数据的访问/更新等能力,从而保障合约资源数据的安全。百度 XuperChain 自研的权限控制系统目前支持签名阈值策略、AK集签名策略等。

第三期

什么是公有链、联盟链以及私有链?

公有链是指所有人都可以参与的区块链,所有人都可以查询、发送、接收、验证交易等特性;联盟链亦称为许可链,参与方限制为联盟成员,参与方通常是各个企业、机构,金融、物流以及司法等是联盟链的主要应用场景;私有链是指参与方受限为企业、机构或者个体,主要用于解决可审计问题。

XuperChain (XuperChain)是什么?

XuperChain 是百度自研的区块链底层技术,具有链内并行技术、可插拔共识机制、一体化智能合约等领先技术,支持隐私保护和安全机制,具有可兼容性、扩展性强、高性能等特点。不仅适用于面向企业以及机构之间的联盟链应用场景,同时适用于公有链应用场景。目前XuperChain已经应用于司法、版权、边缘计算、数据协同、溯源、电子政务、智慧医疗等多个领域。

第四期

什么是区块链账户?

区块链账户是指用于标识区块链网络中不同身份的一种机制。

百度 XuperChain 中的账户是什么?

百度 XuperChain 使用了两种类型的账户,包括普通账户以及合约账户。(1)普通账户通常由账号(address)、公私钥对以及余额组成。账号可以操作转账。(2)合约账户相比普通账户而言,是一个更高级的账户类型,可以为多个账户角色进行权重分配,分配之后多个角色(包括普通账户或者合约账户)可以共同管理合约账户下面的数据资产(包括智能合约、访问权限列表、余额等)。相比传统中心化的权限管理模式而言,不是由某个账户对数据资产进行专权化管理;账户权限一但创建之后,即实现了不同权重账户的多中心化资产管理模式,不同账户角色也可以通过共同签名来更改权限。

第五期

普通账户与合约账户的应用场景各有哪些?

普通账户的资产只归属一个人,而合约账户会分配多个账户共同管理合约账户下面的资产(包括智能合约、访问权限列表、余额等)。因此,在部署合约以及需要多方共同管理资产时,需要使用合约账户;其他应用场景下,普通账户与合约账户没有明显区别。

账户与账号的区别是什么?

账号是账户的组成部分,作为账户的唯一标识符,有固定的生成规则。比如,在百度 XuperChain 中,dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN是一个有效的普通账户的账号;XC1111111111111111@xuper是一个有效的合约账户的账号。

第六期

P2P网络是什么?

P2P网络也称为对等网络,它是一种网络技术和网络拓扑结构。目前P2P技术已经应用于流媒体、点对点通讯等领域,也就是我们常说的BT工具和电驴,比较常见的P2P网络协议有BitTorrent、ED2K等。

区块链P2P网络是什么?

区块链P2P网络主要用于区块链节点之间数据传输和广播、节点发现和维护。因此,区块链P2P网络主要解决数据获取以及节点定位两个问题。节点发现和局域网穿透技术主要解决的是节点定位问题,节点交互协议主要解决的是数据获取问题。节点发现主流协议有Gossip以及KAD,局域网穿透协议主要有NAT。

第七期

混盘技术是什么?

混盘技术也称为多盘技术,将多个磁盘从逻辑上当作一个磁盘来处理,主要用于解决只支持本地单盘场景下数据库空间不够的问题(即扩展性问题),比如被广泛使用的LevelDB。目前对LevelDB的多盘扩展技术,大部分是采用了多个LevelDB实例的方式,也就是每个盘一个单独的LevelDB实例。

XuperChain 自研的混盘技术

多个LevelDB实例的方式好处是简单,不需要修改LevelDB底层代码,缺点是牺牲了多行原子写入的功能。在区块链的应用场景中,需要保证多个写入操作是原子性的特性。 XuperChain 改造LevelDB存储引擎本身,在引擎内部完成了数据文件的多盘放置,能够确保所有写入更新操作的原子性,从而能够满足区块链场景的交易原子性要求。

第八期

平行链是什么?

平行链是相对于单链而言的,在只有一条链情况下,所有交易都由根链验证、执行、存储、打包到区块,在交易量高的情况下,存在吞吐低,延时高的问题。为了解决这类扩展性问题,从根链衍生出多条子链,各个子链打包自己链上的交易,账本、共识算法、网络等模块都可以相互独立。

百度 XuperChain 中的平行链是什么?

百度 XuperChain 通过系统合约方式创建平行链,平行链之间相互独立,拥有各自的账本和共识算法等模块,目前平行链之间共享p2p网络。不同的业务可以跑在不同的平行链上,起到了业务隔离效果,在使用平行链时,需要通过--name指定需要操作的平行链的名字。

第九期

用户可以通过哪些客户端接口访问百度 XuperChain ?

xchain-cli,交互式命令行工具,直接使用xchain-cli即可发起操作,本质是通过rpc接口与服务端进行交互,可以从xuperchain库中获取;xchain-cli具有丰富的命令,包括创建账户、普通转账、合约部署以及调用、提案、投票、链上交易以及区块查询等功能;比如./xchain-cli transfer --to bob --amount 1就可以发起一笔向bob转账1个utxo的交易,更多命令可以通过./xchain-cli -h获取;

SDK:提供一系列的API接口,用户可以基于提供的API接口做定制化的操作,相比xchain-cli更灵活;目前开源的SDK包括Go SDK,Python SDK,C# SDK;

curl:直接通过curl命令来发起查询、构造交易等操作,客户端除了curl,不依赖任何三方库,此时需要服务端启动xchain-httpgw,然后通过curl http://localhost:8098/v1/get_balance -d '{"bcs":[{"bcname":"xuper"}, "address":"bob"], 即可查询xuper链上bob的余额信息

第十期

Gas在区块链中的作用是什么?

Gas是一种资源消耗计量单位,比如执行智能合约时消耗的资源数量。用于奖励矿工并防止恶意攻击,是区块链生态系统可持续发展的重要因素。通常,Gas由各种可衡量资源按照特定比例累加而成。

百度 XuperChain 中,如何计算Gas?

百度 XuperChain 中采用了如下可衡量资源:CPU,Mem,Disk,XFee。其中,CPU是指一个合约执行时消耗的CPU指令,Mem是指一个合约上下文消耗的内存大小,Disk是指一个合约上下文的磁盘大小,而XFee是一种特殊资源,主要针对系统合约消耗的资源,比如创建一个合约账号、设置合约方法的ACL需要消耗的资源。Gas计算公式为:Gas = CPU * cpu_rate + Mem * mem_rate + Disk * disk_rate + XFee * xfee_rate,其中cpu_rate,mem_rate,disk_rate,xfee_rate为资源与Gas的兑换比例。

第十一期

区块链的链上治理是指什么?

区块链的链上治理是指在一个涉及很多利益方的区块链网络中,为了升级系统共识参数并保证区块链网络持续演进的链上解决方案(比特币和以太坊就因为系统共识参数升级分歧发生过多次硬分叉)。

百度 XuperChain 的链上治理是如何做的?

百度 XuperChain 提出一种提案机制,首先,提案发起人会发起一笔修改系统共识参数的提案交易;然后,提案发起人将提案交易通过链外方式(比如邮件列表或者论坛、线下聚会等)告诉社区,对提案作进一步解释,并号召大家投票;之后,区块链网络中的用户可以对该提案交易进行投票;最后,如果投票数量超过提案交易中规定的最低票数,该提案交易就会生效。

第十二期

区块链中,虚拟机的作用是什么?

虚拟机为智能合约提供了一个对底层透明的执行环境,主要工作包括指令解析、链上交互、Gas计算等。目前常见的虚拟机包括EVM,基于WASM的虚拟机等。

XuperChain 虚拟机是如何执行合约的?

XVM(Xuper Virtual Machine, XuperChain 虚拟机)目前支持在预编译模式以及解释模式下执行智能合约。

1. 预编译模式下:在合约部署时,XVM会将wasm指令编译成本地机器可以运行的指令(由wasm2c来做,主要工作包括将wasm转换成c、系统调用、Gas统计等功能);在合约调用时,直接执行相应的指令即可。因此,预编译模式下,合约部署需要消耗时间,通常为数秒;而合约调用因为不需要再次做指令映射,执行效率高;

2. 解释模式下:在合约调用时,XVM对wasm指令挨个解释执行(主要工作包括对wasm指令进行解释执行、Gas统计等功能)。因为在合约部署时不需要做指令映射,合约部署较快;在合约调用时,需要对wasm指令挨个做指令映射,执行效率低。

第十三期

区块链中常见的安全问题有哪些?

区块链中常见的攻击包括DDoS攻击、女巫攻击、整数溢出、可重入攻击、拜占庭攻击等,主要体现在网络层、智能合约层、共识层、数据层等方面。

XuperChain 做了哪些安全工作?

XuperChain 主要在密钥安全、网络安全、数据安全、共识安全以及智能合约安全等方面做了系列工作。

密钥安全方面,支持密钥加密存储、助记词恢复、密钥备份等能力;

网络安全方面,通过TLS进行数据加密传输,通过CA实现联盟准入机制,节点身份认证以及分层网络路由保护机制,来源IP数量限制等;

数据安全方面,除了基本密码学机制外,还实现账号与权限系统细粒度区分数据访问权限;

共识安全方面,实现了bft组件,能够抵抗拜占庭节点攻击;

智能合约方面,通过wasm实现指令级资源审计,屏蔽对底层存在较大风险的系统调用接口,保证应用层安全。

第十四期

关于UTXO的命令有哪些?

查询用户UTXO面额:./xchain-cli account balance;

查询用户UTXO详细信息:./xchain-cli account list-utxo;可以通过该命令查看哪些utxo当前可用,哪些utxo当前被锁定以及哪些utxo当前被冻结;

合并UTXO:./xchain-cli account merge;可以通过该命令将用户多个utxo合并,来解决因UTXO太零散导致交易过大问题;

拆分UTXO:./xchain-cli account split;可以通过该命令将用户的一个UTXO进行拆分,解决用户无法同时发起多笔交易的问题;

第十五期

XuperChain 开放网络是什么?

XuperChain 开放网络是基于百度完全自主研发的开源技术搭建的区块链基础服务网络,由分布在全国的超级联盟节点组成,符合中国标准,为用户提供区块链应用快速部署和运行的环境,以及计算和存储等资源的弹性付费能力,直接降低用户部署和运维成本,让信任链接更加便利。

XuperChain 开放网络有哪些优势?

自主安全高可靠:基于百度完全自主研发且开源的区块链技术搭建,满足中国区块链标准要求;

灵活便捷低门槛: 无需建链即可运用区块链技术,丰富的合约模板和强大的功能组件,降低使用门槛;

弹性付费成本低:具备计算和存储等资源的弹性付费能力,可以实现按需按量灵活计费,一分钱即可用;

节点开放公信强:由分布全国的超级联盟节点构成,面向社会开放节点接入,具备极强的公信力;

第十六期

XuperChain 有哪些交易类型?

XuperChain 主要包括三种交易类型:

普通转账交易:基于用户utxo进行转账,此类交易包含utxo的引用关系,即TxInput和TxOutput,能够并行执行;

二代合约交易:主要用于修改系统共识参数,比如升级共识算法、提案等操作,此类交易执行顺序与区块高度绑定,只能串行执行;

三代合约交易:采用两阶段提交,首先通过预执行获取合约数据读写集,然后组装交易并转发给记账节点执行,此类交易执行顺序与区块高度无关,能够并行执行。

XuperChain如何统一UTXO和智能合约模型?

UTXO模型主要用于存储用户的utxo数据,一般适用于普通转账交易;而智能合约存储模型主要用于存储用户合约相关数据。本质上,这两种存储模型都是存储用户数据并且包含数据版本依赖关系。因此, XuperChain 自研一套通用的存储模型XuperModel,基于key记录用户数据的依赖关系,实现UTXO和智能合约底层数据存储模型的统一。而比特币和以太坊底层存储模型不同,导致它们无法做到兼容。

第十七期

XuperChain 中,交易执行支持哪些模式?

XuperChain 支持三种交易执行模式,分别为同步模式、纯异步模式以及异步阻塞模式。

同步模式:客户端发起一笔交易并等待交易执行结果;xchain节点更新交易状态时,加锁,锁内只能同时更新一个交易状态;

纯异步模式:客户端发起一笔交易并直接返回;xchain节点积攒批量交易,在更新交易状态时,加锁,锁内同时更新批量交易状态;

异步阻塞模式:客户端发起一笔交易并等待交易执行结果;xchain节点积攒批量交易,在更新交易状态时,加锁,锁内同时更新批量交易状态;

如何使用同步、纯异步以及异步阻塞模式?

三种模式是互斥的,默认采用同步模式。在xchain节点启动时,通过flag来选择。通过nohup ./xchain --asyncBlockMode=true & 启动异步阻塞模式;通过nohup ./xchain --asyncMode=true & 启动纯异步模式。

第十八期

如何参与 XuperChain 的开发?

可以通过阅读 XuperChain 任意开源项目,包括源代码、文档,以便了解当前的开发方向;

找到自己感兴趣的功能或者模块;

实际开发时需要自测功能是否正常、性能是否符合预期,并运行make & make test检查是否通过所有单测;

发起一个Pull Request,如果你的代码合入到主干后,就有机会运行在线上机器上。

如何提一个PR?

从GitHub上fork XuperChain 的项目,并通过git拉取到本地;

在本地用git新起一个分支,贡献的代码全部放在本地分支上;

本地代码开发完毕,通过git push将本地分支代码提交至远程服务端;

点击GitHub对应项目栏下面的Pull Request按钮,填写需要合并的分支以及被合并的分支,然后点击create pull request即发起一个PR。

第十九期

XuperChain 支持消息推送机制吗?

消息推送是指客户端主动向xchain节点订阅感兴趣的消息类型,当该类型的消息在链上被触发时,xchain节点会主动将该行为推送给客户端;

目前, XuperChain 支持三种消息类型的推送,分别为区块消息、交易消息以及账户消息。

1. 区块消息:用户可以订阅具有特定策略的区块,当链上触发这类区块时,会将消息主动推送给客户端;

2. 交易消息:用户可以订阅具有特定策略的交易,当链上触发这类交易时,会将消息主动推送给客户端;

3. 账户消息:当用户的余额发生变化时,会将消息推送给客户端。

如何使用 XuperChain 的消息推送机制?

目前, XuperChain 的master分支支持消息推送机制。通过在xchain.yaml中增加pubsubService配置来启动事件推送服务。同时 XuperChain 提供了一个简单的客户端来订阅、接收自己感兴趣的消息。针对每种消息类型可用的策略可以参考event.proto文件。

第二十期

XuperChain 支持群组功能吗?

群组是一种为了实现平行链之间隐私数据隔离,不同平行链只有指定节点才能参与区块打包、区块同步、区块/交易转发等能力的机制。

如何使用 XuperChain 的群组功能?

目前, XuperChain 的master分支支持群组功能。在创世块配置文件中配置群组合约的相关参数,包括合约名、方法名等,并部署好群组合约( XuperChain 有群组合约的默认实现)即可调用群组合约为平行链增加节点白名单,从而让平行链具备群组能力。

Previous

© Copyright 2019, xuper

Revision 7caba979.

Built with Sphinx using a theme provided by Read the Docs.

Read the Docs

v: latest

Versions

latest

v3.7

v3.2

v3.1

Downloads

html

epub

On Read the Docs

Project Home

Builds

Free document hosting provided by Read the Docs.

新手入门 | 上链第一步!如何完成XuperChain环境、服务部署 - 知乎

新手入门 | 上链第一步!如何完成XuperChain环境、服务部署 - 知乎切换模式写文章登录/注册新手入门 | 上链第一步!如何完成XuperChain环境、服务部署百度超级链XUPER本文面向零区块链基础入门XuperChain的开发者,介绍了如何部署XuperChain基础可用环境以及XuperChain服务部署基本操作和配置,帮助开发者们快速了解XuperChain部署流程和基本功能,完成上链第一步。本文主要分为两大模块:XuperChain环境部署和Xuperchain服务部署。 XuperChain环境部署第一步 准备环境XuperChain主要由Golang语言开发,首先需要准备编译运行的环境:(1)根据您使用的电脑操作系统,安装go语言编译环境 (推荐使用的版本为1.14或1.15):https://go.dev/dl/(2)安装Git,帮助有效、高速地完成项目版本管理:https://git-scm.com/download第二步 编译XuperChain(1) 完成XuperChain编译运行环境后,使用Git将XuperChain源代码下载到本地:https://github.com/xuperchain/xuperchain(2)完成源代码下载后,在XuperChain目录下执行以下命令:$ cd xuperchain

$ git checkout v5.1.0

$ make执行命令后,在output目录可以得到bin、conf、data 三个文件夹以及一个 control.sh 脚本,各目录的功能如下表:经过以上的操作就已经完成对XuperChain编译环境的基本部署。 Xuperchain服务部署完成XuperChain基本环境部署后,接下来将对XuperChain服务进行部署,此部分内容将以XuperChain单节点single共识的链为例操作,教大家如何快速启动一条链,并在链上使用一些基本功能。启动单节点 single 共识的链XuperChain的最新版本为启动服务提供了方便的脚本,只需要在output下执行一条命令【control.sh】即可启动单节点 single 共识的链。# 启动xuper链

$ bash control.sh start

/home/ubuntu/go/src/github.com/xuperchain/output/bin/xchain

/home/ubuntu/go/src/github.com/xuperchain/output/conf/env.yaml

2021/08/10 19:26:57 start create chain.bc_name:xuper genesis_conf:./data/genesis/xuper.json env_conf:./conf/env.yaml

2021/08/10 19:26:57 create ledger succ.bc_name:xuper start xchain. cmd:nohup /home/ubuntu/go/src/github.com/xuperchain/output/bin/xchain startup --conf /home/ubuntu/go/src/github.com/xuperchain/output/conf/env.yaml >/home/ubuntu/go/src/github.com/xuperchain/output/logs/nohup.out 2>&1 &

.start proc succ.

start finish.pid:17242

Done!【control.sh】脚本提供了 start、stop、restart、forcestop 四个命令,可以通过执行【bash control.sh help】命令查看。按照默认配置,Xuperchain服务会监听37101端口,可以使用如下命令查看Xuperchain服务的运行状态:# check服务运行状况

$ bin/xchain-cli status -H 127.0.0.1:37101

{

"blockchains": [

{

"name": "xuper",

"ledger": {

"rootBlockid": "d93c260ea5639a55e1fcad3df494495efad5c65d46e846b6db3a9194a4212886",

"tipBlockid": "9555ca5af579db67734f27013dfaae48d93e4c3e8adcf6ca8f3dc1adb06d0b6f",

"trunkHeight": 137

},

....

"9555ca5af579db67734f27013dfaae48d93e4c3e8adcf6ca8f3dc1adb06d0b6f"

]

}

],

"peers": null,

"speeds": {}

}XuperChain基本功能使用第一步 创建账号在XuperChain中,账号类型分为“普通账号”和“合约账号”。普通账号由程序离线生成,在本地保存;合约账号是XuperChain中用于智能合约管理的单元,由普通账户发起交易,在链上生成的一个16位数字的账户,存储在链上。发起合约相关交易,比如合约调用时,需要使用合约账户。创建账号的操作如下:# 创建普通用户, 生成的地址,公钥,私钥在--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账号创建完成后会在data/bob目录下会看到文件address,publickey,privatekey生成,这就是本次创建账号的地址、公钥和私钥,在下面的操作中将会用到。第二步 查询资源余额以普通账号为例,使用如下命令查询账号资源余额,其中-H参数为Xuperchain服务的地址。# 根据账户存储的路径,查询该账户的余额。--keys为要查询的账户的地址

$ bin/xchain-cli account balance --keys data/keys

100000000000338000000

# 根据地址查询该账户余额

$ bin/xchain-cli account balance TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY

100000000000401000000第三步 转账转账操作需要提供源账号的私钥目录,也就类似“创建新账号”中生成的目录,这里注意到并不需要提供目标账号的任何密钥,只需要提供地址即可。命令执行的返回是转账操作的交易id(txid)。# --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

{

"txid": "24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4",

"blockid": "e83eae0750d0f48cc2b45f25d853fb587d124552851bf6693757e0715837b377",

"txInputs": [

{

"refTxid": "2650aa0c0e8088def98093a327b475fa7577fa8e266c5775435f7c022fe0f463",

"refOffset": 0,

"fromAddr": "TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY",

"amount": "1000000"

}

],

......

"authRequireSigns": [

{

"publickey": "{\"Curvname\":\"P-256\",\"X\":36505150171354363400464126431978257855318414556425194490762274938603757905292,\"Y\":79656876957602994269528255245092635964473154458596947290316223079846501380076}",

"sign": "30460221009509e35b1341284b5d1f22b48c862ecfe2856056196c5650bc203b8a4ed0d454022100f8d286c63ad8eb3bc605bc08da4ff417aaff3c0433a31039f608bb47a90b1267"

}

],

"receivedTimestamp": 1628596303271475925,

"modifyBlock": {

"marked": false,

"effectiveHeight": 0,

"effectiveTxid": ""

}

}第五步 查询block信息通过block id可以查询区块的相关信息,包括区块内打包的交易、所在链的高度、前驱/后继区块的id等内容。# 可查询上一步交易所在的block id信息

$ bin/xchain-cli block e83eae0750d0f48cc2b45f25d853fb587d124552851bf6693757e0715837b377 -H 127.0.0.1:37101

{

"version": 1,

"blockid": "e83eae0750d0f48cc2b45f25d853fb587d124552851bf6693757e0715837b377",

"preHash": "41c74e22ccea7dcf1db6ba0d7e1eefd6cfbd7bac7659c3d8cd33d2a009201003",

"proposer": "TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY",

"sign": "3044021f349da2d5c238175a6e7df23262eeb122014f0a0040fc4ce109a3ab2c22b2700221009d92198061193fcd47e25c8f5c2b54e1ea2ffb4aaab675384c4d6408ab2b63de",

"pubkey": "{\"Curvname\":\"P-256\",\"X\":36505150171354363400464126431978257855318414556425194490762274938603757905292,\"Y\":79656876957602994269528255245092635964473154458596947290316223079846501380076}",

"merkleRoot": "d22d2423a93911e42f96370167d878f6780fea44fac6a13771c7532e1969c949",

"height": 492,

......

"txCount": 2,

"merkleTree": [

"4a7e42654cf79d6525f6b6d55673b57a92048ee96de950e962db99b102e048a4",

"24d53ea6e61ede8dc4fe65a04fd30da17c079a359e700738f8795dfddc55ffb4",

"d22d2423a93911e42f96370167d878f6780fea44fac6a13771c7532e1969c949"

],

"inTrunk": true,

"nextHash": "a541ed97789537166bec5778aad7ba0f68e52a04d1073b244ee1ea6cd38d8f63",

"failedTxs": null,

"curTerm": 0,

"curBlockNum": 0,

"justify": {}

}到这里,你已经完成了XuperChain编译运行的环境部署,构建了第一条链并完成了建链后的一些基本操作!如果你对以上操作有任何疑问的,欢迎添加百度超级链小助手,进入技术交流群跟我们一同探讨!发布于 2022-01-05 12:01区块链(Blockchain)​赞同​​添加评论​分享​喜欢​收藏​申请