Official Initia installation docs could be found here. By default initia node uses the Goleveldb.
Aternative Data Base Storage (PebbleDB)
Why PebbleDB
According to this articlepebbledb has a few pros over classic goleveldb, such as:
Lower disk usage
faster block synchronization rate
Less duration for RPC API requests
For more detailed information we recommend you to visit original repo.
Initia is the "fast" blockchain with 2-3s block time. Which means a high load on the disks and longer synchronization time. Besides that, Initia implements latest cometbft and cometbft-db, which already has a built-in implementation of pebbledb (tendermint-db hasn't). That makes easier to maintain the node.
With all this in mind, usage of pebbledb seems to be a reasonable choice to run the Initia node.
# find out the current node version. At this moment the latest version is:
vers="v0.2.21"
git clone https://github.com/initia-labs/initia.git
cd $HOME/initia;
git pull;
git fetch;
git reset --hard;
git checkout ${vers}
git log -1 --pretty=oneline ;
# shows current branch
>14487bf569472ef664f28329825f04c5db50cc0a (HEAD, tag: v0.2.21, origin/initiation-1) fix to use built movevm
go mod edit -replace github.com/cometbft/cometbft-db=github.com/cometbft/[email protected]go mod tidy
# binary installation
go install -ldflags "-w -s -X github.com/cosmos/cosmos-sdk/types.DBBackend=pebbledb \
-X github.com/cosmos/cosmos-sdk/version.Version=${vers} \
-X github.com/cosmos/cosmos-sdk/version.Commit=$(git log -1 --format='%H') \
-X github.com/cosmos/cosmos-sdk/version.ServerName=initiad \
-X github.com/cosmos/cosmos-sdk/version.ClientName=initiad \
-X github.com/cosmos/cosmos-sdk/version.Name=initia \
-X github.com/cosmos/cosmos-sdk/version.AppName=initia" -tags pebbledb ./...
# bin path
bin_path=$(which initiad) && echo ${bin_path}
# example of the output
>~/go/bin/initiad