Install an IPFS node on Beam Dappnet

The Beam DAPPNET is a testnet environment and all coins and assets on this network have zero value.

Using a server of your choice, according to your budget, follow the guide below to install a Beam dappnet node. This guide uses a $6 25GB linux from vultr.

As you would install a Beam node, download release from here:
https://github.com/BeamMW/beam/releases/tag/beam-dappnet-7.1.12823

the guide follows connection to my node at dappnet.raskul.com and the IP is shown because I need not keep this secret. I do not own any files contained on the server being used and all is open source. You can connect the cfg file commands to your own ip or use dappnet.raskul.com if you wish. peers will connect as default to Beam nodes and you can add mine if you wish. 🙂

				
					wget https://github.com/BeamMW/beam/releases/download/beam-dappnet-7.1.12823/linux-beam-node-dappnet-7.1.12823.zip
				
			
				
					unzip linux-beam-node-dappnet-7.1.12823.zip
				
			
				
					tar -xvf beam-node-dappnet.tar
				
			
				
					nano beam-node.cfg
				
			

use this as the beam-node.cfg for the dappnet.

				
					# port to start server on
port=10608
# log level [info|debug|verbose]
# log_level=debug
log_level=verbose
file_log_level=verbose
# file log level [info|debug|verbose]
# file_log_level=debug
peers_persistent=1
# old logs cleanup period (days)
# log_cleanup_days=5
################################################################################
# Node options:
################################################################################
# node storage path
# storage=node.db
# nodes to connect to
peer=eu-node01.dappnet.beam.mw:8100, eu-node03.dappnet.beam.mw:8100, eu-node02.dappnet.beam.mw:8100
# port to start stratum server on
stratum_port=3333
# path to stratum server api keys file, and tls certificate and private key
stratum_secrets_path=./stratum_secrets/
#remember to install certificates.

# Enforce re-synchronization (soft reset)
# resync=0
# Owner viewer key
owner_key=getYOUROWNERKEY
# Standalone miner key
miner_key=getYOURMINERKEY
# password for keys
pass=yourPASSWORDhere
# Fork1 height
# Fork1=
# Path to treasury for testing
# treasury_path=
				
			

to get your owner key and miner key for the wallet and wallet api. first install the beam-wallet-dappnet files and init the wallet.

				
					./beam-wallet-dappnet init

				
			

You can start your node before or after the wallet / wallet api / explorer node is installed. explorer node and wallet api need the node to function, obviously.

				
					./beam-wallet-dappnet export_miner_key --subkey=1

				
			
				
					./beam-wallet-dappnet export_owner_key
				
			

to start the node:

				
					pm2 start ./beam-node-dappnet
				
			
				
					pm2 commands commonly used
pm2 list
pm2 logs #
pm2 flush
pm2 save
pm2 startup
				
			
				
					this text in beam-wallet.cfg
				
			
				
					# password for the wallet
pass=yourPASSWORD
# phrase to generate secret key according to BIP-39.
# seed_phrase=
# address of node
node_addr=95.179.199.164:10608
# path to wallet file
# wallet_path=wallet.db
# command to execute [new_addr|send|receive|listen|init|info|export_miner_key|export_owner_key|generate_phrase]
command=listen

				
			
				
					nano beam-wallet.cfg
				
			
				
					nano wallet-api.cfg
				
			
				
					################################################################################
# Wallet API general options:
################################################################################
enable_ipfs=true
# password for the wallet
pass=yourPASSWORD
# address of node
node_addr=127.0.0.1:8888
# path to wallet file
# wallet_path=wallet.db
# port to start server on
port=11111
# use JSON RPC over HTTP
use_http=1

				
			
				
					nano explorer-node.cfg
				
			
				
					################################################################################
# Node explorer options:
################################################################################
# peer address
peer=95.179.199.164:10608
# port to start the local node on
port=1111
# port to start the local api server on
api_port=8888
# owner viewer key
key_owner=getYOUROWNER KEY
# password for owner key
pass=yourPASSWORD
				
			

to enable beam confidential assets, you can do this using pm2

				
					pm2 start ./wallet-api-dappnet -- enable_assets
				
			

or a pm2 instance of the wallet api to enable max privacy on your server

				
					pm2 start ./wallet-api-dappnet -- enable_lelantus
				
			

either are optional as the ipfs enablement is actioned in the wallet-api.cfg, above and this is the purpose of this particular guide. enjoy!

further guide taken from https://github.com/BeamMW/beam/wiki/BEAM-IPFS-Support

Access BEAM IPFS node using standard IPFS cli tool

  1. Start wallet api
  2. Install go-ipfs
  3. Create beam-ipfs bash script (do not forget to change your paths)
#/bin/bash
export IPFS_PATH=/home/ubuntu/beam-api/ipfs-repo/
# uncomment the following line if you're using private IPFS network
# export LIBP2P_FORCE_PNET=1
/home/ubuntu/go-ipfs-node/ipfs "[email protected]"

In desktop client IPFS node API is disabled by default. ipfs_node_api_port should be set in settings.ini or Addresses.API in ipfs-repo/config to access IPFS node API.

  1. Make it executable
chmod  +x ./beam_ipfs
  1. Execute usual ipfs commands via the script
./beam-ipfs swarm peers

SystemD IPFS unit file

Example below if given for a standard go-ipfs binary. You can also use the same settings for running wallet API

/etc/systemd/system/ipfs.service
[Unit]
Description=GO IPFS Node
After=network.target
[Service]
Type=exec
Restart=on-failure
Environment="IPFS_PATH=/home/ubuntu/go-ipfs-node/repo"
# uncomment if private IPFS network
# Environment="LIBP2P_FORCE_PNET=1"
WorkingDirectory=/home/ubuntu/go-ipfs-node
ExecStart=/home/ubuntu/go-ipfs-node/ipfs daemon
[Install]
WantedBy=multi-user.target

if you completed this guide, here’s a freebie 😉

QmPMGxVJuYmcDb3EsPxUCDWR3eYC3djZwfXnQiMEiTQ3DF

this is the transaction hash (the ID on the Beam dappnet blockchain) of my novel 666Stitches in pdf format. Once you ‘get’ it from the beam ipfs using the code below, you can amend the file to a .pdf for full readibility!

(you might want to scp it from your linux server first 😉 )

				
					./beam_ipfs get QmPMGxVJuYmcDb3EsPxUCDWR3eYC3djZwfXnQiMEiTQ3DF
				
			

example scp command line for the above file (where [email protected] should be amended to your own Beam dappnet node server

				
					scp -r root@serverIP:/root/QmPMGxVJuYmcDb3EsPxUCDWR3eYC3djZwfXnQiMEiTQ3DF ~/Desktop/