fabric

Fabric1.4:手动启动 first-network 网络(二)

試著忘記壹切 提交于 2020-01-11 18:22:40
注意:本文所使用的 fabric 版本为 v1.4.3,与其它版本的网络存在差异。 手动启动 first-network 网络系列分为三部分: 手动启动 first-network 网络(一) 手动启动 first-network 网络(二) 手动启动 first-network 网络(三) 第一篇单纯使用命令行的形式执行 byfn.sh 脚本中的内容,第二篇和第三篇是对手动启动网络过程所使用的命令和配置文件的解释。 1 生成组织结构与身份证书 1.1 crypto-config.yaml 文件 fabric 网络必须指定成员参与才能正常进行交易,因此创建 fabric 网络环境中所需的组织结构及身份证书等密码信息是开发的第一步。证书信息在网络中代表实体的身份,用于实体间通信及交易时的签名与验证。 此步骤使用 cryptogen 工具为各种网络实体生成密码信息(x509 证书和签名密钥),而 cryptogen 需要将文件 crypto-config.yaml 作为参数配置,这个文件包含网络拓扑。下面是 first-network/crypto-config.yaml 文件: # "OrdererOrgs" -定义 Orderer 节点所属的组织信息 OrdererOrgs: - Name: Orderer # Orderer 组织的名称 Domain: example.com #

Fabric1.4:手动启动 first-network 网络(三)

人盡茶涼 提交于 2020-01-11 18:22:09
注意:本文所使用的 fabric 版本为 v1.4.3,与其它版本的网络存在差异。 手动启动 first-network 网络系列分为三部分: 手动启动 first-network 网络(一) 手动启动 first-network 网络(二) 手动启动 first-network 网络(三) 第一篇单纯使用命令行的形式执行 byfn.sh 脚本中的内容,第二篇和第三篇是对手动启动网络过程所使用的命令和配置文件的解释。 1 启动分布式网络 手动生成 fabric 网络所需的配置文件后,接下来需要启动区块链中提供网络服务的各个节点。fabric 采用容器技术,使用 docker-compose 这个工具来实现区块链网络所需的节点容器管理,实现方式只需要编写节点相应的配置文件即可。 1.1 docker-compose-cli.yaml 在 first-network 目录下提供了一个 dokcer-compose 工具所需的配置文件 docker-compose-cli.yaml,我们使用该文件启动网络节点,下面是该文件的内容: version: '2' # 表示用的版本 2 的 YAML 版本 volumes: orderer.example.com: peer0.org1.example.com: peer1.org1.example.com: peer0.org2.example

fabric-sdk-go client开发系列

…衆ロ難τιáo~ 提交于 2020-01-11 03:42:51
1. fabric-sdk-go-v1.0.0-alpha4包主要包含internal pkg scripts test third_party几个文件夹,编译成功以后会多出vendor(用来存放一些go插件)tmp(一些临时文件) 2.最终开发者使用的包主要包含以下几个方面 pkg/fabsdk: Fabric SDK的主要包。 此包允许基于配置创建上下文。 这些上下文由下面列出的客户端软件包使用 pkg/client/channel: 提供频道交易相关功能 pkg/client/event: 提供频道事件相关功能 pkg/client/ledger: 启用对频道底层分类帐的查询相关功能 pkg/client/resmgmt: 提供资源管理功能,例如安装链码 pkg/client/msp: 启用身份管理相关功能 基本流程: 1)使用配置实例化fabsdk实例。 注意:fabsdk维护缓存,因此您应该最小化fabsdk本身的实例。 2)使用您的fabsdk实例,基于用户和组织创建上下文。 注意:通道上下文还需要通道ID。 3)使用New func创建客户端实例,传递上下文。 注意:您为所需的每个上下文创建一个新的客户端实例。 4)使用每个客户提供的功能来创建您的解决方案! 5)调用fabsdk.Close()来释放资源和缓存。 3. fabrick-sdk-go api文档 pkg

fabric工程化

倖福魔咒の 提交于 2020-01-10 22:00:03
一个小时带你用 Hyperledger Fabric开发一个Demo ,看这篇文章写一个fabric的demo应该很快,但是将fabric工程化考虑的因素就比较多了。看一下 他的demo源码 进入到 startFabric.sh ,不禁要问,如果有6个组织,那么这个脚本岂不是要写6个,再增加组织怎么办呢?实际工程化,就不是demo那么简单了。 #install chaincode on peer0 docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode install -n account -v 1.4 -p "$CC_SRC_PATH" -l "$LANGUAGE" #init chaincode on peer0 docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src

How do you use pip, virtualenv and Fabric to handle deployment?

心不动则不痛 提交于 2020-01-10 06:13:06
问题 What are your settings, your tricks, and above all, your workflow? These tools are great but there are still no best practices attached to their usage, so I don't know what is the most efficient way to use them. Do you use pip bundles or always download? Do you set up Apache/Cherokee/MySQL by hand or do you have a script for that? Do you put everything in virtualenv and use --no-site-packages ? Do you use one virtualenv for several projects? What do you use Fabric for (which part of your

菜鸟系列Fabric源码学习 — MVCC验证

