What is EOS.IO?
EOS.IO is a new open-source blockchain platform created by block.one. The architecture and development effort is led by Dan Larimer. EOS is Larimer's third blockchain project, leveraging his prior experience standing up BitShares, a decentralized exchange, and Steemit, a blockchain-based social media community. EOS is a culminating effort to generalize smart contract infrastructure in a delegated governance model, featuring parallel processing and inter-blockchain communication (IBC) to scale up for high-transaction rate commercial applications with large sets of concurrent users. The EOS infrastructure provides user accounts, authentication, in-memory databases (MongoDB), IPFS storage, and asynchronous scheduling of decentralized applications across many CPU cores and clusters. As of May, 2018, over 100 people have contributed to the open source-project hosted on GitHub, with over 5,000 commits to the main eos repository. Dawn 4.0 was released on May 4th, 2018, a single-threaded implementation that is benchmarking between 1,200 and 2,000 transactions per second (TPS). Dawn 4.1 was released on May 18th, 2018. Future releases will scale higher across clusters using an inter-blockchain communication protocol with theoretical million+ TPS throughput.

Design Decisions
EOS has chosen a delegated proof-of-stake architecture (DPOS). A concensus of EOS stakholders with governance rights endorse a blockchain constitution that establishes community standards, including an arbitration process when disputes arise. The blockchain is supported by 21 primary block producers, chosen by ongoing community voting. Primary block producers are determined through a recurring vote tally every 126 seconds. Votes decay over time and need to be re-cast weekly to remain fully counted. Block producers found to be in violation of the constitution can be voted out of the active producer set. The 21st block producing node varies, chosen by an algorithm that evalutates the top 120 elected stand-by block producers.

Larimer's experience with prior DPOS blockchain projects has identified a "sweet spot" of 21 active block producers. There are three fundamental design levers available, but blockchain architects can only pick two: Security, Performance or Decentalization. Security is mandatory, but all blockchains next face a trade-off between transaction performance and decentralization. Greater decentralization provides higher trust but leads to propagation delays and longer transactions that result in unaceptable user experiences in many commercial applications. This EOS study presents an objective SWOT (Strengths, Weknesses, Opportunities, Threats) analysis.

The EOS infrastructure includes:
  • Delegated block production
  • No mining or mining pool cartels
  • Constitutional stakeholder governance and Ricardian contracts, with community arbitration
  • High throughput via parallel application execution across CPU cores and clusters
  • Fast transactions for responsive applications providing a good user experience
  • Non-proprietary API using C++ with Web Assembly, battle-tested and performant
  • Platform upgrades and patches without forking
  • Airdrop support
  • Income generation for stakeholders through token leasing (Chintai)
  • No user fees for transactions or data storage (EOS.IO Storage)
  • User-friendly accounts
  • User account and password recovery

ICO and ERC20 Wallet Registration
Block.one initiated their ICO on June 26, 2017. The ICO uses an ERC20 token contract running in the Ethereum blockchain. The ERC20 distribution totals 900 million tokens over a 341-day offering, 2 million tokens every 23 hours, with Block.one reserving 10% of the distribution. Besides directly participating in the ICO, tokens can also be purchased indirectly on several exchanges, including Kraken and Binance. All Registered ERC20 tokens will be converted to EOS tokens in a genesis snapshot taken during the launch. Block.one recommends either of two Ethereum wallets to store EOS ERC20 tokens: MetaMask or MyEtherWallet (MEW). Wallets must be registered at eos.io prior to launch. It's important to emphasize the wallet itself is what must be registered, not the individual ERC20 tokens stored therein. The registration process using MetaMask is relatively straightforward. However, people in the United States and China are restricted from participating in the ICO due to protective legal measures taken by Block.one to avoid EOS being considered a security by regulators, complicating the registration process. Workarounds include using a virtual private network (VPN) product like CyberGhost during the eos.io registration process, selecting a VPN server located in Canada or another supported country to mask the browser location. After completing EOS registration of your Ethereum wallet, visit eoscountdown or EOS Authority to confirm the wallet is registered properly for the EOS genesis snapshot.

Alternatively, some exchanges (Binance, Bitfinex and Kraken) have announced registration support for customers who purchase and hold EOS ERC20 tokens. If registration is not performed prior to launch, there may be a recovery option at some point after the launch. An interim EOS contract named eosio.unregd will track unregistered ERC20 balances identified during the genesis snapshot at launch. Therefore, owners of unregistered ERC20 tokens will be able to prove ownership and claim their tokens. For example, Scatter has announced support for converting ERC20 wallet private keys to EOS private keys within its wallet. Finally, unless you are absolutely sure a given source is trustworthy, DO NOT divulge your wallet's private key. Encrypt your private key and store it offline with the corresponding public key, preferably in two seperate physical locations, like a home safe and bank deposit box. There are several good encryption tools, some of which are freely distributed as open-source, like VeraCrypt.

A few ERC20 airdrops are underway or have already taken place, including Carmel, EOS Cafe, IRYO Network and eosDAC. These snapshots require a registered ERC20 wallet, and some have a minimum balance requirement. Several future EOS airdrops are also scheduled soon after the mainnet is launched. Bitfinex is the only exchange that has stated their customers will receive EOS airdrops.

Token Lifecycle
This ecosystem diagram focuses on the token lifecycle. Requirements around account names and namespacing are presented in GitHub issue #3189. Community benefit projects are migrating to a worker proposal system, tracked by issue #1005. Acknowledgement to RiverKingfisher for providing many refinements:

Applications require CPU cycles, network bandwidth and physical RAM to run. CPU cycles and bandwidth are in relatively abundant supply at reasonable prices. RAM is in relatively short supply and rather pricey. Staking EOS tokens automatically reserves a proportional amount of CPU and bandwidth, since these resources are plentiful. However, RAM is treated separately due its scarceness. Automatically reserving RAM would unnecessarily lock up a limited resource, since most users don't need to reserve RAM. Developers who want to run applications need RAM and must use it efficiently in their code. To avoid hording and excessive speculation, RAM supply will be initially limited and gradually increased as more applications are released in the community. RAM must be explicitly purchased with a 1% transaction fee, with the same fee applied whenever RAM is eventually sold/released.

Block Producer Evaluation and Voting
On May, 17th, 2018, there were 155 registered candidates vying to be in the active set of block producers when the mainnet launches. With less than three weeks until launch, it's not clear how the majority of community stakeholders will cast their votes. Technically skilled stakeholders can download the project and stand up a node, providing access to cleos, a script capable of casting votes (cleos system voteproducer). However, block producer candidates are creating more accessible web voting portals. For example, Eosio.SG and EOSphere have indicated their voting web applications will be ready for the launch. Bitfinex is also creating a voting tool for their exchange customers.

Suggested block producer (BP) selection criteria:
  • Avoid voting for exchanges
  • Avoid voting for mining pools
  • Vote for a set of BPs that establish wide geographic block production distribution
  • Vote for self-funded BPs, independent and free of whales out to control and collude block production
  • Vote for BPs operating in stable geopolitical locations that protect individual liberty and support free markets
  • Vote for BPs with dedicated staffing, preferably with 7x24 support
  • Vote for BPs knowledgable of governance and arbitration systems, experience with Bitshares and Steemit.
  • Vote a mixture of BPs using bare metal servers, cloud-based and (my favorite) hybrid architectures (bare metal + cloud)
  • Vote for BPs with distributed networks/nodes with good failover/redundancy
  • Vote for historically active BPs that participated in prior Dawn releases, early (Dawn 1.0) adoption is better
  • Vote for BPs that have made significant efforts at outreach, including meet-ups and social media content
  • Vote for BPs that have made significant technical contributions, including adminstrative tools, Dapps and GitHub commits
Watch the Jungle Map for realtime block production. Block producer node production is tracked on Steemit Statistics are available to determine top block producers running in the Jungle testnet, including availability. Consider block producers with high production and up-time:

EOS relies on a DPOS governance model, so stakeholder diversity and voter participation is critical to avoid block production collusion and cartels that threaten community stability. EOS issued a very long ICO that produced many stakeholders, not just a cabal of whales, exchanges, mining pools and venture funding organizations. Careful consideration is required prior to voting, so be especially wary of block producers associated with whales. Avoid candidates that are backed by mining pool cartels, including Bitmain Antpool, Hubi Mining Pool, eos.fish (backed by F2Pool) and viaEOS. INBlockchain is a whale that actively funds a cartel of BP candidates, including EOS Mao Lao, OracleChain, EOS Gravity, and eosONO. There is also underlying risk and hypocrisy operating an independent, free market blockchain in China, with its centrally planned economy, controlled and censored by a political cabal that continues to support communist ideology.

