Categorygithub.com/classzz/classzz
modulepackage
3.5.7+incompatible
Repository: https://github.com/classzz/classzz.git
Documentation: pkg.go.dev

# README

classzz

Build Status Go Report Card ISC License GoDoc

classzz is an alternative full node bitcoin cash implementation written in Go (golang).

This project is a port of the btcd codebase to Bitcoin Cash. It provides a high powered and reliable blockchain server which makes it a suitable backend to serve blockchain data to lite clients and block explorers or to power your local wallet.

classzz does not include any wallet functionality by design as it makes the codebase more modular and easy to maintain. The czzwallet is a separate application that provides a secure Bitcoin Cash wallet that communicates with your running classzz instance via the API.

Table of Contents

Requirements

Go 1.9 or newer.

Install

Install Pre-built Packages

The easiest way to run the server is to download a pre-built binary. You can find binaries of our latest release for each operating system at the releases page.

Build from Source

If you prefer to install from source do the following:

  • Install Go according to the installation instructions here: http://golang.org/doc/install

  • Run the following commands to obtain btcd, all dependencies, and install it:

go get github.com/classzz/classzz

This will download and compile classzz and put it in your path.

If you are a classzz contributor and would like to change the default config file (classzz.conf), make any changes to sample-classzz.conf and then run the following commands:

go-bindata sample-classzz.conf  # requires github.com/go-bindata/go-bindata/
gofmt -s -w bindata.go

Getting Started

create conf: classzz.conf

; The address where the data was created
datadir=data

; RPC's white list policy (everyone can connect here)
rpclisten=0.0.0.0
whitelist=0.0.0.0

;User name and password of RPC
rpcuser=root
rpcpass=root
addrindex=1
txindex=1

; Links to three networks
ethrpc = https://cloudflare-eth.com/
hecorpc = https://http-mainnet.hecochain.com
bscrpc = https://bsc-dataseed1.binance.org/

To start classzz with default options just run:

./czzd --configfile="classzz.conf"

You'll find a large number of runtime options with the help flag. All of them can also be set in a config file. See the sample config file for an example of how to use it.

./czzd --help

You can use the common json RPC interface through the czzctl command:

./czzctl --help

./czzctl --listcommands

Classzz separates the node and the wallet. Commands for the wallet will work when you are also running czzwallet:

./czzctl -u username -P password --wallet getnewaddress

Documentation

The documentation is a work-in-progress. It is located in the docs folder.

Contributing

Contributions are definitely welcome! Please read the contributing guidelines before starting.

License

classzz is licensed under the copyfree ISC License.

# Packages

Package addrmgr implements concurrency safe Bitcoin Cash address manager.
Package blockchain implements bitcoin block handling and chain selection rules.
Package btcjson provides primitives for working with the bitcoin JSON-RPC API.
Package chaincfg defines chain configuration parameters.
No description provided by the author
Package connmgr implements a generic Bitcoin network connection manager.
Package consensus implements the czz consensus engine.
No description provided by the author
Package czzec implements support for the elliptic curves needed for bitcoin.
No description provided by the author
Package database provides a block and metadata storage database.
No description provided by the author
No description provided by the author
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Package mempool provides a policy-enforced pool of unmined bitcoin cash transactions.
No description provided by the author
Package netsync implements a concurrency safe block syncing protocol.
Package peer provides a common base for creating and managing Bitcoin cash network peers.
Package rlp implements the RLP serialization format.
Package rpcclient implements a websocket-enabled Bitcoin JSON-RPC client.
Package txscript implements the bitcoin transaction script language.
No description provided by the author
Package wire implements the bitcoin wire protocol.

# Functions

Asset loads and returns the asset for the given name.
AssetDir returns the file names below a certain directory embedded in the file by go-bindata.
AssetInfo loads and returns the asset info for the given name.
AssetNames returns the names of the assets.
Discover searches the local network for a UPnP router returning a NAT for the network if so, nil if not.
MustAsset is like Asset but panics when Asset would return an error.
RestoreAsset restores an asset under the given directory.
RestoreAssets restores an asset under the given directory recursively.

# Constants

AuthenticationTokenKey is the key used in the context to authenticate clients.

# Variables

ErrClientQuit describes the error where a client send is not processed due to the client having already been disconnected or dropped.
ErrRescanReorg defines the error that is returned when an unrecoverable reorganize is detected during a rescan.
ErrRPCNoWallet is an error returned to RPC clients when the provided command is recognized as a wallet command.
ErrRPCUnimplemented is an error returned to RPC clients when the provided command is recognized, but not implemented.

# Interfaces

NAT is an interface representing a NAT traversal options for example UPNP or NAT-PMP.

# Type aliases

No description provided by the author