v0.1.0-beta4
sduchesneau
released this
23 Jun 21:44
·
768 commits
to develop
since this release
RELEASE DATE: 2020-06-23
We’re constantly working on improving the user experience with each release, so here’s what changed since our last update:
Public API Changes
On the Public API side of things, which is meant for developers querying the data on chain through the dfuse hosted services or through a local version of the dfuseeos
product, we introduced 1 BREAKING change for 2 fields;
Changed
- BREAKING: For more clarity when using these fields, the
eosws
transaction lifecycle fieldscreation_irreversible
&cancelation_irreversible
were renamed respectively todtrx_creation_irreversible
anddtrx_cancelation_irreversible
.
System Administration Changes
On the side of System Administration, which is meant for developers running a local version of the dfuseeos
product, we introduced many changes, some of them BREAKING;
Added
- App:
mindreader-stdin
— This app relays blocks and produces one-block-files (or merged-blocks-files) based onstdin
, without trying to managenodeos
. This is an alternative way of seeding your dfuse system if you have existing tooling for managing nodeos operations. It uses only a subset of themindreader
flags and does not stop on TERM signal until it receives an EOF signal fromstdin
. - App:
booter
— We’re especially excited about this new app! This app allows a boot sequence to be applied to a new chain (see the README for more information). It also brings new flags with it:--booter-bootseq
— File path to the desired boot sequence (default: "./bootseq.yaml").--booter-data-dir
— Booter's working directory (default: "{dfuse-data-dir}/booter").--booter-nodeos-api
— Target API address to communicate with underlyingnodeos
(default: “http://localhost:8888/”).--booter-private-key
— Genesis private key having control over aneosio
account to be able to create all related system accounts & contracts.--booter-vault-file
— Wallet file that contains encrypted key material.
- Command: dmesh — This command was added to the
dfuseeos tools
with 2 new flags:--dsn
&--service-version
. This command allows you to inspectdmesh
search peers. It currently only supports etcd (the server in which all the information is stored, see this graphic). - Command: kv — This command was added to the
dfuseeos tools
with 8 new subcommands:get
,scan
,prefix
,account
,blk
,blkirr
,trx
,trxtrace
. This command allows you to retrieve data fromtrxdb
at a lower lever (e.g. only rows of data). - Command: db — This command was added to the
dfuseeos tools
with 2 new subcommands:blk
,trx
. This command allows you to retrieve data fromtrxdb
at a higher level (e.g. assembling multiple rows into a data structure). - Command:
check trxdb-blocks
— This command was added to thedfuseeos tools
and ensures linearity of irreversible blocks in storage, which is useful to know if you've missed some block ranges when doing parallel insertions into yourtrxdb
storage. This relates totrxdb-loader
's job being done right. - Flag:
--mindreader-fail-on-non-contiguous-block
— This flag lets you enable themindreader
ContinuityChecker (default:false). Seemindreader
under the CHANGED section below. - Flag:
--log-level-switcher-listen-addr
— This flag lets you change the port to which you send your HTTP request to switch the log levels of a given component in real-time (default: ":1065") (see LOGGING.md). - Flag:
--common-ratelimiter-plugin
— This flag lets you enable a rate limiter plugin (default: "null://"). - Flag:
--pprof-listen-addr
— This flag enables you to change the port listening topprof
(default: ":6060"). - Flag:
--search-common-dfuse-events-unrestricted
— This flag lets you lift all restrictions on Indexing Limits for searching dfuse Events (max field count, max key length, max value length). - Flag:
--mindreader-discard-after-stop-num
— This flag lets you discard all blocks after stop-num if it is set totrue
(default:false). See themindreader
bullet below. mindreader
now writes remaining one-block files after stop-block if--mindreader-merge-and-store-directly
is set, unless--mindreader-discard-after-stop-num
is set totrue
. This improves the experience of a user following PARTIAL_SYNC.md steps, producing merged files up to a certain block, then switching to one-block files with a separate merge instance. This improves the parallel reprocessing experience.- The auto-backups feature will now only trigger if
os.Hostname()
returns the non-empty value of one of these new flags:--node-manager-auto-backup-hostname-match
--node-manager-auto-snapshot-hostname-match
--mindreader-auto-backup-hostname-match
--mindreader-auto-snapshot-hostname-match
- The
trxdb
“deduper” now reduces storage by removing identical action data and calls the "reduper" to add this data back. EOS Mainnet saves 20%(!) off of storage because of this.
Changed
- BREAKING:
eosdb
was renamed totrxdb
(the storage location where blocks & transactions are saved). Verify and adjust your command arguments and 'dfuse.yaml' file for references toeosdb
. Specifically,eosdb
’shealthz
endpoint field is nowtrxdb
’shealthz
endpoint field, so you might need to adjust your monitoring. - BREAKING: The search flag
--search-common-dfuse-hooks-action-name
was renamed to--search-common-dfuse-events-action-name
. - BREAKING: The
abicodec
app default value for its--abicodec-cache-base-url
and--abicodec-export-cache-url
flags was changed to{dfuse-data-dir}/storage/abicache
(fixing a typo inabicahe
). To remain compatible, simply do a manual rename on disk before starting the updated version such asmv {dfuse-data-dir}/storage/abicahe {dfuse-data-dir}/storage/abicache
. - BREAKING: The
fluxdb
flag--fluxdb-enable-dev-mode
was removed. Use--fluxdb-enable-live-pipeline=false
to get the same behavior as before. mindreader
ContinuityChecker is not enabled by default anymore.- The value of
node-manager
andmindreader
’s respective--shutdown-delay
flags is now also applied to commands likesnapshot
orbackup
, so they become "not-ready" on /healthz endpoint, allowing a load-balancer to take it out of the pool before they actually stop working. - The
dfuseeos tools check blocks
command was renamed todfuseeos tools check merged-blocks
. - The
search
roarCache is now based on a normalized version of the query string (e.g.a:foo b:bar
is now equivalent tob:bar a:foo
, etc.). Note that this will make previously-cached entries useless. - The
--node-manager-number-of-snapshots-to-keep
and--mindreader-number-of-snapshots-to-keep
flags now default to0
, which means an unlimited number of snapshots will be kept, instead of their previous default of5
which only kept the latest 5 backups. - Various startup speed improvements for the
blockmeta
,bstream
, andsearch-indexer
apps.
Removed
- The
--search-indexer-num-blocks-before-start
flag was removed fromsearch-indexer
. Because of that,search-indexer
now automatically resolves its start block.
Fixed
trxdb
now correctly implements "BatchGet" on most operations, giving a great(!) performance increase over previous versions.- Global flags and specifically the
--search-common-dmesh-dsn
flag are now correctly parsed from the config file. search-indexer
no longer overflows on negative startblocks on new chains, it fails fast instead.search-archive
relative-start-block truncation now works.search-forkresolver
no longer throws a nil pointer (app was previously broken).mindreader
now has a more resilient shutdown handling (expects EOF onnodeos
stdout).- The
mindreader
andnode-manager
logs fromnodeos
that go through zap now have their level parsed correctly instead of all being seen as DEBUG.