Skip to content

Commit

Permalink
update introduction
Browse files Browse the repository at this point in the history
  • Loading branch information
vita-dounai committed Mar 24, 2021
1 parent c06b840 commit d43c355
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 9 deletions.
2 changes: 1 addition & 1 deletion docs/advance/fbei.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FISCO BCOS 环境接口规范

FISCO BCOS 环境接口(FISCO BCOS Environment Interface,FBEI)规范中包含区块链底层平台[FISCO BCOS](https://github.com/FISCO-BCOS/FISCO-BCOS)向 Wasm 虚拟机公开的应用程序接口(Application Programming Interface,API)。FBEI 规范中所有的 API 均由 FISCO BCOS 负责实现,运行于 Wasm 虚拟机中的程序能够直接访问这些 API 以获取区块链的环境及状态。
FISCO BCOS 环境接口(FISCO BCOS Environment Interface,FBEI)规范中包含区块链底层平台[FISCO BCOS](https://gitee.com/FISCO-BCOS/FISCO-BCOS)向 Wasm 虚拟机公开的应用程序接口(Application Programming Interface,API)。FBEI 规范中所有的 API 均由 FISCO BCOS 负责实现,运行于 Wasm 虚拟机中的程序能够直接访问这些 API 以获取区块链的环境及状态。

## 数据类型

Expand Down
2 changes: 1 addition & 1 deletion docs/advance/fbwci.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FISCO BCOS Wasm 合约接口规范

FISCO BCOS Wasm 合约接口(FISCO BCOS Wasm Contract Interface,FBWCI)规范中包含关于合约文件格式及内容的约定。符合 FBWCI 规范要求合约文件能够在区块链底层平台[FISCO BCOS](https://github.com/FISCO-BCOS/FISCO-BCOS)内置的 Wasm 虚拟机中运行。
FISCO BCOS Wasm 合约接口(FISCO BCOS Wasm Contract Interface,FBWCI)规范中包含关于合约文件格式及内容的约定。符合 FBWCI 规范要求合约文件能够在区块链底层平台[FISCO BCOS](https://gitee.com/FISCO-BCOS/FISCO-BCOS)内置的 Wasm 虚拟机中运行。

## 传输格式

Expand Down
11 changes: 9 additions & 2 deletions docs/dev_testing/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ ABI: C:/Users/liche/hello_world/target/hello_world.abi

### 部署 Node.js SDK

由于 Liquid 当前暂为实验项目,因此目前仅有 FISCO BCOS Node.js SDK 提供的 CLI 工具能够部署及调用 Liquid 智能合约。Node.js SDK 部署方式可参考其[官方文档](https://github.com/FISCO-BCOS/nodejs-sdk#fisco-bcos-nodejs-sdk)。但需要注意的是,Liquid 智能合约相关的功能目前同样未合入 Node.js SDK 的主干版本。因此当从 GitHub 克隆了 Node.js SDK 的源代码后,需要先手动切换至`liquid`分支并随后安装[SCALE](https://substrate.dev/docs/en/knowledgebase/advanced/codec)编解码器:
由于 Liquid 当前暂为实验项目,因此目前仅有 FISCO BCOS Node.js SDK 提供的 CLI 工具能够部署及调用 Liquid 智能合约。Node.js SDK 部署方式可参考其[官方文档](https://gitee.com/FISCO-BCOS/nodejs-sdk#fisco-bcos-nodejs-sdk)。但需要注意的是,Liquid 智能合约相关的功能目前同样未合入 Node.js SDK 的主干版本。因此当从 GitHub 克隆了 Node.js SDK 的源代码后,需要先手动切换至`liquid`分支并随后安装[SCALE](https://substrate.dev/docs/en/knowledgebase/advanced/codec)编解码器:

```eval_rst
.. code-block:: shell
Expand All @@ -188,6 +188,13 @@ ABI: C:/Users/liche/hello_world/target/hello_world.abi
cd packages/cli/scale_codec && npm install
```

```eval_rst
.. hint::
若无法访问GitHub,则请执行 ``git clone https://gitee.com/FISCO-BCOS/nodejs-sdk.git`` 命令克隆Node.js SDK。
```

### 将合约部署至区块链

使用 Node.js SDK CLI 工具提供的`deploy`子命令,我们可以将 Hello World 合约构建生成的 Wasm 格式字节码部署至真实的区块链上,`deploy`子命令的使用说明如下:
Expand All @@ -209,7 +216,7 @@ Options:
-h, --help Show help [boolean]
```

执行该命令时需要传入字节码文件的路径及构造函数的参数,并通过`--abi`选项传入 ABI 文件的路径。当根据[配置手册](https://github.com/FISCO-BCOS/nodejs-sdk#22-%E9%85%8D%E7%BD%AE)配置好 CLI 工具后,可以使用以下命令部署 HelloWorld 智能合约。由于合约中的构造函数不接受任何参数,因此无需在部署时提供参数:
执行该命令时需要传入字节码文件的路径及构造函数的参数,并通过`--abi`选项传入 ABI 文件的路径。当根据配置手册(https://gitee.com/FISCO-BCOS/nodejs-sdk#22-%E9%85%8D%E7%BD%AE)配置好 CLI 工具后,可以使用以下命令部署 HelloWorld 智能合约。由于合约中的构造函数不接受任何参数,因此无需在部署时提供参数:

```shell
node ./cli.js exec deploy C:/Users/liche/hello_world/target/hello_world.wasm --abi C:/Users/liche/hello_world/target/hello_world.abi
Expand Down
2 changes: 1 addition & 1 deletion docs/pdc/right.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@

- `&mut self`,以可写的方式访问当前合同,可以修改合同中的内容。权利行使完毕后,不会作废当前合同。

作废合同意味着之后不能再基于该合同继续行使权利,但是与该合同相关的数据并不会从链上删除,其`contractId`也不会被废弃,可以继续用于查询合同中的内容。在某些领域,作废机制也被称作“归档”,因为虽然不能再继续行权,但是合同内容仍会作为存证保留在区块链中,可供日后取证所用。作废机制在由旧合同生成新合同时比较有用,能够用于避免产生重复的新合同。例如,在[完整的投票协作](https://github.com/FISCO-BCOS/liquid/blob/main/examples/collaboration/voting/src/lib.rs)中,`government`被授予根据已投票的提案中产生出一项新决议的权利,如下列代码所示,用于执行此功能的`decide`权利的接收器是`self`,因此在行权完毕后,原始的提案将会被作废,从而避免产生重复的决议(代码中的`sign!`宏及`ContractId`类型将在下一节中进行详细解释。):
作废合同意味着之后不能再基于该合同继续行使权利,但是与该合同相关的数据并不会从链上删除,其`contractId`也不会被废弃,可以继续用于查询合同中的内容。在某些领域,作废机制也被称作“归档”,因为虽然不能再继续行权,但是合同内容仍会作为存证保留在区块链中,可供日后取证所用。作废机制在由旧合同生成新合同时比较有用,能够用于避免产生重复的新合同。例如,在[完整的投票协作](https://gitee.com/WebankBlockchain/liquid/blob/dev/examples/collaboration/voting/src/lib.rs)中,`government`被授予根据已投票的提案中产生出一项新决议的权利,如下列代码所示,用于执行此功能的`decide`权利的接收器是`self`,因此在行权完毕后,原始的提案将会被作废,从而避免产生重复的决议(代码中的`sign!`宏及`ContractId`类型将在下一节中进行详细解释。):

```eval_rst
.. code-block:: rust
Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart/example.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
为了能够更好地使用Liquid进行智能合约开发,我们强烈建议提前参考 `Rust语言官方教程 <https://doc.rust-lang.org/book/>`_ ,掌握Rust语言的基础知识,尤其借用、生命周期、属性等关键概念。
```

本节将以简单的 HelloWorld 合约为示例,帮助读者快速建立对 Liquid 合约的直观认识。
Liquid 基于 Rust 实现,本节将以简单的 HelloWorld 合约为示例,帮助读者快速建立对 Liquid 合约的直观认识。

```eval_rst
.. code-block:: rust
Expand Down
9 changes: 6 additions & 3 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
Liquid
==============

Liquid由微众银行区块链团队开发并完全开源,是一种基于 `Rust语言 <https://www.rust-lang.org/>`_ 的 `嵌入式领域特定语言 <http://wiki.haskell.org/Embedded_domain_specific_language>`_ ( embedded Domain Specific Language,eDSL),能够用于编写在 `FISCO BCOS <https://github.com/FISCO-BCOS/FISCO-BCOS>`_ 区块链底层平台上运行的智能合约。
不断多样化、复杂化的应用场景为智能合约编程语言带来了全新挑战:分布式、不可篡改的执行环境要求智能合约具备更强的隐私安全性与鲁棒性;日渐扩大的服务规模要求智能合约能够更加高效运行;智能合约开发过程需要对开发者更加友好;对于跨链协同等不断涌现的新型计算范式,也需要能够提供原生抽象。在上述背景下,微众银行区块链团队提出了『SPEC』设计规范,即智能合约编程语言应当涵盖 **安全** (Security)、 **性能** (Performance)、 **体验** (Experience)及 **可定制** (Customization) 四大特征。

在『SPEC』规范的指导下,微众银行区块链团队设计并开发了 Liquid 项目,且面向公众完全开源。在实现上, Liquid 是一种 `嵌入式领域特定语言 <http://wiki.haskell.org/Embedded_domain_specific_language>`_ ,对『SPEC』规范提供了全方位的支持,能够用来编写运行于区块链底层平台 `FISCO BCOS <https://github.com/FISCO-BCOS/FISCO-BCOS>`_ 的智能合约。

--------
关键特性
Expand All @@ -19,13 +21,13 @@ Liquid由微众银行区块链团队开发并完全开源,是一种基于 `Rus
</div>
<ul>
<li>
内置<a href="./docs/asset/asset.html">线性资产模型</a>,对安全可控、不可复制的资产类型进行了高级抽象,确保链上资产类应用具备金融级安全性
提供<a href="./docs/asset/asset.html">线性资产模型</a>确保链上资产类应用具备金融级安全性
</li>
<li>
支持在智能合约内部便捷地编写单元测试用例,可通过内嵌的区块链模拟环境直接在本地执行
</li>
<li>
算数溢出及内存越界安全检查
内置算数溢出及内存越界安全检查
</li>
<li>
能够结合模糊测试等工具进行深度测试
Expand Down Expand Up @@ -98,6 +100,7 @@ Liquid由微众银行区块链团队开发并完全开源,是一种基于 `Rus
微众银行区块链团队秉承多方参与、资源共享、友好协作和价值整合的理念,将Liquid项目完全向公众开源,并专设有智能合约编译技术专项兴趣小组(CTSC-SIG),欢迎广大企业及技术爱好者踊跃参与Liquid项目共建。

* `GitHub主页 <https://github.com/FISCO-BCOS/liquid>`_
* `Gitee主页 <https://gitee.com/WebankBlockchain/liquid>`_
* `公众号 <_static/images/public_account.png>`_
* `CTSC-SIG <https://mp.weixin.qq.com/s/NfBZtPWxXdnP0XLLGrQKow>`_

Expand Down

0 comments on commit d43c355

Please sign in to comment.