description |
---|
Echo 0.13 Release |
One of the main network updates is full sidechain support, which includes Bitcoin with BTC cryptocurrency and Ethereum with ETH cryptocurrency, sidechain support for ERC20 tokens on the Ethereum. The details what is the sidechain here https://github.com/echoprotocol/echowiki/blob/master/.gitbook/assets/echo-sidechains-whitepaper.pdf
Testnet uses the Bitcoin Testnet network for BTC sidechain and Ethereum Rinkeby for Ethereum sidechain. Now interaction with sidechains is available in the Echo mobile wallet:
- Echo Wallet on Google Play - https://play.google.com/store/apps/details?id=org.echo.wallet&hl=en
- Echo Wallet on App Store - https://apps.apple.com/ru/app/echo-wallet/id1447877175
In addition, all necessary methods for working with sidechains are available in libraries and frameworks:
- EchoJS-lib - https://www.npmjs.com/package/echojs-lib
- EchoPy-lib - https://pypi.org/project/echopy-lib/
- Echo iOS Framework - https://github.com/echoprotocol/echo-ios-framework
- Echo Android Framework - https://bintray.com/echo/mobile/android-framework-stable/3.7.0
Sidechains support will be added for the Desktop Wallet for a while.
In the last two versions, changes and updates were made to the consensus related to its optimization and correction. The main change is the exclusion of the blocks producing by the network without transactions. Now the network goes into standby mode in case of missing transactions in the memory pool. This change allows to optimize networking experience by eliminating unnecessary messages from being sent over the network, and optimize the database size by eliminating the storage of unnecessary blocks. Each block becomes more "expensive" and "significant" which improves the quality of the confirmation of the transaction by subsequent blocks.
See the technical details of the Protocol here - https://github.com/echoprotocol/echowiki/blob/master/.gitbook/assets/powr-whitepaper.pdf
The operator of node is given the opportunity to open the account registration through its nodes, paying the cost of registration, receiving for this delegation opportunity to participate in the consensus from the registered account. In order to ensure that users do not abuse the possibility of free registration, each registration now requires some work on the registrar 's side. At the same time, the complexity of the work performed is set up on the side of the node registrar, which allows to reduce or, on the contrary, increase the work time execution and spent resources.
More information about the node startup parameters here.
Now Echo supports all versions of Solidity up to and including 0.5.11. For the user in Echo, contracts can be compiled by both the original Solc and Echo-solc, an extended version of solc that has support for additional methods (the list of methods can be seen here).
The relevant list of the supported versions and references to compilers are here - https://echoprotocol.github.io/solc-bin/bin/list.json
As Echo uses EdDSA
rather ECDSA
, as in Ethereum, the ecrecover
method in smart contracts is nonvalid and should not be used. You should use edverify
method to confirm your account and verify your signature.
Detals
Now getting contract logs is implemented in a similar way to how it works in Ethereum network with the option of complex filtering by topics. Details
More details and a low-level changelog is below.
- Set transaction expiration time from now, not the last block time
- Bug with node synchronization on mac OS
- Path to datadirs from presets
- Difference between number of reversible blocks and undo history max size
- Field
owner_approvals_to_remove
from proposal_update_operation
- Bitcoin sidechain
- Operation sidechain_btc_approve_aggregate_operation
- Field
bool is_sent
tobtc_withdraw_object
to check whether the funds were sent to the address specified in the withdrawal operation - Field
uint32_t echo_block_number
tobtc_withdraw_object
block number in ECHO when BTC withdrawal request was made - Field
bool is_relevant
tobtc_address_object
to check whether the current recharge address is up to date
- Fields
reciever
,amount
to block_reward_operation - Field
x86_64_maximum_contract_size
to chain_parameters for limit for x86 contract size - Database API
- New argument
type
(eth
orbtc
or empty for all sidechains) for get_account_withdrawals, get_account_deposits - Method get_block_rewards
- New argument
- Bitcoin sidechain
- Field
committee_member_ids_in_script
ismap<account_id_type, echo::sidechain::btc::public_key>
for [btc_address_object
,btc_intermediate_deposit_object
,btc_aggregating_object
] - Rename method
get_active_committee_set
toget_active_committee_pub_keys_map
- Field
- Wallet API
- Rename
get_btc_addresses
to get_btc_address
- Rename
- Frozen balances are taken into account now. Changed method
get_balance
ininterval_tree_selector_impl
- Maximum number active committee members of
19
now - Database API
- Method get_account_deposits returns
variants
now - Method get_account_withdrawals returns
variants
now` - Rename
get_btc_addresses
to get_btc_address - Remove
get_contract_logs
. Renameget_contract_logs2
to get_contract_logs
- Method get_account_deposits returns
- Bitcoin sidechain
- Field
block_number
frombtc_withdraw_object
- Object
compare_intermediate_by_ready_to_send
- Operation
sidechain_btc_approve_withdraw_operation
- Field
- Field
rewards
in block_reward_operation - Field
next_available_vote_id
fromglobal_property_object
- Field
committee_member
from committee_frozen_balance_deposit_operation - Field
network_fee_percentage
fromaccount_object
- Fields
reserve_percent_of_fee
,network_percent_of_fee
,committee_pay_vesting_seconds
,max_predicate_opcode
,maximum_committee_count
from chain_parameters - Mechanism increase registration fee
- Fallback signatures verification
- Block reward are accumulated and issues with block_reward_operation during maintenance
- Committee_member_create_operation at zero deposit
- Incorrect withdraw in Ethereum sidechain
- Bug with updating ethereum address of a committee member
- Sidechain called twice in the emulator
- Signatures check in method
aggregate_btc
frombtc_sidechain
- SIGSEGV during messages processing
- Problem with block application because of invalid state of websocket
- Deprecated-copy error with gcc 9.x
- Build macOS with unused-parameter as error
- Fallback message generation
- Updated Ethereum sidechain to reflect the absence of empty blocks
- Implement Child Pays For Parent logic and related functionality
- Separate
on_maintanance
andon_committee_update
signals in Database - Improved synchronization in echorand plugin
- Echorand messages are dispatched asynchronously
- Handling zero-balances and zero-block at chain start
- Contract results getters are optimized
- Optimize
interval_tree_selector::get_points
- Remove empty blocks
- Added surpluses mechanism for committee frozen balance