时光总嘲笑我的痴心妄想 提交于 2020-01-10 04:02:24
Fabric 1.4 源码分析 MVCC验证 读本节文档之前建议先查看[Fabric 1.4 源码分析 committer记账节点]章节。 1. MVCC简介 Multi-Version Concurrency Control 多版本并发控制,MVCC 是一种并发控制的方法,一般在 数据库 管理系统中,实现对数据库的并发访问。在数据库系统中,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,能降低其系统开销。MVCC是通过保存数据在某个时间点的快照来实现的. 不同存储引擎的MVCC. 不同存储引擎的MVCC实现是不同的,典型的有乐观并发控制和悲观并发控制. 2. MVCC样例介绍 InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的,这两个列,分别保存了这个行的创建时间,一个保存的是行的删除时间。这里存储的并不是实际的时间值,而是系统版本号(可以理解为事务的ID),每开始一个新的事务,系统版本号就会自动递增,事务开始时刻的系统版本号会作为事务的ID。其中MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作。 SELECT InnoDB会根据以下两个条件检查每行纪录: InnoDB只查找版本早于当前事务版本的数据行,即,==行的系统版本号小于或等于事务的系统版本号==

HyperLedger Fabric成员管理

ε祈祈猫儿з 提交于 2020-01-10 03:54:31
1 成员管理 Hyperledger Fabric架构详解 ,这篇文章有很多图,直觉告诉我,应为fabric区别与公有链在于交易的隐私性,那么成员安全管理,也就成了核心问题了,只要搞清楚了fabric各个参与方在每个环节中的角色,就知道怎么玩转fabric了。 1.1 证书生成 蜗牛讲-fabric原理之证书生成 ,虽然告诉我们怎么生成证书,但是思考org到底在业务上是什么才是重点。 执行 cryptogen showtemplate ,将模板中的内容,写入到 crypto-config.yaml 中,接着再执行 cryptogen generate --config=./crypto-config.yaml ,展开的内容解释,可以参考 Hyperledger Fabric:cryptogen ,从什么的文件,不禁要思考什么是Orderer组织和peer组织呢?模板是solo模式,那么集群环境是什么样的呢? 1.2 Orderer组织 orderer集群多机部署 ,可以参考,虽然这篇文章与fabric的模板有较大差异。 1.3交易通道 从 HyperLedg 来源: CSDN 作者: warrah 链接: https://blog.csdn.net/warrah/article/details/103890670

fabric 初步实践

回眸只為那壹抹淺笑 提交于 2020-01-07 04:46:14
在集群部署时,我们经常用到堡垒机作为跳板,堡垒机和集群的其他的用户名、密码、端口号都是不同的,fabric如何进行配置不同的用户、端口号和密码。 fabric作为一种强大的运维工具,可以让部署运维轻松很多,最简单的fabric使用,首先设置 env.user, env.port, env.hosts, env.password ,如: 12345678910 #coding:utf8from fabric.api import *#用户名env.user = "shikanon"#中转ip,堡垒机env.gateway = "10.17.35.92"env.port = 12303env.hosts = ["192.168.6.%d"%i for i in range(2,11)]#密码env.password = "shikanon_123456" 这样就配置好了集群,但通常情况下为了安全堡垒机和各机器的用户名、端口号、密码都是不同的,那么需要有针对性设置,在fabric中用env.hosts和env.password组合就可以了,不过需要注意的是原来的ip形式需要全部改为user@host:port这种形式,代码如下 1234567891011121314151617181920212223242526272829303132333435大专栏 fabric 初步实践"

我是如何从Java转型为Go区块链工程师

徘徊边缘 提交于 2020-01-07 00:53:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我是如何从Java转型为Go区块链工程师 本文来自于一个比原链核心开发的陈述 前言 本人在加入比原链之前一直是做Java开发的,当初看到Go还有点犹豫,还怕过不了面试,结果是否掌握一门语言的考量确实没那么高,我顺利入职比原链,并在半个月内很快掌握Go并能够进行核心项目的开发。 Java语言在较大的成熟项目上具有优势,但是在区块链开发中确实会有很多短处,比如在协程处理上,还有Java语言本身不够灵活等等,当然选择使用Go主要是因为其在区块链的流行程度。 区块链的流行语言 在区块链公链的开发圈子里,我们找到了一些流行的编程语言,有C++、Golang、Python和最近新起的Rust等等。 稍微对比较有名的项目采用的编程语言做个统计,如下图: 老一代的公链,比如Bitcoin,Litcoin一般使用C/C++较多(我们看看那个时间,当时Go还没起来呢),新一代的公链比如以太坊,联盟链翘楚超级账本,开始较多使用Go语言,当然我们看到Rust的发展势头也很猛,近两年的很多公链比如波卡,Grin都开始采用Rust语言开发了。 Go语言的优势 部署简单 Go 编译生成的是一个静态可执行文件,除了 glibc 外没有其他外部依赖。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具

Hypterledger Fabric 1.4环境搭建

喜你入骨 提交于 2020-01-07 00:06:39
Github fabric官方Github地址为: https://github.com/hyperledger/fabric 环境搭建流程 1. 环境依赖 依赖的软件版本根据安装的Fabric的版本差异而略有不同,具体请查看fabric的docs/source目录下的prereqs.rst。 1.1 注 本次配置使用的为阿里云主机,系统:CentOS Linux release 7.5.1804 (Core) 1.2 Git安装 yum install git 1.3 curl安装 yum install curl 1.4 docker安装 curl -fsSL https://get.docker.com/ | sh 注:docker版本不要太old 1.5 docker-compose安装 # 安装 curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # 增加可执行权限 chmod +x docker-compose # 查看是否安装成功 docker-compose --version 1.6 go环境配置 # 下载安装包 wget https:/