fabric2.0
文章平均质量分 93
zekdot
一个实用主义者。
展开
-
Fabric 2.0,go链码单元测试
之前一直是完成链码的逻辑,然后打包部署在fabric网络之后,才知道链码写的正不正确,但是这样返工一方面浪费时间,另一方面,在开发时心底也是虚的。比较理想的开发方法是首先为接口写好自动化测试,运行,出错,然后再去开发代码,来通过测试用例之后才算完成开发,这也是一种测试驱动开发的思想,好处就是之后即使修改代码也可以很方便的完成回归测试,再配合git,就可以更大胆的进行开发了。在fabric环境下进行测试的话一个难点在于上下文环境的模拟,但是关于这点,事实上官方给出了一个测试编写的样例,如果是最2.3.0的原创 2021-10-17 16:50:27 · 16568 阅读 · 5 评论 -
Fabric 2.0,编写应用(Java版)
本文参考了fabric官网的nodejs版本:https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html使用应用时,网络中必须要有CA,因为我们需要用CA来注册管理员和app用户,然后再以他们的身份去调用智能合约,如以test-network为例,启动时必须使用如下命令:./network.sh up createChannel -c mychannel -ca链码这里仍然使用上篇博客所编写的atcc,在编写应用之原创 2021-09-22 21:18:42 · 2285 阅读 · 0 评论 -
Fabric 2.0,编写及使用链码
代码及说明参考网址:https://hyperledger-fabric.readthedocs.io/en/latest/chaincode4ade.html每个链码调用函数都会传递进去一个交易上下文对象"ctx",该对象通过GetStub()获取stub对象可以进一步去访问账本。下列的案例实现一个资产管理链码,包含对资产账本的创建、初始化、读、更新、删除,检查一个资产是否存在,把资产从一个拥有者转给另一个拥有者。1.创建代码首先进入我们的工作根目录,这个根目录最好不要有其他文件,因为稍候我们会在原创 2021-09-21 01:03:17 · 3208 阅读 · 7 评论 -
Fabric 2.0,不使用脚本的情况下启动test-network
之前使用过脚本的方式启动了fabric的测试网络,但是这个脚本封装的实在太好了,一行命令之后啥都看不出来,对于我这样的初学者来说感觉帮助不是特别大,所以我决定把这个脚本串行化的分析一遍,来真正看出整个网络的启动过程。本文假设当前所在目录为test-network,使用fabric版本为2.3.0,并且和network.sh脚本默认情况下一样不使用预先定义的CA证书。1.创建加密证书材料创建org1、org2和org3所需的ca证书,这里会用到organizations/cryptogen下的yaml文原创 2021-08-28 22:21:34 · 9130 阅读 · 12 评论 -
fabric2.0 概念,链码和私有数据
1.智能合约和链码管理员将相关智能合约组织起来用于部署–链码。智能合约中存储各方交易的业务模型,定义了术语、处理流程等。利用区块链可以将智能合约转换为可执行程序。应用通过调用智能合约来产生交易与在账本进行记录。使用智能合约可以实现自动化,比如定时交易等,而且也会比人工的手动操作效率更高。如上图中ORG1和ORG2定义了一个可以查询、转移、更新汽车的智能合约,这些组织的应用可以通过调用这个智能合约来实现将一辆汽车从一个组织转移到另一个组织上。链码包含多个智能合约,之后再部署到区块链上。当一个链码部署翻译 2021-08-23 21:13:43 · 1463 阅读 · 1 评论 -
fabric2.0 概念, peer、账本和排序服务
1.PeersPeers是网络的基本元素,持有账本和智能合约(链码),代表信息及其对应的处理方式。如图所示,P1、P2、P3每个Peer都保存一份账本的副本和智能合约的副本,这样提供了一种冗余机制,避免了单点失效,事实上,每个Peer可以持有多个账本和链码。而应用和管理员等想要访问某些资源,必须通过peer来实现,所以其是非常基本且重要的。一个链码可以有1个或者1个以上的账本,每个账本可以有对应的0个或0个以上个链码,图中账本L1对应链码S1,L2对应S1与S2,虽然一个账本没有对应的链码是完全可翻译 2021-08-07 00:15:44 · 2155 阅读 · 0 评论 -
fabric2.0 概念, 身份、MSP和策略
1.身份(Identity)区块链网络中的不同参与者,包括peers、orderers、管理员等,都有一个封装在X.509电子证书中的身份。这个身份非常重要,因为他决定了区块链网络中的参与者对资源和信息的访问权限。电子身份还会衍生出其主体(principal),类似id,但是更加灵活,因为它可以包含参与者身份的其他属性,如组织、角色、甚至参与者特有的身份,当讨论主体的时候,实际上是在讨论他所拥有的权限。为了让身份可验证,它必须来源于一个可行的权威机构。一个MSP(membership service翻译 2021-07-24 00:00:19 · 1500 阅读 · 0 评论 -
Fabric2.0 demo,使用test-network
测试系统 Ubuntu 16.04 64位本文参考了fabric官方文档,基本上是按照原文来的,并且排了一些安装上的坑,如果文章中有什么理解的问题欢迎指正,原文链接如下。Using the Fabric test network1.安装相关软件1.1.docker安装直接参考下面这篇文档安装好docker-ce即可Ubuntu 16.04安装docker详细步骤按照下面这篇文章的3.2节安装好docker-compose即可ubuntu16.04 安装docker-ce,docker-com翻译 2020-06-27 01:31:37 · 5668 阅读 · 15 评论 -
fabric2.0 demo,部署智能合约
环境配置等问题可以参考上一篇博客Fabric2.0,使用test-network以test-network的fabcar的chaincode为例,他需要如下的步骤才能部署到channel中第一步:打包智能合约第二步:安装chaincode包第三步:许可chaincode定义第四步:提交chaincode定义到channel中在进行如下步骤之前,首先需要关闭网络,然后再重启网络,同时创建channel,即如下两条命令。./network.sh down./network.sh up cr翻译 2020-06-27 14:57:53 · 2713 阅读 · 3 评论 -
fabric2.0 概念,fabric网络的形成
读研后被分去了做区块链方向,前段时间一直非常无聊,大概是因为我之前基本上不怎么熟悉区块链,也从来没编写过相关的程序,而区块链里面概念又十分繁多,因此一直在摸鱼去搞docker swarm相关的技术,最近觉得如果再这么混下去,可能研究生毕不了业了,所以决定重新钻研一下区块链相关的技术,在实验室内以联盟链为主要研究目标,最典型的就是fabric了,因此先从概念入手,理清楚重要的概念,然后再看看能不能搞个实战项目,做下来应该会对fabric有更深的了解了。本文基本上是翻译fabric官方文档,当然不是照着全抄,翻译 2021-07-22 01:25:09 · 1192 阅读 · 0 评论