自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Hyperledger Fabric SDK for Node.js fabric-ca-client API

* **fabric-ca-client**:  * register a new user -> register  * enroll a user to obtain the enrollment certificate signed by the Fabric CA -> enroll  * revoke an existing user by enrollment ID ...

2018-07-19 14:21:48 1170

原创 Hyperledger Fabric SDK for Node.js fabric-client API

* **fabric-client**:  * create a new channel -> createChannel  * send channel information to a peer to join -> joinChannel  * install chaincode on a peer -> installChaincode  * instantia...

2018-07-19 14:08:17 1462

原创 UTXO

UTXO 是 Unspent Transaction Output 的缩写,Transaction act发音简写为X。也就是未被使用的交易输出。UTXO是中本聪最早在比特币中采用的一个具体的技术方案。本质上,就是只记录交易本身,而不记录交易的结果。业内流行一句话:”其实并没有什么比特币,有的只是UTXO“---孟岩;一般会认为 UTXO 是比特币区块链设计当中的一部分,但事实上 UTXO 和区块...

2018-07-13 10:39:58 4122

原创 Fabric chaincode shim.ChaincodeStubInterface

1. 增改数据    PutState(key string, value []byte) errorfunc (t *SimpleChaincode) push(stub shim.ChaincodeStubInterface, args []string) pb.Response {    // must be an invoke    var A string    // Entities ...

2018-07-10 11:10:10 1677

原创 Fabric 安全

1. orderer节点    交易需要并且只需一个orderer节点;    其他节点的状态不影响交易;    orderer节点宕机后,重启即可,数据没有丢失。    orderer节点的docker容器被删除后,重启即可,数据没有丢失。2.peer节点    peer节点宕机后,重启即可,交易数据没有丢失。    peer节点宕的docker容器被删除后,在最初创建channel和安装cha...

2018-06-26 17:04:28 894

原创 linux下ab压力测试工具

安装:yum -y install httpd-tools查看ab版本ab -V命令的参数:格式: ./ab [options] [http://]hostname[:port]/path参数://总请求个数。默认时,仅执行一个请求-n requests Number of requests to perform//并发数。默认是一次一个。-c concurrency Number of mu...

2018-06-20 16:48:23 4149 1

原创 unbuntu下载编译chromium

第一步:配置安装depot_toolssudo apt install gitgit clone https://chromium.googlesource.com/chromium/tools/depot_tools.gitexport PATH=depot_tools path:$PATH:第二步:下载源码方法1:时间长fetch chromium方法2:只下载最新的代码,没有历史记录fetc...

2018-06-14 14:46:12 1102

原创 ubuntu 安装selenium+Chromedriver

安装selenium: sudo apt-get install pythonsudo apt-get install python-pip pip install –U selenium 安装Chromedriver:https://sites.google.com/a/chromium.org/chromedriver/downloadssudo apt-get install unzipwg...

2018-06-14 14:21:18 949

原创 ubuntu安装Chrome

方法一:1.      wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb2.      sudo dpkg -i google-chrome-stable_current_amd64.deb3.      sudo apt-get -f install 方法二:1.      wget ht...

2018-06-14 14:17:50 154

转载 c扩展调用php的函数

调用实现php函数的c函数今天来说下c扩展调用实现php函数的c函数,比方说,c扩展要用到php中ip2long这个函数,但是c不可能去php中调用,肯定是去调用实现php函数的c函数。那么c扩展如何调用c内核对php的API呢?这里要用到一个函数:ZEND_APIint call_user_function_ex(HashTable *function_table, zval **object_...

2018-06-14 14:08:20 862

原创 Fabric部署

Fabric相关组件以及工具介绍:- orderer 共识节点。为交易排序,并生成区块 ;- peer共识节点。为交易背书,并记录区块信息 ;- cryptogen用于生成区块链网络中相应用户的相关证书文件 ;- configtxgen 用于生成区块链系统链码的创世区块、新建通道的配置文件、以及组织中锚节点的配置文件;-couchdb  peer节点状态数据库用的是couchdb,每个peer节点...

2018-06-12 09:54:26 1856

原创 Fabric部署-cryptogen配置文件

  #Orderer组织的定义OrdererOrgs:#组织名称- Name: Orderer#组织域名Domain: example.com#组织CA的地址CA:Country: USProvince: CaliforniaLocality: San Francisco#手动定义节点名称,命名规范是:{{.Hostname}}.{{.Domain}}#Hostname可以定义多个 #如果没有定义...

2018-06-12 09:54:18 900

原创 Fabric部署-configtxgen配置文件

Profiles:#orderer系统通道模版TwoOrgsOrdererGenesis2:Capabilities:<<: *ChannelCapabilities#指定orderer系统通道自身的配置信息Orderer:<<: *Ordererlychee#参与到此orderer的组织信息Organizations:#组织名- *OrdererOrgCapabiliti...

2018-06-12 09:54:09 2061

原创 Fabric Docker启动

Fabric使用的docker容器来进行数据存储和服务运行。创建docker一般都是用配置文件进行,使用docker-compose工具进行管理。启动顺序 a. zookeeper是一个集群插件,所以可以单独先启动;    命令:$docker-compose -f docker-compose-zk.yaml up -db. kafka 启动依赖于zk集群;    命令:$docker-comp...

2018-06-12 09:53:57 2055

转载 Fabric 安装

1.环境构建1.2.系统Centos7.0以上1.2.更换Linux的yum源a.备份原来yum源 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bakb.设置阿里yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirror...

2018-06-11 09:09:30 4875

原创 docker compose文件

docker-compose的命令包括:    build :构建服务    kill -s SIGINT :给服务发送特定的信号。    logs :输出日志    port :输出绑定的端口    ps :输出运行的容器    pull :pull服务的image    rm :删除停止的容器    run : 运行某个服务,例如docker-compose run web python ma...

2018-06-11 09:09:21 2295

原创 Fabric docker compose文件-kafka

docker-compose-kafka.yamlversion: '2'services:#oXo    koXo:        image: hyperledger/fabric-kafka        restart: always        container_name: koXo        hostname: koXo        environment:         ...

2018-06-11 09:09:14 673

原创 Fabric docker compose文件-ca

docker-compose-ca.yamlversion: '2'services:#oYo    ca0.orgoYo.example.com:        container_name: ca0.orgoYo.example.com        image: hyperledger/fabric-ca        environment:             - FABRIC_CA...

2018-06-11 09:09:07 1274

原创 Fabric docker compose文件-zookeeper

docker-compose-zk.yamlversion: '2'services:#oXo    zoXo:        image: hyperledger/fabric-zookeeper        restart: always        container_name: zoXo        hostname: zoXo        environment:        ...

2018-06-11 09:09:00 681

原创 Fabric docker compose文件-orderer

前提cryptogen生成的文件放置在./crypto-config内。configtxgen生成的文件放置在./channel-artifacts内。 compose配置文件:docker-compose-ordererY.yaml|-base/orderer-base.yamlorderer-baseversion: '2'services:orderer-base:#orderer的镜像im...

2018-06-11 09:08:54 1191

原创 Fabric docker compose文件-peer

前提cryptogen生成的文件放置在./crypto-config内。configtxgen生成的文件放置在./channel-artifacts内。 compose配置文件:docker-compose-peerX-orgY.yaml|-base/peer-base.yamlpeer-baseversion: '2'services:peer-base:#peer的镜像image: hyper...

2018-06-11 09:08:46 1299

原创 Fabric cli中创建channel和调用chaincode

设置一个peer X的环境变量:#Y:peer X所属的组织CORE_PEER_LOCALMSPID="OrgYMSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgY.example.com/peers/peer0.orgY.e...

2018-06-11 09:08:35 5576

转载 Fabric chaincode

 ChaincodeStubInterface:https://godoc.org/github.com/hyperledger/fabric/core/chaincode/shim#ChaincodeStubInterfaceChaincode是一段由Go语言编写(支持其他编程语言,如Java),并能实现预定义接口的程序。Chaincode运行在一个受保护的Docker容器当中,与背书节点的运行...

2018-06-11 09:08:25 1290

原创 Hyperledger Fabric SDK 用例balance-transfer

前提Fabric安装1.安装NodeJScurl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -yum install -y nodejs sudo ln -s /bin/node /usr/local/sbin/sudo ln -s /bin/npm /usr/local/sbin/ #验证node -...

2018-06-11 09:08:13 1365

转载 Hyperledger Fabric

作为Hyperledger的一个主要项目,知名度也最高,这个项目于2015年12月开源最初由IBM 和 DAH(Digital Asset Holdings,由高盛、IBM、荷兰银行、埃森哲、 澳洲证券交易所、法国巴黎银行、Broadridge的金融解决方案、花旗银行、 CME Ventures、德意志交易所集团、 ICAP、桑坦德风投、证券托管清算公司(DTCC)、PNC金融服务集团投资) 贡献...

2018-06-08 15:18:58 886

转载 Hyperledger - 超级账本项目

2015 年 12 月,开源世界的旗舰——Linux 基金 会牵头,联合 30 家初始企业成员(包括 IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、 Cisco 等),共同 宣告 了 Hyperledger 项目的成立。该项目试图打造一个透明、公开、去中 心化的分布式账本项目,作为区块链技术的开源规范和标准,让更多...

2018-06-08 15:10:01 960

转载 零知识证明(zero knowledge validation)

零知识证明(zero knowledge validation)证明者在不向验证者提供任何有用的信息的前提下,使验证者相信某个论断是正确的。例如,A 向 B 证明自己有一个物品,但 B 无法拿到这个物品,无法用 A 的证明去向别人证明 自己也拥有这个物品。证明举例1、A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:①A把钥匙出示给B,B用这把...

2018-06-08 15:06:58 2676 1

转载 数字证书

数字证书用来证明某个公钥是谁的,并且内容是正确的。对于非对称加密算法和数字签名来说,很重要的一点就是公钥的分发。一旦公钥被人替换 (典型的如中间人攻击),则整个安全体系将被破坏掉。怎么确保一个公钥确实是某个人的原始公钥? 这就需要数字证书机制。顾名思义,数字证书就是像一个证书一样,证明信息和合法性。由证书认证机构 (Certification Authority,CA)来签发,权威的 CA 包括 ...

2018-06-08 15:00:21 240

转载 数字签名

数字签名(又称公钥数字签名,英语:Digital Signature)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,但法条中的电子签章与数字签名,代表之意义并不相同,电子签章用以辨识及确认电子文件签署人身份、资格及电子文件真伪者。而数字签名则是以数学算法或其他方式运算对其加密,才形成电...

2018-06-08 14:59:22 195

转载 同态加密

同态加密(Homomorphic Encryption)是一种特殊的加密方法,允许对密文进行处理得到仍 然是加密的结果,即对密文直接进行处理,跟对明文进行处理再加密,得到的结果相同。从 代数的角度讲,即同态性。 如果定义一个运算符 ,对加密算法 E 和 解密算法 D ,满足: 则意味着对于该运算满足同态性。同态性在代数上包括:加法同态、乘法同态、减法同态和除法同态。同时满足加法同态和乘 法同态,则...

2018-06-08 14:58:00 3256

转载 加解密算法

算法类型特点优势缺陷代表算法非对称加密加解密密钥不相关无需提前共享密钥计算效率低,仍存在中间人攻击可能RSA、ElGamal、椭 圆曲线系列算法对称加密加解密密钥相同或可推算计算效率高,加密强度高 需提前共享密钥;易泄露 DES、3DES、 AES、IDEA 对称加密(Symmetric Cryptography),又称私钥加密对称加密是最快速、最简单的一种加密方式,加密(encryption)与...

2018-06-08 14:56:36 288

转载 Merkle 树

默克尔树(又叫哈希树)是一种二叉树,由一个根节点、一组中间节点和一组叶节点组成。最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的两个孩子节点内容的哈希 值,根节点也是由它的两个子节点内容的哈希值组成。进一步的,默克尔树可以推广到多叉树的情形。默克尔树的特点是,底层数据的任何变动,都会传递到其父亲节点,一直到树根。默克尔树的典型应用场景包括:    快速比较大量数据:当两个默克尔树根相同时,...

2018-06-08 14:52:16 1135

转载 Hash 算法

散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中...

2018-06-08 14:50:01 231

转载 PBFT(拜占庭容错)

PBFT(拜占庭容错)基于拜占庭将军问题,一致性的确保主要分为这三个阶段:预准备(pre-prepare)、准备(prepare)和确认(commit)。流程如下图所示:其中C为发送请求端,0123为服务端,3为宕机的服务端,具体步骤如下:1. Request:请求端C发送请求到任意一节点,这里是02. Pre-Prepare:服务端0收到C的请求后进行广播,扩散至1233. Prepare:12...

2018-06-08 14:45:46 1658

转载 PAXOS

Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。问题和假设分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程可能会慢、被杀死或者重启,消息可能会延迟、丢失...

2018-06-08 14:45:12 3080

转载 RAFT

RAFT核心思想很容易理解,如果数个数据库,初始状态一致,只要之后的进行的操作一致,就能保证之后的数据一致。由此RAFT使用的是Log进行同步,并且将服务器分为三中角色:Leader,Follower,Candidate,相互可以互相转换。RAFT从大的角度看,分为两个过程:1. 选举Leader2. Leader生成Log,并与Follower进行Headbeats同步选举LeaderFollo...

2018-06-08 14:43:08 2221

转载 权益证明

在2011年,在一个比特币论坛中一位名为QuantumMechanic的用户提出一项技术,他称之为"权益证明(proof-of-stake)"。基础概念是,让每个人互相竞争挖矿是很浪费的。因此相反的是,权益证明通过选举的形式,其中任意节点被随机选择来验证下一个区块。在这里有一些小的术语区别,权益证明中没有矿工,但是有验证者(validator)。并不让人们”挖(mine)”新区块 而是"铸造(mi...

2018-06-08 14:41:47 3552

转载 工作量证明

工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。此一概念最早由Cynthia Dwork和Moni Naor于1993年的学术论文提出[1],而工作量证明一词则是在1999年由Markus Jako...

2018-06-08 14:39:07 3173

转载 共识机制

区块链中最重要的便是共识算法,比特币使用的是POW(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算力变的不怎么重要了。而今POS的变体DPOS(Delegated Proof of Stake,股份授权证明)进一步削减算力的浪费,同时也加强了区块链的安全性。不过,对于不需要货币体系的许可链或者私有链而言,绝对信任的节点,以及高效的需求...

2018-06-08 14:36:35 2756

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除