http://www.7klian.com

如安在区块链上实现去中心化数据客栈共享-part2

  <Copy Remix / SOLIDITY COMPILER / ABI text for the DataShareSDAC
$ export B=folder2
            }
    address account2;
            }
}
结论
除了Terminate(终止)之外,显示的所有函数都由datavault用于确定对工具的答允操纵。本例中没有用户函数。
对话可以继承,而且可以发送和吸收数据文件。
            if (account == account2) {
我们将在终端窗口中利用datona-cli呼吁来:
终止只能由智能合约所有者利用。终止是一种逻辑状态。这与删除智能合约差异。终止后,仍然可以会见条约并确定其是否已终止。
上图中两个用户Alice和Bob可以别离将数据读和写到数据保管库中本身的文件夹中。他们还可以从其他用户的文件夹中读取邮件,但不能写入该文件夹。
         “Hi Bob, from Alice”
,
folder2   account2   Share   all file (read, write, append)
我们将在共享去中心化数据时利用datona-cli为这个问题提供另一个扩展的事情办理方案。
invite
datavault操纵由getPermissions节制,getPermissions返回给定帐户和工具的适当属性(IsDirectory、Readable、Writeable、Appendable)。

利用智能合约来节制对数据客栈的会见
$ contractCode=DataShare.sdac
         “Hi Alice, from Bob”
        if (!terminated) {
· 建设数据
客栈

        return NO_PERMISSIONS;
在终端窗口中,我们将为Alice和Bob生成一些密钥,并以智能合约所有者的身份单独存在:
$ export DATONA_KEY=AliceKey
        return terminated;
· 另一个示例办理方案
$ datona terminateContract $contractCode $contract –key owner
$ Bob=`datona getAddress BobKey`
Alice和Bob以及其他很多人都但愿可以或许以分手的方法共享数据。这大概会使数据更安详、更私密、更可控。
Alice可以列出文件名,然后列出文件数据:
                if (object == 2) return DIRECTORY | READ_PERMISSION;
         “Coffee?”
  Bob Terminal
          Alice Terminal
                if (object == 1) return DIRECTORY | READ_PERMISSION;
   Smart Contract Owner Terminal
我们将account1和folder1分派给Alice,将account2和folder2分派给Bob。
3. 并执行工具操纵
contract DataShareSDAC is SDACinterface {
我们可以以Alice身份打开终端窗口,然后将数据写入数据客栈:
$ export DATONA_KEY=BobKey
            if (account == account1) {
这是我们将要陈设到以太坊
区块链的Solidity DataShareSDAC:
在Remix,Byzantium v0.6.10中编译Solidity代码。
Hi Alice, from Bob
让我们为Bob打开一个终端窗口,并列出文件名和文件数据,然后响应:
我们已经展示了一个实用的办理方案,它利用智能合约和数据客栈的组合来
实现这一点,这些都切合datona-lib中描写的接口类型。

$ datona writeVault $contract $vaultUrl $vaultSrvId — file $B/invite
也可以利用应用措施与Datona库(datona-lib)举办交互。智能合约以Solidity编写并陈设在以太坊
区块链上。
$ datona generateKey AliceKey
    }
   Contract here>
2. 建设数据客栈

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读