Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
test
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
谢昇
test
Commits
c5b4196c
Commit
c5b4196c
authored
May 16, 2019
by
谢昇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update chain33.md
parent
4f4159e9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
6 deletions
+11
-6
合约、平行链与交易组.md
合约、平行链与交易组.md
+11
-6
No files found.
chain33
.md
→
合约、平行链与交易组
.md
View file @
c5b4196c
# Chain33平台架构的特点
...
...
@@ -10,6 +10,8 @@ Chain33创造性的支持分层的架构,主链负责交易清算,智能合
**1、共识、数据库、执行器(合约),对chain33的纵向扩展;**
**2、平行链,对chain33的横向扩展。**
这里主要介绍执行器和平行链的相关内容。
# chain33系统中的合约
chain33系统中的合约,也可以称为执行器(executor),是chain33架构纵向扩展的核心。
...
...
@@ -22,22 +24,24 @@ chain33系统中的合约,也可以称为执行器(executor),是chain33
**2、合约地址:16htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp**
每个合约拥有一个唯一的合约地址,该地址从合约创造出来开始就被固定并唯一,这个合约地址不存在私钥;
对于任何一个已知的合约名,都可以在chain33中查询该合约的合约地址。

## chain33合约的使用
对于chain33合约,有一个最大的原则:
**合约只允许操作自己合约内部的代币**
对于chain33合约,存在一个
**资产控制权**
的概念。
想要使用对应合约的功能,首先需要将资产控制权转移(TransferToExec)给对应合约;从表现上来看,就是将资产转入了对应的合约地址。
为了合约调用的安全考虑,只允许合约中主动向其他合约转账,而不允许其他合约从本合约中取款。
为了合约调用的安全考虑,只允许合约
**主动**
向其他合约转账,而不允许其他合约从本合约中取款。
同样以挖矿合约举例,要进行挖矿操作,需要从coins合约中主动向ticket合约转账,之后才允许ticket合约本身,对合约中的代币进行操作。我们钱包中开启自动挖矿的操作已经集成了该步操作。
再以token C2C举例,想要进行token的C2C交易,需要首先将token合约中的代币,从token合约转入到trade合约,之后才允许trade合约使用;而不允许trade合约调用token合约中的代币。
而当想从其他合约取回代币时,也是由coins合约或token合约执行取回(withdraw)操作。
转移资产控制权后,合约可以任意控制资产,主要包括冻结、解冻、增加、减少等操作。
而对应的,存在转回资产控制权(withdraw)的操作,将资产的控制权限转移回来。之后合约对资产控制权限终止。
目前对于主链上来说,coins、token、paracross三个合约支持
所以chain33的合约系统事实上是扁平化的格局,所有合约在权限上都是平等的,既无权调用其他合约的代币,也无权被其他合约调用;想要使用其他合约的功能,只能主动想其他合约转入代币。
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment