EOSIO History-Tools v1.0.0 Release Notes
This release contains the first release of EOSIO History-Tools fill-pg
v1.0.0 and is compatible with EOSIO v2.1.0. All other tools included in the prior alpha releases of History-Tools are now deprecated.
fill-pg
fill-pg
fills postgresql with data from nodeos's State History Plugin. It provides the following:
- Header information from each block
- Transaction and action traces, including inline actions and deferred transactions
- Contract table history, at the block level
- Tables which track the history of chain state, including
- Accounts, including permissions and linkauths
- Account resource limits and usage
- Contract code
- Contract ABIs
- Consensus parameters
- Activated consensus upgrades
PostgreSQL table schema changes
This release completely rewrites the SHiP protocol to SQL conversion code so that the database tables now directly align with the data structures defined in the SHiP protocol. The new table schema is not compatible with the schema used by previous releases.
Here are the basic rules for the conversion:
- Nested SHiP
struct
types with more than one field are mapped to SQL custom types. - Nested SHiP
vector
types are mapped to SQL arrays. - SHiP
variant
types are mapped to a SQL type or table containing the union fields of their constituent types.
Consequently, instead of having their own tables in previous releases, action_trace
, action_trace_ram_delta
, action_trace_auth_sequence
and action_trace_authorization
are arrays nested inside transaction_trace
table or action_trace
type. The SQL UNNEST
operator can be used to flatten arrays into tables for query.
The current list of tables created by fill-pg
are:
- account
- account_metadata
- block_info
- code
- contract_index_double
- contract_index_long_double
- contract_index128
- contract_index256
- contract_index64
- contract_row
- contract_table
- fill_status
- generated_transaction
- global_property
- key_value
- permission
- permission_link
- protocol_state
- received_block
- resource_limits
- resource_limits_config
- resource_limits_state
- resource_usage
- transaction_trace
Data migration from prior releases
The schema used by fill-pg
has changed from prior alpha releases. At present no data migration tool is available, so data may be manually migrated, regenerated by replaying from the desired block number, or exist side by side in two schemas, with older blocks in the v0.3.0 schema and newer blocks in the new schema. Use of the --pg-schema
option will facilitate the transition.
Full details of the differences can be found via diff of plain text backups of each schema using pg_dump
.
SHiP protocol changes (#10268)
SHiP protocol has been changed to allow a client to request the block_header only instead of the entire block. fill-pg
has been updated to utilize this feature when the nodeos
it connects to supports it.
Deprecation and Removal Notices
fill-rocksdb
, wasm-ql-rocksdb
, combo-rocksdb
,wasm-ql-pg
, and history-tools
have been deprecated and disabled as of this v1.0.0 release.
Changes
- (#118) refactor
- (#117) Fix unpack problem when delta is empty
- (#116) Add instructions on how to use docker-compose in the readme file
- (#114) Add integration test for release/2.1.x branch
- (#113) fill-pg integration test
- (#112) Push history-tools to Dockerhub
- (#111) Docker - Fix some file location errors
- (#110) Integration tests - some initial files
- (#109) Transition to buildkite - delete existing travis yaml file and create one for buildkite
- (#108) Abieos submodule update
- (#107) Update abieos submodule
More details are available on the README page
Disclaimer: All repositories and other materials are 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 repositories and other materials, you accept and agree to the terms of the notice.