Bitcoin Validator Nodes

There are two ways to participate in Social Network, by staking Bitcoin, or running an Validator Node. This section will overview the section option which ensures, a fair, open, and decentralized network for everyone on Earth.

Note: Social Network testnet is currently underway, and Network Nodes software is still in alpha-development. We will be updating this page and announcing the first official release soon.

How to Run an Validator Node

The high-level requirements to join the Social Network protocol are to run the following:

  1. Bitcoin Node
  2. Bitcoin Validator

All three of these components make up a single Validator Node, a reference implementation is provided here. This section will overview how to run an Validator Node for the Social Network, and begin earning rewards.

Bitcoin Node Setup

The Bitcoin Core daemon (bitcoind) is a program that implements the Bitcoin protocol and enables remote procedure calls (RPC) for accessing the distributed ledger. An additional indexer is used to easily parse additional Bitcoin chainstate through bitcoind’s ZeroMQ interface, its embedded networking library, passing raw blockchain data to be evaluated for events related to the the Social Network and Social Network.

The Bitcoin node must run in full archive mode, with —txdetails=1 and ensure it remains up to date for the Relayer to be valid. The latest Bitcoin core software can be obtained at bitcoin.org, and requires ~200GB data with 2GB RAM and a CPU. This requirement is to ensure there is no centralized censorship ability of Social Network’s incentive layer, and also helps to decentralize the Bitcoin monetary system.

This guide works with the latest Bitcoin Core software version here. See these two guides for more details on how to run a node.

Linux Requirements:

sudo apt-get update
sudo apt-get install libboost-all-dev libzmq3-dev libminiupnpc-dev 
sudo apt-get install curl git build-essential libtool autotools-dev
sudo apt-get install automake pkg-config bsdmainutils python3
sudo apt-get install redis-server postgresql postgresql-contrib
sudo apt-get install libclang-dev software-properties-common libssl-dev libevent-dev

Install the latest Bitcoin Core (26.x) with:

git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin && git checkout 26.x
./autogen.sh
./configure
make
cd src
sudo install -sv bitcoind bitcoin-cli /usr/local/bin/

Create a new Bitcoin configuration file:

mkdir ~/.bitcoin
vim $HOME/.bitcoin/bitcoin.conf

Set the following configuration to be compatible with the Bitcoin indexer:

# Bitcoin Core Testnet Configuration

testnet=1
datadir=/home/earthean/.bitcoin/ # Path to Bitcoin directory
server=1
rpcuser=earth
rpcpassword=relay
rpcport=8332
rpcallowip=0.0.0.0/0
rpcallowip=::/0
txindex=1
listen=1
discover=0
dns=0
dnsseed=0
listenonion=0
rpcserialversion=1
disablewallet=0
fallbackfee=0.00001
rpcthreads=8
blocksonly=1
dbcache=4096

# Start zeromq
zmqpubhashblock=tcp://0.0.0.0:18543

Now you can start your Bitcoin node with:

bitcoind --daemon

Ensure the port is open for peer discovery:

sudo ufw allow 8333/tcp

It may take some time for the syncronization to sync, a systemd script is provided for convience here.

Configuring the Bitcoin indexer

Once your node is running and fully synced (this may take a few days), the next step is to setup the Bitcoin indexer which will be used to determine events for the Earth Relayers to keep track of and share. Indexing satoshis is done similar to the Ordinals protocol, using the Bitcoin Validator. To run this you will need to install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

And next, install the indexer with:

git clone https://github.com/social-network/bitcoin-validator.git
cd indexer && cargo indexer-install

Now create a indexer config file called ‘indexer-settings.json’

{
  "chain": "bitcoin",
  "uuid": "1",
  "name": "Validator Node",
  "version": 1,
  "networks": {
    "testnet": {
      "start_block": 801500,
      "if_this": {
         "scope": "ordinals_protocol",
         "operation": "inscription_feed"
      },
      "then_that": {
        "http_post": {
          "url": "http://localhost:7777/bitcoin",
          "authorization_header": "12345"
        }
      }
    }
  }
}

Bitcoin setup complete! At the end of this setup, we will start our listener that streams any new events to the Validator Node in NIP-77 format, but for now, onto Ethereum.

Start Validating for Earth

Lastly, we can start our Indexer event listener to post real time Bitcoin inscriptions to your Earth Relay:

indexer service start --predicate-path=indexer-settings.json --config-path=Indexer.toml

That’s all! You are now helping decentralize Bitcoin Staking, to enabling scalable, low fee, Bitcoin transactions for the Social Network.

Bitcoin Staking Rewards

Health checks will be made every 15 seconds, so be sure to keep your Relay live to be eligible for the official airdrop! More announcements regarding the role Bitcoin Validators will be made at Social Network

If you have any questions or are interested in helping partner or build the future of Decentralized Social Networks with us, please contact nodes@social.network via email or on Nostr.