织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

读懂Arweave: Web 3的关键基础设施_Foresight Ventures_火星财经(4)

时间:2021-12-01 13:38来源:未知 作者:admin 点击:
前端页面和智能合约是如何合二为一的? 在前文中, 我们提到了 Arweave 中是可以直接存储不同 content-type 的文件的. 我们可以把前端的页面直接存储到 Arw

  •   前端页面和智能合约是如何合二为一的?

  •   在前文中, 我们提到了 Arweave 中是可以直接存储不同 content-type 的文件的. 我们可以把前端的页面直接存储到 Arweave 中, 打开这个交易数据时就直接可以看到一个完整的页面! (比如 这个交易 中存储的 数据, 点开就直接是一个渲染好的前端页面) 通过这个例子, 我们其实就可以了解了为什么前端页面可以是智能合约. 因为我们在打开 Arweave 代码数据的同时, 浏览器也为我们渲染好了页面. 我们不仅能看到页面的源码, 也能看到页面. 这在以太坊上是做不到的, 以太坊的智能合约在浏览器眼里只是一串文本, 浏览器是渲染不成页面的. 当开发者在开发的时候, DApp 的逻辑和合约的逻辑都可以写在前端里, 然后通过 HTTP API 来将需要存储的交易和数据存储到 Arweave 上.

  •   如何保证数据存储可信和计算可信?

  •   Arweave 的生态开发者和 Sam Williams 所倾向于的共识是 基于数据的共识 (由 Arweave 生态开发者, everFinance Founder outprog 首次提出). 合约的页面源码存储在 Arweave 上, 具备确定性, 我们可以随意查看. 同时每个交互的数据也存储在链上, 这就保证了数据的存储可信. 在我们渲染出合约页面的同时, 现代浏览器为我们提供了一个几乎完全统一的执行环境, 这就保证了计算可信. 通过这样的设计, Arweave 的智能合约同时保证数据永存/数据不可变/数据可追溯/数据成本低.

  •   合约代码如何升级呢?

  •   当想要升级合约或前端样式的时候, 开发者只需要重新发布一次新版的合约到 Arweave 上, 这就会生成一个新的 Arweave 交易, 更新前端页面以及合约内容.

  • 智能合约的不同实现
    •   Smartweave (Arweave 作为图灵机的纸带, Smartweave 专用于管理图灵机的状态)

    •   概览:

    •   还记得我们在前文中提到的图灵机纸带概念吗? 要组成一个图灵机, 光有 Arweave 的纸带记录状态可不行, 我们还需要一个方式去有效的管理和改变应用的这些状态. Smartweave 所做的则是这缺少的重要一环. Smartweave 是 Arweave 官方所做的智能合约标准, 所使用的也是前端代码 = 智能合约的概念, 开发者可以使用 JavaScript 这门前端的脚本语言来管理状态. 前端页面其实本身就是各种 UI 的逻辑和状态, 相信对于前端开发者来说, 使用 Smartweave 来写智能合约去管理状态会比 SolIDity 上手容易非常多.

    •   设计思路与特点:

    •   Smartweave 的设计思路是 Lazy-execution, 不得不执行的时候再执行. 当用户在前端必须要得到最新合约状态的时候才会去执行. 因为使用的是 JavaScript 的语言, 所以用户在浏览器内就可以直接运行所有的交易, 不需要链上运行. Smartweave 会存储最初状态以及和合约相关的交易 (一个形如 [交易1, 交易2, 交易3] 的有序列表). 当要得到合约最新状态时, 用户会在浏览器中里运行所有合约相关的交易, 相当于用户自己作为一个节点, 最后得出最新状态, 然后提交新的交易. (责任编辑:admin)

    织梦二维码生成器
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片
    栏目列表
    推荐内容