v0.17.0
The hardfork is schedule for Wednesday, 4 April 2018 9:00 PM UTC (5:00:00 PM EDT)
1. Implement ability to use cli_wallet from the command line
Output the result of the work in the order of pushing commands.
We can add program option called "commands".
If cli_wallet is run this way: ./cli_wallet --commands="do_this&&do_that", then cli_wallet will execute command in sequence and will print result output of the commands execution in sequence also.
Interactive mod will be disabled, so after it will immediately terminate.
Example:
./cli_wallet --server-rpc-endpoint="ws://127.0.0.1:8091" --commands="set_password 1qaz && import_key XXX"
./cli_wallet --server-rpc-endpoint="ws://127.0.0.1:8081" --commands="unlock 1qaz && create_account hello hipe \"{}\" true && get_account hipe"
2. Support the definition of languages for post in json metadata.
3. Daemon’s logs output in JSON format
Log subsystem now has additional output mode in json-format, which can be used for post-processing with easy extracting fields from log records. To activate json-output you should replace the section log.console_appender with log.json_console_appender in config.ini.
4. Fixed unit-tests and add calculated economics unit-tests
We upgraded Steem unit-tests to Golos constants, and added additional unit-tests for checking switching to HF17.
5. New Parallel API
At first an instance of blockchain (golosd) could process only one API request queue. It was a reason of bottleneck in the API, which golosd node could execute. A new architecture design allows to process multi concurrent control for different queries API.
Key Features:
- Dynamically Specify Plugins to Load
- Automaticly Load Dependent Plugins in Order
- Plugins can specify commandline arguments and configuration file options
- Program gracefully exits from SIGINT and SIGTERM
Each plugin has a simple life cycle:
- Initialize - parse configuration file options
- Startup - start executing, using configuration file options
- Shutdown - stop everything and free all resources
6. Linear rewards curve
As were discussed with community the rewards curve was switched to linear. With the introduction of a linear reward curve everyone will have a say directly proportional to their stake.
7. Comment reward beneficiaries
All content can now specify beneficiaries to receive a part of their author rewards. The beneficiaries are specified in the extension field of the comment_options_operation and is a sorted vector (by account name) of account name, weight pairs. The beneficiaries can only be specified once and must be specified before any votes are cast on the comment. Most apps are already adding a comment_options_operation in the transaction that creates the comment, so this should not be much of a challenge to add to existing apps
8. Single cashout window (1 week)
99% of votes are cast in the first 7 days after creation. This elimates the need for a second payout to accumulate value to a post and simplifies logic significantly.
9. The comment depth limit has been increased to 255.
The limitation was created in Steem (and inherited by Golos) to make UI design easier. We decided to upgrade this limit to 255, which can be easy increased to 64k in the future. 64k should be more than enough depth for anybody. (Reddit has a limit of 10,000)