Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
blockchain_guide
提交
7c716f7c
B
blockchain_guide
项目概览
OpenDocCN
/
blockchain_guide
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
blockchain_guide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7c716f7c
编写于
7月 29, 2016
作者:
Y
yeasy
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:yeasy/blockchain_guide
上级
b2d2798b
0c81e2c6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
10 deletion
+10
-10
hyperledger/arch.md
hyperledger/arch.md
+8
-8
hyperledger/chaincode.md
hyperledger/chaincode.md
+2
-2
未找到文件。
hyperledger/arch.md
浏览文件 @
7c716f7c
...
...
@@ -4,15 +4,15 @@
![](
_images/refarch.png
)
包括三大组件:区块链服务(Blockchain)、链
上代
码服务(Chaincode)、成员权限管理(Membership)。
包括三大组件:区块链服务(Blockchain)、链码服务(Chaincode)、成员权限管理(Membership)。
### 基本术语
*
交易处理(Transaction):执行账本上的某个函数调用。函数在 chaincode 中实现;
*
交易员(Transactor):作为客户端发起交易调用;
*
账本(Ledger):即区块链,带有所有的交易信息和当前的世界
观
(world state);
*
世界
观
\/
世界
状态(World State):当前账本的一个(稳定)状态,包括所有 chaincode 中所有键值对的集合。是一个键值集合,一般用
`{chaincodeID, ckey}`
代表键;
*
链码
\/
链上代码
(Chaincode):区块链上的应用代码,延伸自“智能合约”,支持 golang、nodejs 等;
*
账本(Ledger):即区块链,带有所有的交易信息和当前的世界
状态
(world state);
*
世界状态(World State):当前账本的一个(稳定)状态,包括所有 chaincode 中所有键值对的集合。是一个键值集合,一般用
`{chaincodeID, ckey}`
代表键;
*
链码(Chaincode):区块链上的应用代码,延伸自“智能合约”,支持 golang、nodejs 等;
*
验证节点(Validating Peer):维护账本的核心节点,参与一致性维护、对交易的验证和执行;
*
非验证节点(Non-validating Peer):不参与账本维护,仅作为交易代理响应客户端的 REST 请求,并对交易进行一些基本的有效性检查,之后转发给验证节点;
*
带许可的账本(Permissioned Ledger):网络中所有节点必须是经过许可的,非许可过的节点则无法加入网络;
...
...
@@ -28,7 +28,7 @@
交易意味着围绕着某个链码进行操作。
交易可以改变世界
观
。
交易可以改变世界
状态
。
交易中包括的内容主要有:
...
...
@@ -139,11 +139,11 @@ message Block {
}
```
### 链
上代
码服务
### 链码服务
链
上代
码包含所有的处理逻辑,并对外提供接口,外部通过调用链码接口来改变世界观。
链码包含所有的处理逻辑,并对外提供接口,外部通过调用链码接口来改变世界观。
链
上代
码目前支持的交易类型包括:部署(Deploy)、调用(Invoke)和查询(Query)。
链码目前支持的交易类型包括:部署(Deploy)、调用(Invoke)和查询(Query)。
*
部署:VP 节点利用链码创建沙盒,沙盒启动后,处理 protobuf 协议的 shim 层一次性发送包含 ChaincodeID 信息的 REGISTER 消息给 VP 节点,进行注册,注册完成后,VP 节点通过 gRPC 传递参数并调用链码 Invoke 函数完成初始化;
*
调用:VP 节点发送 TRANSACTION 消息给链码沙盒的 shim 层,shim 层用传过来的参数调用链码的 Invoke 函数完成调用;
...
...
hyperledger/chaincode.md
浏览文件 @
7c716f7c
## 链
上代
码
## 链码
### 什么是 chaincode
chaincode(链
上代
码)是部署在 Hyperledger fabric 网络节点上,可被调用与分布式账本进行交互的一段程序代码,也即狭义范畴上的“智能合约”。链码在 VP 节点上的隔离沙盒(目前为 Docker 容器)中执行,并通过 gRPC 协议来被相应的 VP 节点调用和查询。
chaincode(链码)是部署在 Hyperledger fabric 网络节点上,可被调用与分布式账本进行交互的一段程序代码,也即狭义范畴上的“智能合约”。链码在 VP 节点上的隔离沙盒(目前为 Docker 容器)中执行,并通过 gRPC 协议来被相应的 VP 节点调用和查询。
Hyperledger 支持多种计算机语言实现的 chaincode,包括 Golang、JavaScript、Java 等。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录