fabric

Tungsten Fabric与K8s集成指南丨创建虚拟网络

你说的曾经没有我的故事 提交于 2020-02-27 23:28:01
作者:吴明秘 Hi!欢迎来到Tungsten Fabric与Kubernetes集成指南系列,本文介绍通常创建虚拟网络的五个步骤。 Tungsten Fabric与K8s集成指南系列文章,由TF中文社区为您呈现,旨在帮助大家了解Tungsten Fabric与K8s集成的基础知识。大家在相关部署中有什么经验,或者遇到的问题,欢迎与我们联系。 在做好架构部署,并确认Tungsten Fabric和Kubernetes(K8s)集群的初始状态没有问题后,就可以开始尝试创建虚拟网络了。 第1步:新建命名空间 在K8s中,大部分的资源都隶属于一个命名空间,所以需要首先新建命名空间,然后再创建对应的pod,service,以及虚拟网络。在此新建两个命名空间,分别为 test-ns1 和 test-ns2,登录K8s的master节点执行以下命令: 创建成功后,在Tungsten Fabric管理界面可以看到对应的project被创建出来,k8s-test-ns1与k8s-test-ns2。 第2步:新建IPAM 你需要为你的项目创建一个IP地址管理(IPAM),基于此来创建一个虚拟网络。 在Tungsten Fabric管理界面选择“Configure > Networking > IP Address Management”,并选择project - k8s-test-ns1,然后单击

Fabric区块链Windows开发环境一键部署

房东的猫 提交于 2020-02-27 12:12:07
Byfn.win 是Hyperledger Fabric著名的byfn.sh脚本的Windows版本的移植,用于帮助开发人员在Windows环境中快速搭建Hyperledger Fabric链码及应用开发环境。官方下载地址: http://sc.hubwiz.com/codebag/byfn-win/ 。 1、开发包概述 Byfn.win的主要特点如下: 使用原生构建的windows版本的Fabric程序,不需要安装虚拟机/Linux子系统/Docker 一键复位BYFN网络,一键启动BYFN网络,为开发人员节省大量时间和精力 支持TLS安全传输设置,支持solo共识和etcdraft共识 支持Hyperledger Fabric官方及第三方提供的各种语言的链码与应用开发包 解压即用,绿色软件 Byfn.win采用Golang开发,目前版本是1.0.0,主要文件清单见官网说明: http://sc.hubwiz.com/codebag/byfn-win/ 2、Byfn.win使用说明 2.1 生成BYFN网络基础资料 使用 byfn.exe 的 reset 子命令来生成或复位BYFN网络运行所依赖的基础资料: 注意: 每次执行 reset 命令都会清空已有的区块链数据和密码学资料 节点的输出日志在first-network/logs目录下 2.2 启动BYFN网络 使用 byfn

Minecraft Fabric 进阶教程 #2 绘制界面

