BlockFlock is a simple caching layer compatible with the Hive-Engine protocol. It is designed to be used in front of a classic Hive Engine node.
You will need Go 1.22+ installed.
git clone https://github.com/CADawg/BlockFlock
cd BlockFlock
go build
cp config.example.json config.json
./BlockFlock
# Or if you want to automatically download blocks over time
./BlockFlock auto
It caches only one call, getBlockInfo
. This is because it takes a fair time to request and the data doesn't change once it's set. Otherwise, it pipes the request straight through to the real hive engine node.
This is built on top of the very fast BadgerDB, and once a block is cached, it can respond within 3 milliseconds (excluding network time). This is considerably faster than the 40 - 70 ms I got when requesting from the node directly from the same rack in the datacenter.
When an incorrect input is specified, if it can't be decoded, it will not pass it on to the hive engine node, and you will receive a response as follows:
{
"jsonrpc": "2.0",
"id": 0,
"error": {
"code": -69,
"message":"invalid character '}' looking for beginning of value"
}
}
Apart from the error cases where there is a malformed input, we aim to be 1:1 compatible with Hive Engine, please report any inconsistencies in the issues tab.