Releases: helium/blockchain-etl
Handle Transaction Hash Collisions
State channel issues caused duplicate transactions to be included in later blocks. ETL relies on transaction hashes being unique, so it failed on those existing transactions.
We now ignore existing transactions hashes at the cost of the block transaction count being of by one or two for the blocks where this occurs. This should hopefully not happen again.
Blockchain Variables and Fixups
- Adds calming to new hotspots so they don't show as offline because they haven't synced yet
- Adds payee actor for token burn transactions. This was missing in previous transactions and we're going to let those go as historical inaccuracy for now
NOTE: This release requires NO migrations, but is REQUIRED to pick up new chain variables that will be activated soon
Gateway Status and Location fixes
- Bump blockchain core for libp2p improvements
- adds peer_timestamp to gateway_status to track last seen peer record
timestamp - Fix a problem where peer height was not returned correctly
- Fixes ordering of coalesced values for gateway_status which would cause missing hotspot heights
- Use postal_town and locality_3 to increase city lookup success
NOTE: This release requires a short migration. Make sure to stop ETL before running the migration
Owner Payer Transactions
This release fixes a problem for add_gateway and assert_location transaction where the payer is empty. The blockchain rules will interpret that as the owner taking responsibility for the payment but ETL did not take this into account.
Early ETL Crash
On clean runs of ETL the application would crash when it came across one of the first state_channel_close_v1 transactions. This was due to state channels allowing un-added gateways to transit packets.
ETL was not handling this correctly. This will fix it by handling state channel gateways that are not in the ledger.
Required Blockchain Update
- Handle oracle price predictions better earlier in the sync process
- Pick up two new required chain variables in blockchain-core
- Bump assumed valid block
Transaction Count in Stats
- Adds total transaction count in the
/v1/stats
results
Oracle Price Predictions
- Adds Oracle price predictions as a table to reflect earliest expected time and price changes
- Breaks out gateway_status "online" fields to the values that determine that online status (poc_interval and last_challenge).
- Upgraded blockchain core to pick up new chain variable that tightens some transaction validations
Account and Gateway Inventory
This changes gateway_ledger and account_ledger to be proper tables (gateway_inventory, account_inventory, respectively) instead of materialized views.
These tables are updated with triggers on their sources (gateways, accounts) to keep them up to date.
This version will break running http servers which will need to be udpated to at least version 1.2.9 to account for these changes.
NOTE: This does not require a replay, but does require you to stop etl, apply migrations and start again.
NOTE: If you build from source and the build fails for enacl
please remove the _build/default/lib/enacl
folder and run make && make release
again
State Channel Support
- Picks up compression support from libp2p for gossip compression
- Adds State Channel open/close transaction and actor support
There are a number of state channels on the main net blockchain already, if you want to pick those up you will have to do a full resync unfortunately. If you don't mind a few initial missing state channels in the database just stop, run the migrations and start up again.