-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Conversation
I just noticed, the options like |
well it works, kind of. Nodeos is processing blocks, but at a strangely slow pace. |
config file arguments: sounds like a bug. ubuntu 18.10: I just got stuck on this:
|
Whoops. I forgot to switch branches. Trying ubuntu build again. |
uh oh. It was that slow with the options in config.ini:
and command line:
Now, I removed those lines from config.ini, and the command line is
Now it is running fast and as expected. |
but the log says " thread-0 history_log.hpp:80 write_entry" but the state-history directory contents aren't changing. Something is totally weird going on. I'll do a clean build, maybe there were some leftovers from merging. |
cleaned andn rebuilt, the same effect. Nodeos is not updating files in state-history. Then I stopped nodeos, deleted state-history directory, and started nodeos. Now it's slow, and updating the state history files. So it went into some state that made it think it was writing, but it was not, and after deleting the history files, it went back to actually writing. Looks like a bug in |
But it's only updating the trace history, but not the state history:
|
@cc32d9 are you getting logs like this? If so I reproduced it:
|
This patch to
|
Here's ubuntu 18.10 starting from a snapshot from OSX. I had to apply the patch above:
|
yes, I see the same messages with value.size() <= MAX_NUM_ARRAY_ELEMENTS |
cool, with this fix it's running fast as it's supposed to, and updating both log files |
Interestingly, nodeos with the state history plugin takes only about 3% more CPU time than the bare one. Still I think it will be better with LZ4, or maybe even more good, is to support different compression options, and also no compression |
Change Description
The state history plugin gives external processes a way to track chain state (tables), transaction history, and blocks. External processes could store this data into a database (e.g. https://github.com/EOSIO/fill-postgresql ), transform the data to meet app needs (e.g. a https://github.com/EOSIO/demux-js action handler), or index the data and provide an end-user api (e.g. a
/v1/history
replacement).The plugin stores:
--chain-state-history
)--trace-history
)The plugin allows clients to fetch via block index:
--chain-state-history
)--trace-history
)The plugin stores its data in files which can move between machines. BPs could provide these files along with snapshots, reducing the need for new nodes to replay.
The plugin provides a streaming websocket interface. To reduce the load on nodeos, the interface uses a serialized binary format instead of JSON and the plugin does minimal processing to handle requests. However, since this interface provides a high data volume and has no abuse mitigations, we don't recommend publicly exposing its port.