基于Hyperledger Fabric实现ERC721】的更多相关文章

介绍 超级账本(Hyperledger)项目是首个面向企业应用场景的开源分布式账本平台.由linux基金会牵头,包括 IBM 等 30家初始企业成员共同成立的. 区块链网络主要有三种类型:公共区块链.联盟或联合区块链,以及私有区块链.Hyperledger Fabric定位是面向企业的分布式账本平台,引入权限管理,设计上支持可插拔.可扩展,是首个面向联盟链场景的开源项目. REC721是一个区块链数字资产标准,我的这篇文章初探区块链数字加密资产标准ERC721有介绍,本文不再赘述. 准备工作 根…
接下来我要做的是用fabric sdk来做出应用程序,代替CLI与整个区块链网络交互.并且实现一个http API,向社区提供一个简单的接口,使社区轻松的与区块链交互. 官方虽然提供了Node.JS,Java,Go(最近刚出了python)等多种语言的SDK,但是很多SDK还不成熟和完善,有的甚至文档都没有.我使用Node.js的原因有三.1.官方例子使用的是Node.js SDK 2.以前我做以太坊智能合约开发的时候也用过Node.js 3.最后是因为Node.js实现一个http服务器是非常…
三个月前上面发了一个关于智群汇聚和问题求解研究的项目,我们公司做其中的一个子项目,就是基于区块链的科技信息联盟构建.利用区块链的去中心化特性,构建一个基于区块链的科技社区,以提供科技群智汇聚采集的基础承载平台.科技工作者可以发布自己的论文.问题,以及对他人问题的交互讨论.由于采用区块链技术,包括最新科技创想在内的讨论内容所形成的知识资产可以得到确权,不可编造.不可否认.联盟的参与节点是各个社区,所有节点维护相同的数据,所有附带作者的内容都附带作者的数字签名,知识产权的确认将变得非常容易.最后,数…
上个版本的chaincode有很多功能不完备,所以要部署新版本的chaincode.Fabric支持在保留现有状态的前提对chaincode进行升级. 一.新版chaincode 新版本的chaincode增加的功能如下: 1.增加了数据追溯功能,在社区用户发起transaction时,chaincode将自动在用户证书中提取用户信息,将其存储在帖子的字段里. 2.加入了敏感词监管功能,敏感词字典和敏感词过滤功能在外部提供,chaincode通过http api(post 请求)调用服务. 3.…
现在所有的文件都已经准备完毕,我们可以启动fabric网络了. 一.启动orderer节点 在orderer服务器上运行: cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli docker-compose -f docker-compose-orderer.yaml up -d 运行完毕后我们可以使用docker ps看到运行了一个名字为orderer.example.com的容器. 二.启动peer节点 2.1安装couchdb…
前几章已经分别把三台虚拟机环境和配置文件准备好了,在启动fabric网络之前我们要准备好写好的chaincode.chaincode的开发一般是使用GO或者JAVA,而我选择的是GO语言.先分析一下官方最典型的一个chaincode--fabcar,然后着重介绍一下shim.ChaincodeSubInterface,最后在贴上我自己的chaincode. 一.chaincode主要框架结构 1.1 引入了4个程序库,用于格式化.处理字节.读取和写入JSON,以及字符串操作.2个Hyperled…
一.生成公私钥和证书 Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书.这些证书本来应该是由CA来颁发,但是目前只有两个社区,所以目前暂时没有启用CA节点,但是Fabric帮我们提供了一个crytogen工具来生成证书. 1.1编译cryptogen 编译生成 cryptogen之前我们需要安装一个软件包,否则编译时会报错 sudo apt install libtool libltdl3-dev Fabric提供了专门编译…
接下来讲一下在本地测试区块链网络的过程.我要部署的是2peer+1orderer架构,所以需要准备三台虚拟机,为了方便起见可以先把一台配置好,然后复制出剩余两台即可.搭建虚拟机我用的是virtualbox,系统统一用ubuntu16.04LTS,镜像在官方下载.网络模式用NAT就行,复制虚拟机的时候记得勾选重新初始化所有网卡的MAC地址.以下是我用到的三台主机名和IP: orderer.example.com 10.0.2.10 peer0.org1.example.com 10.0.2.11…
一.证书目录解析   通过cryptogen生成所有证书文件后,以peerOrgannizations的第一个组织树org1为例,每个目录和对应文件的功能如下:   ca: 存放组织的根证书和对应的私钥文件,默认采用EC算法,证书为自签名.组织内的实体将基于该证书作为证书根. tlsca:存放组织tls连接用的根证书和私钥文件.(TLS是传输层安全协议,其实就是SSL,现在叫TLS了) msp:存放代表该组织的身份信息.        admincerts:组织管理员的身份验证证书,被根证书签名…
fabric针对java 开发的部分支持不是很友好.基于目前较为稳定的fabric 1.4版本,我们封装了一个java sdk,apiserver,eventServer 封装java sdk的主要目的是为了简化使用者的操作,只需要正确配置了配置文件就可以快速构建 fabric client. java apiserver是为服务于业务的调用demo. java eventServer是对发出去的交易结果进行监听一个操作.配合chaincode中的event机制,监听对应peer的event.目…