《EOSIO技术白皮书》翻译版:http://blog.eosdata.io/index.php/2018/04/28/eos-io-whitepaper-v2/;英文版:https://github.com/EOSIO/Do-cumentation/blob/master/TechnicalWhitePaper.md#accounts。
特别地,BM 之前设计与开发了内容专用的区块链 Steem,在 Steem 中,博客文章和评论的文本是存储在区块链的区块(区块链账本)中的。BM 在实践中可能意识到,正确的做法应当是只在区块链账本中存储与交易相关的信息。简单地说,区块链是用于交易的,区块链的状态是交易账本,那么,与交易相关的信息应该存入交易账本,而与交易无关的信息不应存入交易账本。
根据 EOSIO 文档,这里的状态可认为指的是一个应用所占用的区块链网络的 RAM 存储空间。原文为:Storage of application state will require an application developer to hold tokens until that state is deleted.If state is never deleted,then the tokens are effectively removed from circulation.
对比以太坊和 EOS 我们可以看到,在以太坊中进行交易,个人用户需要支付交易费,而在 EOS 中进行交易,则是应用提供者需要承担成本,现在看来其中主要的成本是与 RAM 存储空间相关的。
EOS 对此进一步改进,对这个基于角色的权限系统进行了通用化,“允许每个账户持有者定义自己的权限层次结构以及动作的分组”。这样做给了应用开发者更多的自由度。EOS 白皮书在讨论 Steem 时说:“posting 权限只能执行诸如投票和发布等社交行为,而 active 权限除了更改所有者之外,还可以做其他任何事情。owner 权限用作冷存储,它能够做所有事情。”
在 EOS 开发者文档中,有关于账户与权限的开发信息,见 https://developers.eos.io/eosio-nodeos/docs/accounts-and-permissions。在 EOS 的账户权限系统中有两个缺省的权限组:最高级别的缺省权限组是 owner,第二个缺省权限组是 active,它可以做出除更改所有者之外的所有事。其他的权限组都可以由 active 派生出来,这些权限组用户可以自行定义。比如,我开发一个博客应用,我就可以自己定义一个 publish 权限组出来(见图4)。
EOS 存储的白皮书见:https://github.com/EOSIO/Docum-entation/blob/master/EOS.IO%20Storage.pdf。其中,它强调区块链的区块中不应存储文件。绝大多数基础公链都没有解决这个周边问题,而聚焦于区块链的核心任务——交易。但为了让 EOS 可以更好地用于开发应用,EOS 在 2017 年 9 月就发布了 EOS 存储的独立白皮书,解释了它在存储方面的开发设想。
新闻热点
疑难解答