Agendas require some complicated and not always obvious assumptions. In order to prevent bad agendas from making it into the code we validate them at init time and panic if an agenda violates assumptions. This will not adversely impact the user experience but will force developers to properly design dcrd agendas. These are the required tests to ensure vote integrity: * All choices shall be consecutive and enumerated. * Mask only contains consecutive 1 bits set. * Ensure IsIgnore and IsNo are never both set to true. * Ensure there is one and only one IsNo choice set to true. * Ensure there is one and only one IsIgnore choice set to true. * Ensure that the abstain choice is 0. * Ensure that the number of choices does not exceed the mask bits permissible size. * Ensure that choice bits match the mask bits. * Ensure there are no duplicate choice ids. * Ensure there are no duplicate vote ids. |
||
|---|---|---|
| addrmgr | ||
| blockchain | ||
| chaincfg | ||
| cmd | ||
| database | ||
| dcrec | ||
| dcrjson | ||
| docs | ||
| limits | ||
| mempool | ||
| mining | ||
| peer | ||
| release | ||
| txscript | ||
| wire | ||
| .gitignore | ||
| .travis.yml | ||
| blocklogger.go | ||
| blockmanager.go | ||
| chainindexer.go | ||
| CHANGES | ||
| config.go | ||
| cpuminer.go | ||
| dcrd.go | ||
| deps.txt | ||
| discovery.go | ||
| doc.go | ||
| dynamicbanscore_test.go | ||
| dynamicbanscore.go | ||
| glide.lock | ||
| glide.yaml | ||
| goclean.sh | ||
| ipc.go | ||
| LICENSE | ||
| log.go | ||
| mining_test.go | ||
| mining.go | ||
| miningerror.go | ||
| params.go | ||
| README.md | ||
| rpcserver.go | ||
| rpcserverhelp_test.go | ||
| rpcserverhelp.go | ||
| rpcwebsocket.go | ||
| sample-dcrd.conf | ||
| server.go | ||
| service_windows.go | ||
| signal.go | ||
| signalsigterm.go | ||
| upnp.go | ||
| version.go | ||
dcrd
[]
(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.7 or newer.
Getting Started
- dcrd (and utilities) will now be installed in either
$GOROOT/binor$GOPATH/bindepending 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.