Skip to content
Main program
Go Shell Lua
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
account
announce
asset
avl
background
block
blockdigest
blockheader
blockrecord
chain
command
configuration
constants
counter
currency
debian
difficulty
doc
fault
genesis
hooks
merkle
messagebus
mode
ownership
pay
payment
peer
proof
publish
reservoir
rpc
scripts
storage
testing [testing]fix top command various in different os (#123) Jan 17, 2020
transactionrecord
util
zmqutil
.gitignore
.gitmodules [vendor] cli submodule moved and updated Dec 5, 2017
LICENSE
README.md
go.mod
go.sum
release-notes.md
sonar-project.properties

README.md

bitmarkd - Main program

Made by GoDoc Go Report Card CircleCI

Prerequisites

  • Install the go language package for the system
  • Configure environment variables for go system
  • Install the ZMQ4 and Argon2 libraries

Operating system specific setup commands

FreeBSD

pkg install libzmq4 libargon2 git

MacOSX

(be sure that homebrew is installed correctly)

brew install argon2
brew install zeromq
brew install git

Ubuntu

(tested on version 18.04)

Install following packages

sudo apt install libargon2-0-dev uuid-dev libzmq3-dev git

Debian

(tested on version 9)

First we need to add access to testing package's repository as well as to our current version, in this case stable.

root@debian-bitmarkd:/# cat /etc/apt/sources.list.d/stable.list
deb     http://ftp.de.debian.org/debian/    stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/    stable main contrib non-free
deb     http://security.debian.org/         stable/updates  main contrib non-free

root@debian-bitmarkd:/# cat /etc/apt/sources.list.d/testing.list
deb     http://ftp.de.debian.org/debian/    testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/    testing main contrib non-free
deb     http://security.debian.org/         testing/updates  main contrib non-free

Now install libargon2 using:

apt-get -t testing install libargon2-dev libargon2-1

For the other packages, install from stable or testing, both versions work:

apt install uuid-dev libzmq3-dev
apt install git

Compilation commands for all operating systems

To compile use use the git command to clone the repository and the go command to compile all commands. The process requires that the Go installation be 1.12 or later as the build process uses Go Modules.

git clone https://github.com/bitmark-inc/bitmarkd
cd bitmarkd
go install -v ./...

Set up for running a node

Note: ensure that the ${HOME}/go/bin directory is on the path before continuing. The commands below assume that a checked out and compiled version of the system exists in the ${HOME}/bitmarkd directory.

Setup and run bitmarkd

Create the configuration directory, copy sample configuration, edit it to set up IP addresses, ports and local bitcoin testnet connection. The sample configuration has some embedded instructions for quick setup and only a few items near the beginning of the file need to be set for basic use.

mkdir -p ~/.config/bitmarkd
cp ~/bitmarkd/command/bitmarkd/bitmarkd.conf.sample  ~/.config/bitmarkd/bitmarkd.conf
${EDITOR} ~/.config/bitmarkd/bitmarkd.conf

To see the bitmarkd sub-commands:

bitmarkd --config-file="${HOME}/.config/bitmarkd/bitmarkd.conf" help

Generate key files and certificates.

bitmarkd --config-file="${HOME}/.config/bitmarkd/bitmarkd.conf" gen-peer-identity "${HOME}/.config/bitmarkd/
bitmarkd --config-file="${HOME}/.config/bitmarkd/bitmarkd.conf" gen-rpc-cert "${HOME}/.config/bitmarkd/
bitmarkd --config-file="${HOME}/.config/bitmarkd/bitmarkd.conf" gen-proof-identity "${HOME}/.config/bitmarkd/

Start the program.

bitmarkd --config-file="${HOME}/.config/bitmarkd/bitmarkd.conf" start

Setup and run recorderd (the mining program)

This is similar to the bitmarkd steps above. For mining on the local bitmarkd the sample configuration should work without changes.

mkdir -p ~/.config/recorderd
cp ~/bitmarkd/command/recorderd/recorderd.conf.sample  ~/.config/recorderd/recorderd.conf
${EDITOR} ~/.config/recorderd/recorderd.conf

To see the recorderd sub-commands:

recorderd --config-file="${HOME}/.config/recorderd/recorderd.conf" help

Generate key files and certificates.

recorderd --config-file="${HOME}/.config/recorderd/recorderd.conf" generate-identity "${HOME}/.config/recorderd/

Start the program.

recorderd --config-file="${HOME}/.config/recorderd/recorderd.conf" start

Prebuilt Binary

Coding

  • setup git hooks

    Link git hooks directory, run command ./scripts/setup-hook.sh at root of bitmarkd directory. Currently it provides checks for two stages:

    1. Before commit (pre-commit)

    Runs go lint for every modified file. It shows suggestions but not necessary to follow.

    1. Before push to remote (pre-push)

    Runs go test for whole directory. It is mandatory to pass this check because generally, new modifications must not break existing logic/behaviour.

    Other optional actions are sonaqube and go tool vet. These two are optional to follow since static code analysis just provide some advice.

  • all variables are camel case with no underscores

  • labels are all lowercase with '_' between words

  • imports and one single block

  • all break/continue must have label

  • avoid break in switch and select

You can’t perform that action at this time.