Releases: EOSIO/eos
STAT-2017-11-30
Merge pull request #835 from EOSIO/p2p-sync-ignore-txns-stat-221-gh-833 fix for notice forwarding
STAT-2017-11-25
Merge pull request #781 from brianjohnson5972/genblock-refactor-config Added configuration for pending transaction queue depth limit.
EOS.IO Dawn v1.0 - Pre-Release
EOS.IO Dawn 1.0 is the first pre-release of the EOS.IO SDK (Software Development Kit).
The Dawn series of EOS.IO software releases represent early alpha-quality software suitable for use by those looking to get a head start on the EOS.IO ecosystem.
Table of Contents
- Who This Release is For
- Phase 1 Features Included in this Release
- Phase 2 Features Included in this Release
- Known Open Issues
- History of Issues
Who This Release is For
Whether you are an experienced C++ developer interested in blockchain or a seasoned blockchain expert you are welcome to experiment with the first pre-release. Some familiarity with Linux/C++ helps.
If you are unfamiliar with both Linux and C++, please wait for a more end-user friendly release. The current release is for experienced developers.
Currently EOS.IO has been tested on Ubuntu 16.10 and Mac OS Sierra. EOS.IO nodes should be able to run on a minimum hardware requirement of Core i7 CPU, 16GB RAM.
Phase 1 Features Included in this Release
Per the EOS.IO Roadmap, this release represents Phase 1, the Minimal Viable Testing Environment.
Programs
- a standalone node eosd that produces blocks and adds them to the blockchain
- a client eosc that provides a command line interface
- eos-walletd provides a client wallet server
- a utility launcher that creates a local testnet
Scripts
- build.sh to install dependencies and build eos
- eoscpp for smart contract developers to build contracts
Example Contracts
- native contracts,
- native currency
- staking
- producer voting
- code updating
- permission updating
- example contracts
- dice
- exchange
- simpledb
- social
Documentation
- virtual machine API
- deferred / inline messaging
- user-local storage for contracts
- 3 built in database types
- basic developer documentation
- installation and setup
- build and deployment
- tutorial for trying out blockchain commands
- Doxygen based API reference
Phase 2 Features Included in this Release
In addition, we are releasing these features of Phase 2 ahead of schedule:
- functional distributed networks and
- first complete rewrite of networking code since BitShares 1.0
- virtual machine sandboxing
- contracts are limited to about 10 ms execution time
- contracts are rejected if they contain floating point operations
- contracts are restricted to 64KB of RAM
- contracts are restricted to reading database tables in scope
Phase 2 Features Not Included in this Release
Not included in this release are these features of Phase 2:
- resource usage and rate limiting (Dawn 1.2)
- genesis snapshot of ERC20 (Dawn 1.1)
- inter blockchain communication (Dawn 2.0)
- these native contracts:
- producer proxy voting (Dawn 1.2)
- EOS.IO Storage (Dawn 2.0)
- feature upgrade voting (hard forks) . (Dawn 1.2)
- stake delegation (renting) (Dawn 2.0)
Known Open Issues
APIs incomplete
The APIs are known to be incomplete and are not expected to be stable throughout the 1.x releases.
- In v1.0 there is no API exposed for Accounts.
- P2P code may become unstable when stressed due to lack of rate limiting
a. work around - keep all producers on a single node
Benchmarking
We have tools that have enabled us to benchmark the code at over 10,000 TPS per second under certain controlled conditions, but it remains too early for anyone to reliably reproduce benchmarks and/or interpret the results for a number of reasons:
- you must operate a multi-node network and push transactions to multiple different nodes
- block production algorithm does not currently time-bound generation which means benchmarks do not properly capture "backlog" or generation bottlenecks
- the HTTP interface is currently a bottleneck in submitting transactions to the network
- the signature verification is not yet multi-threaded
This release is designed to help developers build their applications. It does not provide a benchmarking toolkit.
Disclaimer
block.one is a software company and is producing the EOS.IO software as free, open source software. This software may enable those who deploy it to launch a blockchain or decentralized applications with the features described above. block.one will not be launching a public blockchain based on the EOS.IO software. It will be the sole responsibility of third parties and the community and those who wish to become block producers to implement the features and/or provide the services described above as they see fit. block.one does not guarantee that anyone will implement such features or provide such services or that the EOS.IO software will be adopted and deployed in any way.
All statements in this document, other than statements of historical facts, including any statements regarding block.one’s business strategy, plans, prospects, developments and objectives are forward looking statements. These statements are only predictions and reflect block.one’s current beliefs and expectations with respect to future events and are based on assumptions and are subject to risk, uncertainties and change at any time. We operate in a rapidly changing environment. New risks emerge from time to time. Given these risks and uncertainties, you are cautioned not to rely on these forward-looking statements. Actual results, performance or events may differ materially from those contained in the forward-looking statements. Some of the factors that could cause actual results, performance or events to differ materially from the forward-looking statements contained herein include, without limitation: market volatility; continued availability of capital, financing and personnel; product acceptance; the commercial success of any new products or technologies; competition; government regulation and laws; and general economic, market or business conditions. Any forward-looking statement made by block.one speaks only as of the date on which it is made and block.one is under no obligation to, and expressly disclaims any obligation to, update or alter its forward-looking statements, whether as a result of new information, subsequent events or otherwise.