Recommended block producers in no particular order (30 votes):
Candidate                          Location                   Comments                                                                                                                                                                                         
Bitspace Norway Active outreach, large/experienced (Bitshares) staff, technical contributor (Scholar Monitor), hybrid metal/cloud architecture
Eosio.sg Singapore Active technical contributor, Dapp development including a voting portal
EOS Sweden Sweden Active technical contributor, distributed/regional production sites in Europe
EOS Canada Canada Active outreach and technical contributor, Google Gloud architecture in North America
EOSeoul South Korea Active technical contributor (field benchmarking), regional production sites in Asia
EOS 42 U.K. Active outreach, replicated Google Cloud and Azure platforms in the United Kingdom
EOSphere Australia Active outreach and technical contributor, previous Steemit governance experience, community voting web application
EOS Metal Iceland Self-funded, bare metal servers in Iceland and Panama at launch, Denmark and Grand Cayman thereafter
EOS Tribe USA Active outreach and technical contributor, DDOS prevention, Chintai, bare metal fault tolerance in Wyoming and Utah
EOS Rio Brazil Active outreach and technical contributor, with large, diverse and experienced South American team
Crypto Lions Ukraine Active outreach and technical contributor, custom virtual environment from bare metal located in Germany and Ukraine
EOSdac Anguilla Active outreach and Dapp developer, with distributed nodes in United Kingdom, Romania, Gibraltar and South Korea
EOS Dublin Ireland Active outreach, self-funded, Dapp development: Parachute token airdrop distribution
EOS New York USA Active outreach and technical contributor, initial distributed cloud architecture, future bare metal
EOS Cafe Canada Active outreach and Dapp development
EOS Detroit USA Active outreach, Bitshares and Steem background, cloud + bare metal hybrid architecture located in the Midwest
roelandp Netherlands Active outreach, early adoption, self-funded, initial cloud architecture spanning several geos, future bare metal
EOS The World Puerto Rico Active outreach, self-funded, diverse international staff, bare metal platforms in Texas, Paris and London (TBD)
JEDA Japan Active outreach and Dapp education, academic and business exposure, initial cloud architecture, future bare metal
EOS Blocksmith USA Active outreach, self-funded, bare metal platforms in Oaklahoma, San Francisco and Virginia (TBD)
EOS Vibes Netherlands Active outreach and Dapp development (HireVibes), bare metal platforms in Amsterdam and Frankfurt
EOS Authority U.K. Active technical contributor, self-funded, great space invaders demo, initial AWS cloud architecture, future bare metal
EOS SoCal USA Active outreach, Dapp development (TradeStuff), tools (EOS Drops) and incubation, cloud design with bare metal back-up
EOS Amsterdam Netherlands Active outreach, self-funded, 7x24 support, initial Google cloud architecture, future custom cloud
EOS Land Canada Strong acedemic/industry team mix, self-funded, cloud architecture across Digital Ocean and Linode, AWS hybrid future
Cypherglass USA Experienced team, self-funded, ICO Alert, strong hybrid architecture, bare metal + DataBank cloud architecture
Tokenika Poland Active outreach and technical contributor (EOSprojects, EOSfactory), self-funded, distributed bare metal architecture
GenerEOS Australia Active outreach, self-funded, charity Dapp incubator, hybrid AWS/Google cloud architecture
EOSYS South Korea Active outreach. technical contributor (EOSYS Tesnet), Dapps incubator: EOSScan, NOVA Wallet, bare metal, EOS Tower future
Block Matrix U.K. Technical contributor (Ansible), experienced team, self-funded, AWS clustered in Ireland and Virginia, USA

Launch Sequence and EOS Token Genesis

All ERC20 tokens will become non-transferable on Saturday, June 2nd, 2018. The mainnet launch sequence begins with a genesis snapshot of all registered ERC20 tokens on Saturday, June 2nd, 2018 at 10:00:00 AM UTC. During launch, an elected mainnet block producer boot node wll generate a seed-token genesis file. This JSON file maps EOS wallets created during registration to associated Ethereum wallets storing ERC20 token balances. Before any blockchain can actually initiate the token transfer, EOS requires stakeholder approval representing at least 15% of the issued and outstanding EOS tokens. More than one mainnet may arise during launch, but eventual consolidation down to a single mainnet is the prevalent expectation, probably during launch day or soon thereafter. Regardless, any mainnet that garners a block of 15% stakeholder votes will be allowed to create a genesis snapshot.

EOS Wallets
Various block producers are working together to provide a wallet for EOS; unfortunately, the wallet is behind schedule and lacks funding, jeopardizing its availability and/or stability at launch. However, Scatter is a new Chrome browser extension wallet that's already available weeks before launch. Block producer candidate EOSYS has announced (timepoint 1:09:13) an Android wallet that will be released in June, followed by IOS and Chrome extension wallets in Q3, 2018.

Important Proposals
An important GitHub proposal was made recently to add support for TypeScript software development, using AssemblyScript and Binaryen for compilation to WebAssembly. Expanding access into the TypeScript marketplace will significantly increase the rate of new applications for the EOS community.

Community Links
EOS.IO Website
EOS.IO White Paper
Block.one Website
EOS GitHub Project
EOS Net Block Producer Map
EOS Go Forum
EOS Reddit
EOS Hackathons
EOS Hackathon Voting
Airdrops for EOS
EOS Go Block Producer Candidate Search
EOS Countdown Registration Confirmation
EOS Authority Registration Confirmation
EOS Dawn 4.0 Testnet Monitor (Jungle)
EOS Dawn 4.0 Testnet Monitor (Trinity)
BitSpace EOS Block Producer Stats - Trinity Testnet
EOS Dawn 4.0 Testnet Monitor (Arrowhead)
EOS Authority Space Invaders Demo
Scatter EOS Wallet
Eosio.SG Voting Portal
Tokenika EOSprojects Portal
Tokenika EOSfactory

Secura vita, libertate et proprietate