checkdevpremine

command
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2017 License: ISC Imports: 16 Imported by: 0

README

checkdevpremine

The checkdevpremine utility allows transactions to be tested whether or not they have inputs that trace back to the original dev premine coins.

It works by using the dcrd RPC server to request all of the relevant input transactions all the way back to the coinbase output that orignated the coins. Those coinbase outpoints are then compiled into a list and compared against the original dev premine outpoints. This is also known as checking for taint.

The utility only accepts one parameter which can either be a single transaction hash or a JSON-array of transaction hashes in order to facilite checking multiple at once. That parameter may also be a single dash, -, in order to indicate it should be read from stdin.

Any outpoints which are found to be part of the original dev premine will be listed unless the --quiet flag is provided to suppress the output.

In addition, in order to facilitate programmatic access the tool returns the following codes to the Operating System:

Return Code Description
0 The transaction(s) do NOT have any inputs which trace back to the dev premine coins
1 One of more of the transactions DO have at least one input which traces back to the dev premine coins
2 Some type of error such as inability to talk to the RPC server occurred

These codes in addition with the --quiet flag allow a fully automated check with no visible output.

Configuring

In order to connect and authenticate to the dcrd RPC server, the --rpcuser and --rpcpass options must be specified. These can be placed into a config file named checkdevpremine.conf at the location shown in the help output of the utility (checkdevpremine -h).

Config file example:

rpcuser=your_dcrd_RPC_server_username
rpcpass=your_dcrd_RPC_server_password

Example Usage

Checking a single transaction with visible output:

$ checkdevpremine 25afd7d33ceb8698f5d81eb7ee14a7532419ce1e1c65cc5032e37696f26c5cac

Checking for multiple transactions with visible output:

$ checkdevpremine "[\"25afd7d33ceb8698f5d81eb7ee14a7532419ce1e1c65cc5032e37696f26c5cac\", \"b1527b63c7a76ea28e57604082bec0e8195cd7a33bd10c68296a45bce77bd2db\"]"

Mixing tools in order to check all of the transactions in the latest block using jq to extract the transaction hashes and feed them to checkdevpremine via stdin along with --quiet to suppress output:

$ dcrctl getbestblockhash | dcrctl getblock - | jq -c .tx | checkdevpremine --quiet -; echo $?
0

Installation and Updating

$ go get -u github.com/decred/dcrd/cmd/checkdevpremine

License

The checkdevpremine utility is licensed under the copyfree ISC License.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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