What is a Full Node?
A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
Minimum Requirements
Bobcoin Core full nodes have certain requirements. If you try running a node on weak hardware, it may work—but you’ll likely spend more time dealing with issues. If you can meet the following requirements, you’ll have an easy-to-use node.
- Desktop or laptop hardware running recent versions of Windows, Mac OS X, or Linux.
- 7 gigabytes of free disk space, accessible at a minimum read/write speed of 100 MB/s.
- 2 gigabytes of memory (RAM)
- A broadband Internet connection with upload speeds of at least 400 kilobits (50 kilobytes) per second
- An unmetered connection, a connection with high upload limits, or a connection you regularly monitor to ensure it doesn’t exceed its upload limits. It’s common for full nodes on high-speed connections to use 200 gigabytes upload or more a month. Download usage is around 20 gigabytes a month, plus around an additional 340 gigabytes the first time you start your node.
- 6 hours a day that your full node can be left running. (You can do other things with your computer while running a full node.) More hours would be better, and best of all would be if you can run your node continuously.
- Note: many operating systems today (Windows, Mac, and Linux) enter a low-power mode after the screensaver activates, slowing or halting network traffic. This is often the default setting on laptops and on all Mac OS X laptops and desktops. Check your screensaver settings and disable automatic “sleep” or “suspend” options to ensure you support the network whenever your computer is running.
Possible Obsticales
- Legal: The use of cryptocurrencies are prohibited or restricted in some areas.
- Bandwidth limits: Some Internet plans will charge an additional amount for any excess upload bandwidth used that isn’t included in the plan. Worse, some providers may terminate your connection without warning because of overuse. We advise that you check whether your Internet connection is subjected to such limitations and monitor your bandwidth use so that you can stop Bobcoin Core before you reach your upload limit.
- Anti-Virus: Some anti-virus programs quarantine the Bobcoin, making it more difficult to run Bobcoin Core. This problem mostly affects computers running Windows.
Initial Block Download
Initial block download refers to the process where nodes synchronize themselves to the network by downloading blocks that are new to them. This will happen when a node is far behind the tip of the best block chain. In the process of IBD, a node does not accept incoming transactions nor request mempool transactions.
If you are trying to set up a new node following the instructions below, you will go through the IBD process at the first run, and it may take a considerable amount of time since a new node has to download the entire block chain. During the download, there could be a high usage for the network and CPU (since the node has to verify the blocks downloaded), and the client will take up an increasing amount of storage space (reduce storage provides more details on reducing storage).
Before the node finishes, you will not be able to see a new transaction related to your account until the client has caught up to the block containing that transaction. So your wallet may not count new payments/spendings into the balance.
If you are using Bobcoin Core GUI, you can monitor the progress of IBD in the status bar (left bottom corner).
Linux Instructions
There is no binaries for mainstream linux distributions. Instead, you are going to be compiling your own binaries.
If you are a seasoned linux user or want to build for unix, you may want to look at the build notes.
Dependency Build Instructions: Ubuntu & Debian
Build requirements:
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
Options when installing required Boost library files:
- On at least Ubuntu 14.04+ and Debian 7+ there are generic names for the individual boost development packages, so the following can be used to only install necessary parts of boost:
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
2. If that doesn’t work, you can install all boost development packages with:
sudo apt-get install libboost-all-dev
BerkeleyDB is required for the wallet.
For Ubuntu only: db4.8 packages are available here. You can add the repository and install using the following commands:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
Ubuntu and Debian have their own libdb-dev and libdb++-dev packages, but these will install BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distributed executables which are based on BerkeleyDB 4.8. If you do not care about wallet compatibility, pass --with-incompatible-bdb
to configure.
See the section “Disable-wallet mode” to build Bobcoin Core without wallet.
Optional (see –with-miniupnpc and –enable-upnp-default):
sudo apt-get install libminiupnpc-dev
ZMQ dependencies (provides ZMQ API 4.x):
sudo apt-get install libzmq3-dev
Once you have all the required dependencies installed, run
./autogen.sh
./configure
make
make install # optional
This will build bobcoin-qt as well if the dependencies are met.
When you have finished compiling run
cd src
strip bobcoind
sudo cp ~/bobcoin/src/bobcoind <enter directory to paste>
Now run ./bobcoind in the terminal. Hopefully, it should sync with the blockchain.
In theory, the Bobcoin daemon we started should keep running forever. Things can go wrong: The computer could run out of memory, causing the daemon software to crash, the computer could be rebooted by accident or because of some power outage etc… You don’t want to have to keep monitoring your Bobcoin node to see if it’s gone down, so let’s program the system to try to restart it automatically, every hour using crontab. If it’s already running, nothing will happen (the command will fail, but that’s OK).
sudo apt-get install cron
crontab -e
@hourly <path to daemon>/bobcoind -daemon
Windows
Go to releases to download for windows
After downloading the file to your desktop or your Downloads folder (C:\Users\<YOUR USER NAME>\Downloads
), run it by double-clicking its icon. Windows will ask you to confirm that you want to run it. Click Yes and the Bobcoin installer will start. It’s a typical Windows installer, and it will guide you through the decisions you need to make about where to install Bobcoin Core.
Bobcoin Core GUI will begin to download the block chain. This step will take at least several days, and it may take much more time on a slow Internet connection or with a slow computer. During the download, Bobcoin Core will use a significant part of your connection bandwidth. You can stop Bobcoin Core at any time by closing it; it will resume from the point where it stopped the next time you start it.
After download is complete, you may use Bobcoin Core as your wallet or you can just let it run to help support the Bobcoin network.
Warning: to prevent data corruption, do not force shutdown of your computer from the Windows shutdown screen when you have Bobcoin Core running.
Network Configurations
If you want to support the Bobcoin network, you must allow inbound connections.
When Bobcoin Core starts, it establishes 8 outbound connections to other full nodes so it can download the latest blocks and transactions. If you just want to use your full node as a wallet, you don’t need more than these 8 connections—but if you want to support other full nodes on the network, you must allow inbound connections.
Servers connected directly to the Internet usually don’t require any special configuration. You can use the testing instructions below to confirm your server-based node accepts inbound connections.
Home connections are usually filtered by a router or modem. Bobcoin Core will request your router automatically configure itself to allow inbound connections to Bobcoin’s port, port 9718. Unfortunately many routers don’t allow automatic configuration, so you must manually configure your router. You may also need to configure your firewall to allow inbound connections to port 9718.