Go to file
Dave Collins 3ff0cf8afe
mempool: Decouple mining-specific logic.
This splits the mining-specific code that deals with sorting blocks
according to the number of votes available for it in the mempool into
mining.go.

This is being done for a couple of reasons:

1) Mining-specific code does not belong directly in the mempool
2) It is required to be able to split the mempool into a separate
   package which an upcoming upstream sync does

In order to accomplish this, a new function named VotesForBlocks has been
exposed on the mempool and the SortParentsByVotes code has been moved to
mining.go and modified to no longer return errors.  The reasoning for
this is the same as the recent change to VoteHashesForBlock.  That is to
say it is not the responsibility of a sorting function to dictate
caller-specific block eligibility logic.
2016-11-23 10:18:27 -06:00
addrmgr multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
blockchain stake/dcrjson: Simplify code with gofmt -s. 2016-11-21 11:03:17 -06:00
chaincfg multi: Upstream parameter abstraction sync 2016-11-16 19:34:01 -06:00
cmd multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
database multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
dcrec multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
dcrjson stake/dcrjson: Simplify code with gofmt -s. 2016-11-21 11:03:17 -06:00
docs docs: Add chainhash to README.md 2016-11-18 13:07:59 -06:00
limits blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
mining multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
peer multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
release Initial Decred Commit. 2016-02-07 14:00:12 -05:00
txscript txscript: Expose AddOps on ScriptBuilder. 2016-11-18 12:58:00 -06:00
wire multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
.gitignore glide man 2016-07-15 15:46:43 -05:00
.travis.yml travis: 1.7 -> 1.7.3 (#460) 2016-11-11 13:32:53 -05:00
blocklogger.go Replace the ticket database with an efficient, atomic implementation 2016-10-04 13:40:19 -04:00
blockmanager.go multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
chainindexer.go multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
CHANGES Apply various upstream comment fixes. 2016-05-27 00:35:06 -05:00
config.go Output of --help/-h should go to os.Stdout rather than os.Stderr (#386) 2016-11-03 12:42:04 -05:00
cpuminer.go multi: Upstream parameter abstraction sync 2016-11-16 19:34:01 -06:00
dcrd.go dcrd: Simplify shutdown signal handling logic sync. 2016-11-18 12:06:55 -06: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 multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
glide.yaml deps: Update to latest commits. (#362) 2016-09-22 14:14:22 -05:00
goclean.sh Replace the ticket database with an efficient, atomic implementation 2016-10-04 13:40:19 -04:00
ipc.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
LICENSE license: add title 2016-11-18 12:36:40 -06:00
log.go Merge in btcd 'b87723cd94ea11c29e22c4372ba4fe96886e7c83' 2016-09-23 11:43:55 -04:00
mempool.go mempool: Decouple mining-specific logic. 2016-11-23 10:18:27 -06:00
mempoolerror.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
mining_test.go Merge in btcd commit 'e15d3008cfd59756db9570da9e47da6831313196' 2016-09-23 11:17:45 -04:00
mining.go mempool: Decouple mining-specific logic. 2016-11-23 10:18:27 -06:00
miningerror.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 multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
policy.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
README.md server: Remove superfluous check in OnMemPool. 2016-11-18 13:19:35 -06:00
rpcserver.go multi: Upstream parameter abstraction sync 2016-11-16 19:34:01 -06:00
rpcserverhelp_test.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
rpcserverhelp.go Use same notification for mined transactions and blocks. (#434) 2016-11-08 16:18:32 -05:00
rpcwebsocket.go multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
sample-dcrd.conf indexers: Implement optional tx/address indexes. 2016-08-18 15:42:18 -04:00
server.go mempool: Decouple mining-specific logic. 2016-11-23 10:18:27 -06:00
service_windows.go dcrd: Simplify shutdown signal handling logic sync. 2016-11-18 12:06:55 -06:00
signal.go dcrd: Simplify shutdown signal handling logic sync. 2016-11-18 12:06:55 -06:00
signalsigterm.go Add pipes for parent process IPC. (#311) 2016-08-31 10:45:16 -04:00
upnp.go Fixed DeletePortMapping documentation typo 2015-01-01 21:59:57 +01:00
version.go Bump for v0.6.0 2016-11-04 07:42:06 -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.

Requirements

Go 1.6 or newer.

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.