Go to file
Josh Rickmar 6c1aa07a4f Add pipes for parent process IPC. (#311)
Rewrite startup/shutdown logic to simplify shutdown signaling.  All
cleanup is now run from deferred functions in the main function.

Add two new config options to set the read and write ends of a pair of
pipes.  This is used as a simple mechanism for a parent process to
communicate with, observe, and manage the lifetime of a child dcrd
process.  When the RX (read end) pipe is closed, clean shutdown
automatically begins.

Add a new flag --lifetimeevents to create and send lifetime event
notifications over the TX (write end) pipe during bringup and
shutdown.  This allows the parent process to observe which subsystems
are currently starting, running, and stopping.

Fixes #297.
Fixes #298.
2016-08-31 10:45:16 -04:00
addrmgr blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
blockchain database: Replace with new version. 2016-08-23 17:40:38 -04:00
chaincfg add more checkpoints for upcoming release (#329) 2016-08-30 12:35:09 -05:00
cmd database: Replace with new version. 2016-08-23 17:40:38 -04:00
database database: Replace with new version. 2016-08-23 17:40:38 -04:00
dcrec Replace fastsha256 with crypto/sha256 (#319) 2016-08-24 11:18:48 -05:00
dcrjson Add address argument to consolidate. (#317) 2016-08-24 10:10:02 -05:00
docs docs: Update READMEs with some current details. 2016-05-30 13:28:17 -05:00
limits blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
mining docs: Add/update doc.go in a few spots (#277) 2016-07-08 11:09:32 -05:00
peer indexers: Implement optional tx/address indexes. 2016-08-18 15:42:18 -04:00
release Initial Decred Commit. 2016-02-07 14:00:12 -05:00
txscript blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
wire blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
.gitignore glide man 2016-07-15 15:46:43 -05:00
.travis.yml travis: Add go 1.7 and drop go 1.5 support. (#318) 2016-08-17 17:01:03 -04:00
blocklogger.go Initial Decred Commit. 2016-02-07 14:00:12 -05:00
blockmanager.go Fix merge regression bugs relating to transaction notifications (#328) 2016-08-30 11:32:26 -05:00
chainindexer.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
CHANGES Apply various upstream comment fixes. 2016-05-27 00:35:06 -05:00
config.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
cpuminer.go database: Replace with new version. 2016-08-23 17:40:38 -04:00
dcrd.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
deps.txt Add 0.11.1 deps to deps.txt. 2015-05-27 10:50:12 -05:00
discovery.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
doc.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
dynamicbanscore_test.go Implement banning based on dynamic ban scores 2016-05-28 00:07:14 -05:00
dynamicbanscore.go multi: Fix several misspellings in the comments. 2016-05-30 12:24:21 -05:00
glide.lock Replace fastsha256 with crypto/sha256 (#319) 2016-08-24 11:18:48 -05:00
glide.yaml Replace fastsha256 with crypto/sha256 (#319) 2016-08-24 11:18:48 -05:00
goclean.sh database: Replace with new version. 2016-08-23 17:40:38 -04:00
ipc.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
LICENSE Merge upstream copyright date updates. 2016-05-27 00:52:44 -05:00
log.go indexers: Implement optional tx/address indexes. 2016-08-18 15:42:18 -04:00
mempool.go database: Replace with new version. 2016-08-23 17:40:38 -04:00
mempoolerror.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
mining_test.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
mining.go database: Replace with new version. 2016-08-23 17:40:38 -04:00
miningerror.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
mrunoncemap_test.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
mrunoncemap.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
params.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
policy_test.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
policy.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
README.md Major update to home README (#278) 2016-07-27 13:38:58 -05:00
rpcserver.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
rpcserverhelp_test.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
rpcserverhelp.go rpcserver: searchrawtx - update coinbase output (#299) 2016-08-10 11:53:00 -05:00
rpcwebsocket.go Fix merge regression bugs relating to transaction notifications (#328) 2016-08-30 11:32:26 -05:00
sample-dcrd.conf indexers: Implement optional tx/address indexes. 2016-08-18 15:42:18 -04:00
server.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
service_windows.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
signal.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
signalsigterm.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
upgrade.go Don't fail if no blockchain folder exists (#326) 2016-08-29 13:40:30 -05:00
upnp.go Fixed DeletePortMapping documentation typo 2015-01-01 21:59:57 +01:00
version.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00

dcrd

[Build Status] (https://travis-ci.org/decred/dcrd) ![ISC License] (http://img.shields.io/badge/license-ISC-blue.svg)

dcrd is a Decred full node implementation written in Go (golang).

This acts as a chain daemon for the Decred cryptocurrency. dcrd maintains the entire past transactional ledger of Decred and allows relaying of transactions to other Decred nodes across the world. To read more about Decred please see the project documentation.

Note: To send or receive funds and join Proof-of-Stake mining, you will also need dcrwallet.

This project is currently under active development and is in a Beta state. It is extremely stable and has been in production use since February 2016.

It is forked from btcd which is a bitcoin full node implementation written in Go. btcd is a ongoing project under active development. Because dcrd is constantly synced with btcd codebase, it will get the benefit of btcd's ongoing upgrades to peer and connection handling, database optimization and other blockchain related technology improvements.

Getting Started

  • dcrd (and utilities) will now be installed in either $GOROOT/bin or $GOPATH/bin depending on your configuration. If you did not already add the bin directory to your system path during Go installation, we recommend you do so now.

Updating

Windows

Install a newer MSI

Linux/BSD/MacOSX/POSIX - Build from Source

  • Glide

    Glide is used to manage project dependencies and provide reproducible builds. To install:

    go get -u github.com/Masterminds/glide

Unfortunately, the use of glide prevents a handy tool such as go get from automatically downloading, building, and installing the source in a single command. Instead, the latest project and dependency sources must be first obtained manually with git and glide, and then go is used to build and install the project.

Getting the source:

For a first time installation, the project and dependency sources can be obtained manually with git and glide (create directories as needed):

git clone https://github.com/decred/dcrd $GOPATH/src/github.com/decred/dcrd
cd $GOPATH/src/github.com/decred/dcrd
glide install
go install $(glide nv)

To update an existing source tree, pull the latest changes and install the matching dependencies:

cd $GOPATH/src/github.com/decred/dcrd
git pull
glide install
go install $(glide nv)

For more information about decred and how to set up your software please go to our docs page at docs.decred.org.

Contact

If you have any further questions you can find us at:

  • irc.freenode.net (channel #decred)
  • webchat
  • forum.decred.org
  • decred.slack.com

Issue Tracker

The integrated github issue tracker is used for this project.

Documentation

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

License

dcrd is licensed under the copyfree ISC License.