Hive Pressure #1: A New Hope
A long time ago, in a block far, far away…
No, wait, this is NOT the story you are looking for ;-)
This part was going to be filled with retrospectives, the origins of the ~~Steem~~ Pressure series, stories about events that caused us to fork from ~~Steem~~ but that would be just a waste of time, and time is a resource that we can’t afford to waste.
TL;DR: ~~Steem~~ is no longer what we knew it to be.
> _“No Ned to worry.”_
> - Anonymous
Our future is in our hands.
We are Hive now.
# Paint it Hive
Time to update promo materials.
https://www.youtube.com/watch?v=vlW9lDE3DuI
# New Net, New Nodes
Since many of us have just upgraded their toys to Hive, at the time of the HF23, most of what we used is now Hive compatible.
## Seed nodes
```
seed.openhive.network:2001 # gtg
seed.roelandp.nl:2001 # roelandp
hiveseed-se.privex.io:2001 # privex (SE)
steemseed-fin.privex.io:2001 # privex (FI)
seed.liondani.com:2016 # liondani
hived.splinterlands.com:2001 # aggroed
seed.hivekings.com:2001 # drakos
node.mahdiyari.info:2001 # mahdiyari
anyx.io:2001 # anyx
seed.buildteam.io:2001 # thecryptodrive
hive-seed.lukestokes.info:2001 # lukestokes.mhth
hive-seed.arcange.eu:2001 # arcange
seed.chitty.me:2001 # chitty
```
## API nodes
https://api.openhive.network
https://api.hive.blog
https://anyx.io
https://api.hivekings.com
https://api.pharesim.me
https://hived.hive-engine.com
https://rpc.esteem.app
https://hived.privex.io
https://techcoderx.com
# DIY
If you want to run your own node, here are some quick tips that can be useful:
## Seed Node
Configure your build with:
```
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DLOW_MEMORY_NODE=ON \
-DCLEAR_VOTES=ON \
-DSKIP_BY_TX_ID=OFF \
-DBUILD_STEEM_TESTNET=OFF \
-DENABLE_MIRA=OFF \
-DSTEEM_STATIC_BUILD=ON \
../hive
```
Depending on your needs and resources, you might want to use either
`ENABLE_MIRA=OFF` or `ENABLE_MIRA=ON`.
`config.ini` for a seed node can be as simple as that:
```
plugin = witness
p2p-endpoint = 0.0.0.0:2001
```
This is intended to be used as a seed node, but you can easily extend it to be more useful by enabling a webserver endpoint and useful APIs such as `block_api` or `network_broadcast_api`. However, if you choose to add a plugin such as `account_by_key` or `market_history` you will have to replay.
## API Node
If you’ve read my ~~Steem~~ Pressure series you know that I no longer use a monolithic node. Instead, I use `jussi` to route specific methods to specialized endpoints.
- Account History Node (non-MIRA)
- Fat Node (MIRA)
- Hivemind
Please note that in my setup the Fat Node itself is *not enough* to feed the Hivemind instance because of the lack of a market_history plugin. Not an issue in my environment, because I’m running both nodes, and I prefer to run plugins on the low memory node where possible.
### Account History Node - reference configuration
Configure your build with:
```
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DLOW_MEMORY_NODE=ON \
-DCLEAR_VOTES=ON \
-DSKIP_BY_TX_ID=OFF \
-DBUILD_STEEM_TESTNET=OFF \
-DENABLE_MIRA=OFF \
-DSTEEM_STATIC_BUILD=ON \
../hive
```
We can’t use MIRA here, because we are going to use the pre-MIRA implementation of account history plugin: `account_history_rocksdb`.
Here’s reference `config.ini` file:
```
log-appender = {"appender":"stderr","stream":"std_error"}
log-logger = {"name":"default","level":"info","appender":"stderr"}
backtrace = yes
plugin = webserver p2p json_rpc
plugin = database_api condenser_api
plugin = witness
plugin = rc
plugin = market_history
plugin = market_history_api
plugin = account_history_rocksdb
plugin = account_history_api
plugin = transaction_status
plugin = transaction_status_api
plugin = account_by_key
plugin = account_by_key_api
plugin = block_api network_broadcast_api rc_api
p2p-endpoint = 0.0.0.0:2001
p2p-seed-node = gtg.openhive.network:2001
transaction-status-block-depth = 64000
transaction-status-track-after-block = 42000000
webserver-http-endpoint = 127.0.0.1:8091
webserver-ws-endpoint = 127.0.0.1:8090
webserver-thread-pool-size = 256
```
### Fat Node - reference configuration
Configure your build with:
```
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DLOW_MEMORY_NODE=OFF \
-DCLEAR_VOTES=OFF \
-DSKIP_BY_TX_ID=ON \
-DBUILD_STEEM_TESTNET=OFF \
-DENABLE_MIRA=ON \
-DSTEEM_STATIC_BUILD=ON \
../hive
```
For the fat node, I use the MIRA build
Here’s reference `config.ini` file:
```
log-appender = {"appender":"stderr","stream":"std_error"}
log-logger = {"name":"default","level":"info","appender":"stderr"}
backtrace = yes
plugin = webserver p2p json_rpc
plugin = database_api condenser_api
plugin = reputation
plugin = reputation_api
plugin = block_api
p2p-endpoint = 0.0.0.0:32001
p2p-seed-node = gtg.openhive.network:2001
webserver-http-endpoint = 127.0.0.1:8091
webserver-ws-endpoint = 127.0.0.1:8090
webserver-thread-pool-size = 256
```
## Storage needs:
As always, make sure that you have very fast storage.
|Node type|Storage|
|---------|-------|
|AH Node |600 GB|
|Fat Node |400 GB|
|Hivemind |300 GB|
In the next episode, I will write more about such setup and required hardware and about how long it takes nowadays to build it from scratch.
![Hive_Queen](https://images.hive.blog/DQmSJUo4g9AmoVFoAbs6gzMw6coVURUQKg7URtBSfkEj5oJ/Hive_free-file.png)
See: Hive Pressure #1: A New Hope by @gtg