Skip to content

Commit

Permalink
update index
Browse files Browse the repository at this point in the history
  • Loading branch information
vita-dounai committed Mar 31, 2021
1 parent ab4d4d8 commit d6a71a1
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 6 deletions.
4 changes: 2 additions & 2 deletions docs/pdc/authority.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,9 @@ PDC 最重要的使命是在分布式环境中,确保所有参与协作的参

## 角色合同模式

Propose-Accept 模式一般用于临时协作的场景中,如参与方之间需要长期合作,例如 Alice 需要持续向 Bob 转移借据所有权,则每次转移时都需要经历提议-接受的工作步骤,流程较为繁琐且需要双方随时在线。可以使用角色合同模式解决这一问题,将长期合作中双方的角色通过合同的形式固定下来。
提议模式一般用于临时协作的场景中,如参与方之间需要长期合作,例如 Alice 需要持续向 Bob 转移借据所有权,则每次转移时都需要经历提议-接受的工作步骤,流程较为繁琐且需要双方随时在线。可以使用角色合同模式解决这一问题,将长期合作中双方的角色通过合同的形式固定下来。

Propose-Accept 模式问题的根源在于无论是提议或是接受的过程中,均只有单边参与。若双方能够同时参与到`transfer`权利的行使过程中,则能够直接同时获得双方的授权,进而创建出`Iou`合约,因此我们可以为`Iou`合同模板定义如下权利,要求行权时需要同时取得双方的授权:
提议模式的问题根源在于无论是提议或是接受的过程中,均只有单边参与。若双方能够同时参与到`transfer`权利的行使过程中,则能够直接同时获得双方的授权,进而创建出`Iou`合约,因此我们可以为`Iou`合同模板定义如下权利,要求行权时需要同时取得双方的授权:

```eval_rst
.. code-block:: rust
Expand Down
4 changes: 2 additions & 2 deletions docs/pdc/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

- **参与方(Party)**:参与协作过程的主体,例如示例中的银行、Alice 及 Bob;

- **合同(Contract)**:在协作过程中,记录各参与方之间所达成的共识的载体,例如示例中的 IOU 及最终的采购合同。每份合同至少需要有一名**签署方(Signer)**。只有在取得所有签署方一致同意后,合同才能被<strong>创建(Create)</strong>,例如在没有授权的情况下,Charlie 无法代替 Alice 去与 Bob 达成采购协议;
- **合同(Contract)**:在协作过程中,记录各参与方之间所达成的共识的载体,例如示例中的 IOU 及最终的采购合同。每份合同至少需要有一名**签署方(Signer)**。只有在取得所有签署方一致同意后,合同才能被<strong>签订(Sign)</strong>,例如在没有授权的情况下,Charlie 无法代替 Alice 去与 Bob 达成采购协议;

- **权利(Right)**:合同赋予参与方<strong>行使(Exercise)</strong>一定行为以实现某种利益的资格,例如示例中 Alice 能够转移 IOU 的所属权。任何权利只能被已授权的参与方行使,例如在没有授权的情况下,Charlie 无法去花费 Alice 的 IOU。

多个签署合同、行使权利的动作按照某种逻辑前后衔接起来,便可以组成能够完成多方协作任务的工作流。区块链所蕴含的分布式、不可篡改和协同共识的技术特性使得它天然适合涉及协同工作的领域,而 PDC 则力图为开发者提供开发这类应用的脚手架。在 PDC 中,参与协作的实体可以使用链上唯一的账户地址表示;同时,PDC 将合同内容与行使权利分别抽象为数据状态及对数据状态的修改,并提供专有语法描述权利分配。通过将涉及协作过程的概念可编程化,开发者能够通过 PDC 直接描述合同、签署、权利、授权等概念,因此开发者能够更加专注于业务逻辑的实现,而无需拘泥于如何实现合同创建及权限检查等内部细节。
多个签订合同、行使权利的动作按照某种逻辑前后衔接起来,便可以组成能够完成多方协作任务的工作流。区块链所蕴含的分布式、不可篡改和协同共识的技术特性使得它天然适合涉及协同工作的领域,而 PDC 则力图为开发者提供开发这类应用的脚手架。在 PDC 中,参与协作的实体可以使用链上唯一的账户地址表示;同时,PDC 将合同内容与行使权利分别抽象为数据状态及对数据状态的修改,并提供专有语法描述权利分配。通过将涉及协作过程的概念可编程化,开发者能够通过 PDC 直接描述合同、签署、权利、授权等概念,因此开发者能够更加专注于业务逻辑的实现,而无需拘泥于如何实现合同创建及权限检查等内部细节。
2 changes: 1 addition & 1 deletion docs/pdc/utilities.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ node ./cli.js sign Offer 0x144d5ca47de35194b019b6f11a56028b964585c9 1

## sign!宏

`sign!`宏是 Liquid 原生提供的过程宏,用于在权利的执行过程中签署新的合同,无需导入即可直接使用,其使用方式如下所示:
`sign!`宏是 Liquid 原生提供的过程宏,用于在权利的执行过程中签订新的合同,无需导入即可直接使用,其使用方式如下所示:

```eval_rst
.. code-block:: rust
Expand Down
3 changes: 2 additions & 1 deletion index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Liquid
<img class="feature-icon" src="_static/images/safety.svg" alt="safety">
<div class="feature-title">
<span class ="zh-title">安全</span>
<p class="title-initial">S</p><p class="title-rest">afety</p>
<p class="title-initial">S</p><p class="title-rest">ecurity</p>
</div>
<ul>
<li>
Expand Down Expand Up @@ -150,6 +150,7 @@ Liquid
docs/pdc/right.md
docs/pdc/utilities.md
docs/pdc/authority.md
docs/pdc/design_pattern.md

.. toctree::
:hidden:
Expand Down

0 comments on commit d6a71a1

Please sign in to comment.