qitmeer

module
v0.10.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2021 License: ISC

README

Qitmeer

Build Status Build Status Go Report Card FOSSA Status

The guardian of trust. The core backend of the qitmeer network.

Qitmeer Testnet Notice

The Qitmeer Official Public Testnet is OPEN Now. The latest Public Testnet is the Umayyad Network. Please Join the Umayyad Network !

Latest Testnet Compatible Qitmeer Vesion Start Date Type
Umayyad Network 1.0 v0.10.5 2021/07/25 Official Public Testnet
Medina Network 2.0 v0.9.x 2020/06/24 Official Public Testnet

Please know more details from the Qitmeer Testnet

Installation

Binary archives

Releases

Standalone installation archive for Linux, macOS and Windows are provided in the Releases section. Please download an archive for your operating system and unpack the content to a place accessible from command line.

Builds Release Date
Last GitHub release GitHub Release Date
Stable GitHub release GitHub Release Date
How to build

Golang at least 1.12 (required >= 1.12)

Check your golang version.

~ go version
go version go1.16 darwin/amd64
~ mkdir -p /tmp/work
~ cd /tmp/work
~ git clone https://github.com/Qitmeer/qitmeer.git
~ cd qitmeer
~ make
~ make
Done building.
  qitmeer version 0.9.2+dev-1f5defd (Go version go1.16))
Run "./build/bin/qitmeer" to launch.
How to Run

Memory Requirements

  • Minimum: 1GB
  • Recommended: 2GB

Make sure to have at least 1GB free memory to run qitmeer. Insufficient memory may lead to the process being killed unexpectedly when its running. See FAQ #3 for details.

Getting Started
./build/bin/qitmeer --testnet

Please make sure use --testnet to connect to the correct network. currently, only testnet network is officially supported.

Several configuration options available to tweak how it runs. Please see details by using the help command

./build/bin/qitmeer --help
Running with Docker

You can also run qitmeer by using docker

docker run qitmeer/qitmeerd

Other useful qitmeer repository

qitmeer-wallet

The command-line wallet of the Qitmeer network

qitmeer-miner

The GPU miner for the Qitmeer netowrk.

qitmeer-cli

The command line utility of Qitmeer

How to Work with ZeroMQ

Block and Transaction Broadcasting with ZeroMQ for details on how this works.

How to use Token

Qitmeer Token for details on how this works.

FAQ

How to exit qitmeer properly.

You can use Ctrl+C to exit in the foreground, or kill or kill -2 if in the backgroud. Please don't use kill -9 to kill the qitmeer process , this terminates the process abruptly and may leave database files improperly closed. may result corrupt data files. In the worst case, you might need to do a refresh block synchronization.

How to clean up corrupt data
qitmeer --cleanup --testnet

Please be careful! the command results your data to be removed!

How to fix golang.org unrecognized Issue

If you got trouble to download the golang.org depends automatically

go: golang.org/x/crypto@v0.0.0-20181001203147-e3636079e1a4: unrecognized import path "golang.org/x/crypto" (https fetch: Get https://golang.org/x/crypto?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
go: golang.org/x/net@v0.0.0-20181005035420-146acd28ed58: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
go: golang.org/x/net@v0.0.0-20180906233101-161cd47e91fd: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

you might need to replace the download url (ex: using a mirror site like github.com) on your go.mod

replace (
	golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4 => github.com/golang/crypto v0.0.0-20181001203147-e3636079e1a4
	golang.org/x/net v0.0.0-20180906233101-161cd47e91fd => github.com/golang/net v0.0.0-20180906233101-161cd47e91fd
	golang.org/x/net v0.0.0-20181005035420-146acd28ed58 => github.com/golang/net v0.0.0-20181005035420-146acd28ed58
)
Qitmeer is killed unexpectedly

qitmeer is killed unexpectedly probably due to the Out of Memory, If you're using Ubuntu linux, you can verify it by following command.

dmesg -T| grep -E -i -B100 'killed process'

If you find similar output as follows, then that maybe the case

[Tue Mar  9 11:34:26 2021] Out of memory: Killed process 140587 (qitmeer) total-vm:1403144kB,
anon-rss:675828kB, file-rss:0kB, shmem-rss:0kB, UID:1001 pgtables:1532kB oom_score_adj:0

The minimum memory requirement is 1GB, and we strongly recommend upgrading the memory to 2GB.

If the memory resource restrictions is do your case, You might try to upgrade your Golang to the latest version and re-compile Qitmeer and try yourself. We have received feedbacks from community that the newly golang compiler have better memory optimizations, might work better wth low memory requirement, and especially for Ubuntu 20.04.

If you're using Ubuntu 18.04/20.04, then you can use the longsleep/golang-backports PPA and update to latest golang. then re-compile your qitmeer and try if works for you.

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go

Please note, it does not guarantee that compiling with the latest golang might work. Adding more computer memory is always the recommended way.

Compliing failed by missing the go.sum entries

If your golang version is 1.16 or above, you might see similar error as follows when compiling.

go: github.com/Qitmeer/crypto@v0.0.0-20200516043559-dd457edff06c: missing go.sum entry; to add it:
        go mod download github.com/Qitmeer/crypto
make: *** [Makefile:41: qitmeer-build] Error 1

It's due to go1.16 changes default mod rules by disabling auto fixing missing entry in go.sum file. see details here.

It's an known issue and fixed by the latest code, Please update Qitmeer to the latest version and do the compiling again.

If you somehow need to stick to the current version, please make sure to execute following command before you compile qitmeer:

go mod tidy

License

FOSSA Status

Directories

Path Synopsis
cmd
qx
rlpdump
rlpdump is a pretty-printer for RLP data.
rlpdump is a pretty-printer for RLP data.
Package common contains various helper functions.
Package common contains various helper functions.
encode/rlp
Package rlp implements the RLP serialization format.
Package rlp implements the RLP serialization format.
math
Package math provides integer math utilities.
Package math provides integer math utilities.
mclock
Package mclock is a wrapper for a monotonic clock source
Package mclock is a wrapper for a monotonic clock source
util/hexutil
Package hexutil implements hex encoding with 0x prefix.
Package hexutil implements hex encoding with 0x prefix.
core
dbnamespace
Package dbnamespace contains constants that define the database namespaces for the purpose of the blockchain, so that external callers may easily access this data.
Package dbnamespace contains constants that define the database namespaces for the purpose of the blockchain, so that external callers may easily access this data.
bip39
Package bip39 is the official Golang implementation of the BIP39 spec.
Package bip39 is the official Golang implementation of the BIP39 spec.
ecc
ecc/ed25519/internal
Package ed25519 implements the Ed25519 signature algorithm.
Package ed25519 implements the Ed25519 signature algorithm.
ecc/secp256k1
Package secp256k1 implements support for the elliptic curves needed for qitmeer.
Package secp256k1 implements support for the elliptic curves needed for qitmeer.
x16rv3/whirlpool
Package whirlpool implements the ISO/IEC 10118-3:2004 whirlpool cryptographic hash.
Package whirlpool implements the ISO/IEC 10118-3:2004 whirlpool cryptographic hash.
ffldb/treap
Package treap implements a treap data structure that is used to hold ordered key/value pairs using a combination of binary search tree and heap semantics.
Package treap implements a treap data structure that is used to hold ordered key/value pairs using a combination of binary search tree and heap semantics.
engine
This file is auto generate It is called by go generate and used to automatically generate pre-computed Copyright 2017-2018 The qitmeer developers This file is auto generate It is called by go generate and used to automatically generate pre-computed Copyright 2017-2018 The qitmeer developers This file is auto generate It is called by go generate and used to automatically generate pre-computed Copyright 2017-2018 The qitmeer developers This file is auto generate
This file is auto generate It is called by go generate and used to automatically generate pre-computed Copyright 2017-2018 The qitmeer developers This file is auto generate It is called by go generate and used to automatically generate pre-computed Copyright 2017-2018 The qitmeer developers This file is auto generate It is called by go generate and used to automatically generate pre-computed Copyright 2017-2018 The qitmeer developers This file is auto generate
log
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Package metrics provides general system and process level metrics collection.
Package metrics provides general system and process level metrics collection.
p2p
discover
Package discover implements the Node Discovery Protocol.
Package discover implements the Node Discovery Protocol.
iputils
Package iputils contains useful functions for ip address formatting.
Package iputils contains useful functions for ip address formatting.
netutil
Package netutil contains extensions to the net package.
Package netutil contains extensions to the net package.
proto/v1
Code generated by fastssz.
Code generated by fastssz.
qnr
rpc
services
cf
index
Package indexers implements optional block chain indexes.
Package indexers implements optional block chain indexes.
tx
zmq
Package trie implements Merkle Patricia Tries.
Package trie implements Merkle Patricia Tries.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL