zoukankan      html  css  js  c++  java
  • EOS.IO Technical White Paper v2

    EOS.IO Technical White Paper v2

    Abstract: 

      The EOS.IO software introduces a new blockchain architecture designed to enable vertical and horizontal scaling of decentralized applications. This is achieved by creating an operating system-like construct upon which applications can be built.

      The software provides 1)accounts, 2)authentication, 3)databases, 4)asynchronous communication and the 5)scheduling of applications across multiple CPU cores and/or clusters. 

      每秒百万级交易。

      The resulting technology is a blockchain architecture that may ultimately 1)scale to millions of transactions per second, 2)eliminates user fees, and 3)allows for quick and easy deployment and maintenance of decentralized applications.

      

     Background

      Blockchain technology was introduced in 2008 with the launch of the Bitcoin currency, and since then entrepreneurs and developers have attempted to generalize the technology to support a wider range of applications on a single blockchain platform.

      While a number of blockchain platforms have struggled to support functional decentralized applications, application specific blockchains such as the BitShares decentralized exchange (2014) and Steem social media platform (2016) have become heavily used blockchains with tens of thousands of daily active users

      BitShare、Steem 已达几万日活。

      They have achieved this by increasing performance to 1)thousands of transactions per second, 2)reducing latency to 1.5 seconds, 3)eliminating per-transaction fees, and 4)providing a user experience similar to those currently provided by existing centralized services.

      每秒数千笔交易。延迟1.5s。

      Existing blockchain platforms are 1)burdened by large fees and 2)limited computational capacity that prevent widespread blockchain adoption.

     Requirements for Blockchain Applications

    1、Support Millions of Users

      Competing with businesses such as eBay, Uber, AirBnB, and Facebook, require blockchain technology capable of handling tens of millions of active daily users.

      eBay、Uber、Facebook等一线互联网应用,已达千万日活。是前文的 BitShare、Steem(几万日活)日活的1000倍。

      In certain cases, an application may not work unless a critical mass of users is reached and therefore a platform that can handle very large numbers of users is paramount.

    2、Free Usage

      Users should not have to pay in order to use the platform or benefit from its services. A blockchain platform that is free to use for users will likely gain more widespread adoption. Developers and businesses can then create effective monetization strategies.

    3、Easy Upgrades and Bug Recovery

    4、Low Latency

    5、Sequential Performance

    6、Parallel Performance

    Consensus Algorithm (BFT-DPOS)

      EOS.IO software utilizes the only known decentralized consensus algorithm proven capable of meeting the performance requirements of applications on the blockchain, Delegated Proof of Stake (DPOS). DPOS 权益委托证明.

       Under this algorithm, those who hold tokens on a blockchain adopting the EOS.IO software may select block producers through a continuous approval voting system. Anyone may choose to participate in block production and will be given an opportunity to produce blocks, provided they can persuade token holders to vote for them.

      在使用EOS.IO软件构建的区块链上持有通证的人,可以通过一个持续进行的投票系统来选择区块生产者。

      

      The EOS.IO software enables blocks to be produced exactly every 0.5 second and exactly one producer is authorized to produce a block at any given point in time. If the block is not produced at the scheduled time, then the block for that time slot is skipped. When one or more blocks are skipped, there is a 0.5 or more second gap in the blockchain.

       0.5秒一个区块。

      Using the EOS.IO software, blocks are produced in rounds of 126 (6 blocks each, times 21 producers). At the start of each round 21 unique block producers are chosen by preference of votes cast by token holders. The selected producers are scheduled in an order agreed upon by 15 or more producers.

      126个区块一个周期。21个生产者,每个生产者6个区块。每轮按照15个或以上的生产者同意的排序来进行。

      If a producer misses a block and has not produced any block within the last 24 hours they are removed from consideration until they notify the blockchain of their intention to start producing blocks again. 

      如果出块者错过了一个块,并且在最近24小时内没有产生任何块,则这个出块者将被剔除在考虑范围之外,直到他们通知区块链可以重新开始产生区块。

      A blockchain fork with more producers on it will grow in length faster than one with fewer producers, because the fork with more producers will experience fewer missed blocks. Furthermore, no block producer should be producing blocks on two forks at the same time. A block producer caught doing this will likely be voted out. Cryptographic evidence of such double-production may also be used to automatically remove abusers.

       Byzantine Fault Tolerance is added to traditional DPOS by allowing all producers to sign all blocks so long as no producer signs two blocks with the same timestamp or the same block height. Once 15 producers have signed a block the block is deemed irreversible. 

      所有的出块者都要对所有区块签名,以此来确保在同一时间戳或者同一区块高度上,没有区块生产者能够同时在两个区块上签名。一个区块有了15个区块生产者的签名,该区块就被认为是不可逆的。

    Accounts

      The EOS.IO software permits all accounts to be referenced by a unique human readable name of up to 12 characters in length. The name is chosen by the creator of the account. The account creator must reserve the RAM required to store the new account until the new account stakes tokens to reserve its own RAM.

    Actions & Handlers

      Each account can send structured Actions to other accounts and may define scripts to handle Actions when they are received. The EOS.IO software gives each account its own private database which can only be accessed by its own action handlers.

      每个账户有一个私有的database,可以被自己的action handlers访问。

      Action handling scripts can also send Actions to other accounts. The combination of Actions and automated action handlers is how EOS.IO defines smart contracts.

      To support parallel execution, each account can also define any number of scopes within their database. The block producers will schedule transaction in such a way that there is no conflict over memory access to scopes and therefore they can be executed in parallel.

      每个账户可以将他们的database划分为任意个scopes,从而可以并行运行。

    Role Based Permission Management

      Permission management involves determining whether or not an Action is properly authorized.  Generally, authority is bound to individuals or groups of individuals and is often compartmentalized.The EOS.IO software provides a declarative permission management system that gives accounts fine grained and high-level control over who can do what and when.

      Every account may be controlled by any weighted combination of other accounts and private keys.

    1、Named Permission Levels

      Using the EOS.IO software, accounts can define named permission levels each of which can be derived from higher level named permissions.

      账户可以定义NPL,一个NPL可以继承自高级别NPL。

      Each named permission level defines an authority; an authority is a threshold multi-signature check consisting of keys and/or named permission levels of other accounts. For example, an account's "Friend" permission level can be set for an Action on the account to be controlled equally by any of the account's friends.  

      每个NPL定义一个授权,每个授权是由多个keys的签名以及/或者其他账户的NPL。

    2、Permission Mapping

      EOS.IO software allows each account to define a mapping between a contract/action or contract of any other account and their own Named Permission Level.  

      每个账户可以定义一个映射,一个 contract/action 到他们自己的 NPL。

    3、Evaluating Permissions

    4、Default Permission Groups

      The EOS.IO technology also allows all accounts to have an "owner" group which can do everything, and an "active" group which can do everything except change the owner group. All other permission groups are derived from "active".

    5、Parallel Evaluation of Permissions

    其它

    1、EOS 合约 wast wasm 的区别

      WebAssembly并不是只有wasm一种格式,它还有wast格式。这两者作用是等价的,最大的区别就是wast是可读文本格式的,而wasm是二进制格式的。

     

  • 相关阅读:
    DeepIn系统使用和相关软件安装
    在JDK11中生成JRE11的方法
    IIS 7 中设置文件上传大小的方法
    在服务器上发布MVC5的应用
    安装了多个Oracle11g的客户端,哪个客户端的tnsnames.ora会起作用?
    配置putty或SecureCRT防止SSH连接中断
    借助FRP反向代理实现内网穿透
    你不知道的hostname命令
    Perl脚本通过Expect登陆多台设备批量执行命令并Log
    Linux内核参数配置
  • 原文地址:https://www.cnblogs.com/tekkaman/p/9982006.html
Copyright © 2011-2022 走看看