XuperChain功能

内容纲要

总结

  1. 智能合约是核心
  2. 智能合约是一个代理程序, 我们可以开发和部署到区块链上
  3. 智能合约可以访问节点上存储的键值对数据库, 我们通过智能合约来修改数据库, 区块链来执行和记录历史记录.
  4. 百度开放网络上限制比较多
    • 普通用户也必须实名认证, 才能使用私钥进行操作(仅使用地址转过去是不需要的)
    • 智能合约不能升级, 一次性部署

参考

部署相关

文档
还是比较方便就可以在本地启动.

账户

账号分为普通账号合约账号. 合约账号是和智能合约配合使用, 是系统使用的 . 普通账号是普通的用户使用的.

普通账号和基本操作

其实和银行的概念基本类似, 不过是非中心化的, 公开透明的.

  1. 创建普通账号, 生成
    • address: 公开的地址(银行卡号)
    • private key: 私钥(银行密码)
    • public key: 没看到介绍,不过从对称性上讲,任何人持有公钥可以来验证这个私钥是不是正确的, 应该是给系统用.
  2. 查询普通账户余额
    • 通过address
  3. 普通账户之间转账: 从A转B
    • 需要A的私钥
    • B的地址
    • 转账会生成一个交易ID
  4. 查询交易信息(通过交易产生的交易ID)
    • 交易状态
    • 交易目标账号
    • 金额
    • 这次交易所在的blockid(如果已经上链: 我理解上链的意思的其实就是完成了交易, 得到了认可并记录)
  5. 查询block信息(通过blockid)
    • 前/后的block: 所以也就是可以查询整条交易链(block chain)
    • 高度: 编号(有可能是从0开始的,毕竟这个东西这么技术. 需要查一下.)

合约

直观来理解

  1. 区块链可以维护一个键值对的数据库(或者就是个Map), 这个键值对的数据库在所有节点上都是保持一致的.
  2. 如果我们想在这里维护任何数据, 都通过合约来完成, 合约是我们访问键值对数据库的代理.
  3. 合约就是几个方法, 链以外的应用通过API可以去调用这几个方法. 最终区块链保证运行的事务,可信和效率等. 我们只要等最终结果是否成功即可.

因为合约执行环境比较苛刻, 所以能力也比较受限,每次调用获得调用者的信息以及可以操作内部的键值对.

百度的Xuper支持合约的

  • 部署: 将编译好的合约部署到网络
  • 升级: 合约的代码是可以升级的: 百度开放网络是不支持升级的.

合约编写和部署

支持编写合约的语言

  • C++: 宇宙语言, 看起来这是官方推荐的首选.
  • Go: 因为Xuper是使用Go, 好像在Go的各种SDK上支持的都比较好
  • Java: Java使用比较光, 开始支持,但是感觉各方面支持的一般
  • Solitidy: 以太坊的官方推荐专为区块链. 不知道Xuper上使用起来怎么样.

合约类型

  • wasm合约: 全新的字节码, 性能好. 区块链这样新技术,而且讲究运算效率,确实挺合适的. 都可以编译为wasm格式应该
  • native合约: 比如java的jar包. 性能不可控, 开放网络应该也是不支持的.
  • solidity合约: 等于是EVM(以太坊的VM, 其实就是每个节点)的native合约, 不过在Xuper需要指定配置一下
    file

合约账号

合约账号跟普通账号使用类似, 不过是给系统使用.

如果自己部署需要创建一个合约账号, 使用开放链就从控制台上生成了(ID的格式大概是: XC807xxxxxxx@xuper).

操作也和普通账号有一些类似

  1. 查看当前合约账号的余额
  2. ACL: 使用开放链,我们就只有自己的一个合约账号, 所以应该不需要特别关心权限.

原理

file

发表评论