末鹿安然 提交于 2020-02-27 08:39:38
首发于 Enaium的个人博客 绘制界面不需用注入Mixin 新建一个类 ExampleGui.java 继承 Screen 构造器 public ExampleGui() { super(new LiteralText("")); } 绘制 这是绘制一个背景 绘制背景这种全部覆盖时要在super上面不然按钮或者其他东西会被背景盖住 @Override public void render(int mouseX, int mouseY, float delta) { renderBackground(); super.render(mouseX, mouseY, delta); } 我们也可以添加一个按钮 @Override public void init() { super.init(); this.addButton(new ButtonWidget(20,20,100,20,"Done",(action)->{ })); } 打开界面 将上集绘制的按钮的action改为打开这个界面 @Inject(at = @At("HEAD"), method = "init()V") private void init(CallbackInfo info) { this.addButton(new ButtonWidget(20,20,200,20,"233",(action)->{

超级账本Fabric如何使用第三方CA

一世执手 提交于 2020-02-27 00:35:05
Hyperledger Fabric(HF)为终端用户使用自有CA提供了fabric-ca工具。然而在生产环境中应当尽可能保证根CA的安全性,例如让根CA离线,而将Hyperledger Fabric环境中的证书签发代理给中间 CA。在本文中,我们将介绍如何使用第三方CA作为根CA,使用fabric-ca作为中间CA,以及如何在CA信任链中整合第三方CA与fabric-ca。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、准备工作 为了演示外部CA和中间CA的使用,我们将部署一个根CA,它只负责签发中间CA的证书。这个中间CA采用Fabric CA,负责签发用户和节点证书。出于简化考虑,在这个教程中,我们将使OpenSSL。 在开始之前,请参考相应文档先完成以下前置环节的部署和知识准备: 安装docker、docker-compose、git和curl Hyperledger Fabric和bash/sheel脚本基础知识 PKI基础知识 克隆本教程演示代码仓库,其中包含了所有用到的脚本: git clone https://github.com/aldredb/external-ca cd external-ca 下载Hyperledger Fabric预编译程序并删除不需要的文件。我们只用到cryptogen,

超级账本Fabric链上数据的加密保护

牧云@^-^@ 提交于 2020-02-26 23:50:44
Hyperledger Fabric是最流行的区块链开发框架之一,它有独特的定位和一些鲜明的特点,例如许可制架构、可插拔组件、支持私密交易的通道、模块化以及可扩展性,因此适合企业联盟链应用的开发。在这篇文章中,我们将介绍如何使用链码加密/解密保存在Hyperledger Fabric区块链上的敏感数据。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、Hyperledger Fabric链码加密/解密的应用背景 在企业环境中,有时我们需要处理一些敏感的数据,例如保存信用卡数据、银行信息、生物识别数据、健康信息等等,这些敏感数据是我们基于分布式账本的业务应用的一部分,最终用户通常希望即使在数据被渗透的情况下也能保证这些私密信息的安全性。 在一些传统的应用中,我们会将数据库中的数据加密,这样即使有人偷偷进入数据库,也无法理解数据的真实含义。同样,加密区块链数据库中的用户数据也是保护隐私的有效手段。现在让我们看看如何使用NodeJS链码来加密要写入区块链数据库的数据。 在我们开始后续的实现之前,需要先指出一点:由于引入了额外的加密和解密环节,这会导致生产环境中的应用处理速度变慢,要进行加密/解密处理的数据量越大,对应用性能的影响就越大。 2、Hyperledger Fabric链码加密/解密的处理流程 在我们开始加密处理之前

HyperLedger链码开发实例 —Commercial Paper

六眼飞鱼酱① 提交于 2020-02-26 23:24:24
链码开发---商业债券Commercial Paper 启动测试网络 cd fabric-samples/commercial-paper ./network-starter.sh docker -ps 将用于查看本地计算机上运行的Fabric节点 docker newtwork inspect net_test 用来查看网络 扮演磁力公司的角色 cd fabric-samples/commercial-paper/organization/magnetocorp 使用磁力公司下属的 monitoedocker.sh net_test <port_number> 来启动 logspout , 并使用它监视与 net_baisc 网络关联的docker容器. 检查智能合约 const { Contract , Context } = require ( 'fabric-contract-api' ) class CommercialPaperContract extends Contract { } async issue ( ctx , issuer , paperNumber , issueDateTime , maturityDateTime ) let paper = CommercialPaper . . createInstance ( issuer ,

Fabric 2.0区块链安装指南

匆匆过客 提交于 2020-02-26 18:08:34
本文介绍如何安装最新的Hyperledger Fabric 2.0的预编译程序、fabric-samples示例配置和代码以及docker镜像。 Hyperledger Fabric区块链开发教程: Fabric区块链Node.js开发详解 Fabric区块链Java开发详解 Fabric区块链Golang开发详解 1、安装预编译的Hyperledger Fabric 2.0应用程序 Hyperledger Fabric官方提供了以下2.0版本的预编译程序: configtxgen:用于生成Fabric创世区块初始或更新配置文件 configtxlator:用于编解码Fabric区块链配置文件 cryptogen:用于快速生成节点、用户、客户端等所需的证书和密钥文件 discover:用于Fabric网络的服务发现 idemixgen:很少用到 orderer:Fabric排序节点程序 peer:Fabric对等节点程序 fabric-ca-client:Fabric-CA服务程序的客户端,用于注册和添加用户 首先创建一个Hyperledger Fabric 2.0的专用目录,然后进入 该目录: ~$ mkdir hubwiz-hf2 ~$ cd hubwiz-hf2 ~/hubwiz-hf2$ 在linux或mac环境下使用如下的命令下载Hyperledger Fabric 2

Fabric链码开发的8个原则

被刻印的时光 ゝ 提交于 2020-02-26 17:16:03
我相信智能合约(链码)是Hyperledger Fabric区块链网络的核心。正确开发链码可以真正发挥一个安全区块链的优势,反之则会带来灾难性的后果。在这篇文章里我不打算探讨Hyperledger Fabric链码设计的特定模式的好与坏,而是希望分享我在开发若干Hyperledger Fabric概念验证应用过程中总结的一些基本准则。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、启用peer节点的开发模式 使用开发模式开启你的Hyperledger Fabric链码开发流程。这一点无论怎么强调都不过分,这会节省你大量的时间和精力,因为你可以自由地修改代码而无需重新部署并激活链码,也无需一遍遍地重启网络。 参考文档: https://gist.github.com/arnabkaycee/d4c10a7f5c01f349632b42b67cee46db 2、使用Fabric链码的日志 这可能是能帮助你调试Hyperledger Fabric链码并快速找出链码bug的第一个有用的技能。链码日志很简单易用,使用Fabric内建的logger即可。 参考文档: Golang: shim ChaincodeLogger NodeJS: shim newLogger Java:可以使用任何标准的日志框架,例如log4j 3

Fabric 2.0链码操作分步解析

霸气de小男生 提交于 2020-02-26 12:58:39
Hyperledger Fabric 2.0最近已经发布,其中最引人关注的一点是链码操作。官方文档虽然对此提供了详细的说明,但本文将通过与Hyperledger Fabric前一个版本中链码操作的对比,来帮助你更好的理解新版本中链码操作的不同之处以及幕后的一些技术细节。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、链码操作:Fabric 1.4 vs Fabric 2.0 我们将首先快速介绍在HF 1.4和HF 2.0中的整个链码操作过程。 链码操作指的是在Hyperledger fabric网络通道上部署链码的操作,这样区块链之外的应用可以调用或查询链码方法。在链码开发完成并测试后,首先需要将Fabric链码安装到指定的peer节点。在这个阶段链码还不能使用,直到链码被提交(Fabric 2.0中的术语)到通道中或在通道上实例化(Fabric 1.4中的术语),这样链码就可以被授权用户访问了。 下面是两个版本的Hyperledger Fabric中链码操作流程的对比图: 在Hyperledger Fabric 1.4中,链码操作过程包含以下步骤:打包、安装、实例化。如果链码属于多个参与方,那么就需要打包这一环节。如果不存在多方属主的问题,那么直接安装链码就可以(其中隐含了打包环节)

Java开发区块链的三大sdk库

你说的曾经没有我的故事 提交于 2020-02-26 10:37:33
如果你想将区块链合并到一个Java项目中,现在我们来看看就是这个细分领域中三个最大的OSS玩家。 好的伙计们,我们都听说过比特币,以太坊或其他加密货币,其中有一些时髦的名字围绕着我们常见的新闻,但我们作为Java开发人员知道如何轻松地与这些区块链技术进行交互吗?以下是可用于利用区块链趋势的前三大Java项目。该列表基于GitHub存储库星级排序。非常感谢评论和意见。 BitcoinJ 这个名字很具描述性,你不觉得吗?如果你想知道如何创建比特币钱包并管理节点之间的交易,那么你应该尝试使用 BitcoinJ 。该项目拥有不断增长的社区和非常好的文档,这使得每个开发人员都非常有利可图。当然,作为大多数试图获得普及的开源项目,它在开始时都有局限性。有几个已知的安全问题与开放错误和可伸缩性问题相一致。如果你想了解比特币协议的运作方式,它仍然非常有用。单个人意见目前还不适合生产应用。 Web3j 一个词——以太坊。这是基于这种尖端技术的第二个最受关注的加密货币。 Web3j项目 允许你使用以太坊区块链,而无需为平台编写自己的集成代码。同样,核心功能是创建钱包,管理交易,这次是智能合约sdk包。是的,打包好的。以太坊项目的一部分是一种称为Solidity的特殊语言,它是创建智能合约的事实标准。如果你想避免使用智能合约的底层实现细节,则使用Web3j的智能合约开发包