Skip to content

Instantly share code, notes, and snippets.

@tpmccallum
Last active November 6, 2022 20:28
Show Gist options
  • Save tpmccallum/0d5974bfbae03f6cd0b4a107c4f454f8 to your computer and use it in GitHub Desktop.
Save tpmccallum/0d5974bfbae03f6cd0b4a107c4f454f8 to your computer and use it in GitHub Desktop.
My personal experience; installing Dogecoin full node on Ubuntu 20.04

My personal experience of installing Dogecoin on Ubuntu 20.04

This is an account of the things that I had to do to set up a full node for Dogecoin. This Gist will remind future me how to perform this task :)

System requirements

sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev

System variable

cd ~
git clone https://github.com/dogecoin/dogecoin.git
cd dogecoin
DOGECOIN_ROOT=$(pwd)

Pick some path to install BDB to, here we create a directory within the dogecoin directory

BDB_PREFIX="${DOGECOIN_ROOT}/db5"
mkdir -p $BDB_PREFIX

Fetch the source and verify that it is not tampered with

wget 'http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz'
echo '08238e59736d1aacdd47cfb8e68684c695516c37f4fbe1b8267dde58dc3a576c db-5.1.29.NC.tar.gz' | sha256sum -c

Should see db-5.1.29.NC.tar.gz: OK

Extract db code

tar -xzvf db-5.1.29.NC.tar.gz

Build the library and install to our prefix

cd db-5.1.29.NC/build_unix/

Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime

../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
make install

Configure Dogecoin Core to use our own-built instance of BDB

cd $DOGECOIN_ROOT
./autogen.sh

Make a change to avoid an error berkeley db dogecoin error: definition of 'int __atomic_compare_exchange Reference to this fix is here

sed -i 's/__atomic_compare_exchange/__atomic_compare_exchange_db/g' db-5.1.29.NC/src/dbinc/atomic.h
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/"
make
sudo make install

Configure

Create a file called dogecoin.conf in your dogecoin datadir i.e. /home/your_username/.dogecoin

vi /home/your_username/.dogecoin/dogecoin.conf

Add whatever config you want; use this as a reference to learn more about which config options are available.

Here is an example where you use addnode, dns, port (for p2p), dbcache (to allow more cache than the default), and listen to make sure your node is listening for connections on the p2p port. This config does not use RPC whatsoever. If you use port forwarding on your router so that incoming connections can see your Ubuntu 20 machine on port 22556 you will eventually get over 8 active connections (at which point you will be syncing/reading and then when synced you will be contributing to the network as well).

addnode=173.255.204.124:22556
dns=1
port=22556
dbcache=16384
listen=1

If your node is struggling to connect to more than a few nodes, please use this API to find some nodes that you can add to your dogecoin.conf file using the addnode parameter over and over on separate lines (instead of just once like we showed in the simple example above)

addnode=1.2.3.4:22556
addnode=5.6.7.8:22556 etc ...

Start

/usr/local/bin/dogecoin-qt 

You can also use dogecoind command to start your node. You can read more about dogecoind here.

Extra reading ...

https://github.com/dogecoin/dogecoin https://github.com/dogecoin/dogecoin/blob/master/doc/build-unix.md https://www.reddit.com/r/dogecoin/comments/l7q640/why_running_a_full_node_is_the_secondbest/ https://www.reddit.com/r/dogecoin/comments/6do5vz/important_doge_full_node_drive_help_doge_network/ https://old.reddit.com/r/dogecoin/comments/l8b7d4/dogecoin_blockchain/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment