EOSIO 1.2 Release: MongoDB Plugin Enhancements, Community Plugin Integrations, and Replay Optimization
Today we are pleased to release the next incremental version of EOSIO, V1.2.0. You can view the detailed release notes here on Github, and find documentation on the EOSIO Developer Portal.
We’re continually collecting feedback on how the community is building applications on the platform and are consistently improving the developer experience on EOSIO. To that end, in addition to release notes and documentation, the Block.one Developer Relations team — in coordination with the C++ Development and Public Communications teams — will be providing an easy-to-digest summary of the features and benefits of each release and its implications on our goals for the platform. Continue reading below to learn about release V1.2.0.
Highlights in 1.2.0:
Ongoing MongoDB Enhancements (#4733, #4756)
We have continued to enhance the MongoDB Plugin that was released in V1.1 last month. The Plugin allows your application to store blockchain data in Mongo, enabling more scalable and convenient queries of that data without putting a load on the network nodes. The MongoDB Plugin in V1.1 could be used instead of the history plugin for get_actions and get_transactions. The V1.2 release extends the functionality of the mongo_db_plugin to include get_key_accounts and get_controlled_accounts, both of which can be stored in the existing accounts collection document.
Additionally, we added abi caching to speed up serialization as most of the time an application would create the abi_serializer from the stored abi. This should reduce overall resource burden and speed up your applications’ ability to process data from the MongoDB.
Integrating with External Community Extensions (#5026, #4901)
As the EOSIO developer community continues to grow and more specific needs arise for the platform, we’re recognizing the benefits of a simple way for external extensions to integrate with a node. For example, the EOSIO SQL plugin maintained by SOCI created the ability to register blockchain data into an SQL database, while the ZeroMQ plugin for nodeos publishes all actions and all balance updates to a ZeroMQ PUSH socket. We have integrated support for these extensions in the current release.
In the future, we may continue to curate and support community extensions that provide commonly needed functionality to the EOSIO platform. If your team is working on an extension that may be of interest to the broader developer community please feel free to reach out to our Developer Relations team via email at firstname.lastname@example.org for support.
Replay and Resync (#5130)
As the blockchain grows, the time needed to set up a new node and replay the chain will continue to rise. This release includes a number of performance enhancements related to reducing the replay time for the first 9M blocks by %50 and to a new mode of validation that helps nodes sync and stay in sync (light validation).
Full List of 1.2.0 Release Issues:
Pull Requests into Develop
- #4710 fixes for launcher (mostly used internally in tests)
- #4733 Mongo Optimizations (ABI Caching)
- #4813 Integration Tests (Low Ram)
- #4791 Cleos Memory Leak
- #4799 Cleos listproducers support for R1 keys
- #4819 Cleos wallet create and create keys now write to files by default for security
- #4756 Add key_accounts and controlled accounts to MongoDB
- #4843 minor fix
- #4866 test cleanup
- #4868 integration tests support for bnet
- #4774 README updates
- #4853 RPC access for updating black/white lists
- #4854 code cleanup
- #4891 Better RPC/Cleos error reporting for bad requests
- #4905 integration test fixes
- #4946 OSX build script display changes
- #4908 RPC/Cleos support for sha256 secondary indices
- #4952 remove support for running wallet RPC on nodeos
- #5002 fix off by one in RPC response for get table
- #5005 version response from nodeos and keosd based on tagged release and local changes
- #4931 fix cleos asset transfers for non eosio.token assets
- #4870 multicore boost builds
- #4739 add filter-out option to allow blacklisting instead of whitelisting in history_plugin
- #5077 mirror SDK change to crypto.h
- #5090 mirror SDK change to fix asset overloading
- #4901 better signaling for scheduled transactions to plugins
- #5026 Dev additional plugins
- #5066 support for inline actions and filter-out in mongodb
- #5130 replay performance optimizations & sync optimization: light verification
- #5101 customizable binary names
- #5097 Updated peer logging on bad packets
- #4511 Ricardeos script
- #5082 find_plugin safety
- #5139 fix for fedora build
- #4892 Get transaction ID from cleos/RPC
- #5125 rate limit reaping of dead connections
- #5096 configurable system account name
- #5122 restore eosiocpp and clean up installer
- #4721 wasm/abi paths now relative to contract directory
- #4972 fix for enable-stale-production
- #5131 only fetch unapplied transactions when needed
- #4924 clean up tic-tac-toe example
- #5154 fix for http_client_plugin malformed host header
- #4566 style cleanup in confirmation checks
- #5158 remove deprecated account_history_plugin
- #5161 fix for MongoDB filter-on configuration
- #5160 remove WAST support from cleos
- #5171 reclassify log message as debug
- #5179 better logging of conflicted port bindings
- #5201 launcher boot fixes
- #5061 support for 160-bit keys and key encoder type in cleos/RPC
- #5200 smoke test stability improvements
- #4960 resolve linker errors involving env.free
- #5203 apply MongoDB filter to transaction traces
- #5198 Read-only mode for nodeos
- #5018 Cleos convert command
Stay tuned for future updates by subscribing to our mailing list on the EOSIO Developer Portal. We are excited to be continually improving the usability of the software for EOSIO developers as we continue laying a foundation for the most scalable blockchain development.
All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
Important Note: All material is provided subject to this important notice and you must familiarize yourself with its terms. The notice contains important information, limitations, and restrictions relating to our software, publications, trademarks, third-party resources and forward-looking statements. By accessing any of our material, you accept and agree to the terms of the notice.