Commit Graph

55 Commits

Author SHA1 Message Date
Jamie Holdstock
9ea5bd3bb3 docs: fix formatting in json rpc doc.
Removes an unnecessary line from the `getblockheader` table in json_rpc_api.md which prevents it from displaying correctly.
2019-03-07 19:49:43 -06:00
Dave Collins
6d647094ee
multi: Return total chain work in RPC results.
This modifies the getblock and getblockheader RPC results to include the
total number of hashes expected to produce the chain up to the requested
block in hex and updates the JSON-RPC API documentation accordingly.
2018-10-16 11:30:58 -05:00
Dave Collins
3a2bdcc332
multi: Cleanup getblock and getblockheader RPCs.
This modifies the getblock and getblockheader RPC results to be a little
more consistent in their ordering, to include the extra data field in
the getblockheader results, and to update the JSON-RPC API documentation
for both to match reality.  The documentation was missing several fields
and had some typos.
2018-10-16 11:24:46 -05:00
Donald Adu-Poku
1ec04c40a2 multi: Add getblockchaininfo rpc. 2018-10-09 18:28:17 -05:00
Dave Collins
5db19ddcab
multi: Include additional fields on RPC tx results.
This modifies the results provided by the getrawtransaction and
searchrawtransactions RPCs to make them consistent with each other.

In particular, it adds the transaction expiry, block height, and block
index fields to the searchrawtransactions result and ensures that both
omit the block height when it is zero so that it is not included in the
results for mempool transactions.

Since populating the block index requires additional details to be
stored to the transaction index to efficiently provide, only the
infrastructure is added and the value is left as the default for now,
which means it will be omitted and therefore not change the visible
behavior.

Finally, it also updates the RPC server help to provide consistent
descriptions for the fields and also updates the JSON-RPC documentation.
2018-09-10 09:18:01 -05:00
Donald Adu-Poku
1acb88472e multi: add amount field to TransactionInput.
This adds an amount field to TransactionInput intended for specifying the prev out amount when creating a transaction. createraw/ssrtx/sgentx/transaction rpcs are also updated accordingly as well as associated tests.

A typo in assignField is also corrected.
2018-06-21 23:54:42 +00:00
matadormel
7103c7d350 docs: Update txaccepted method in json_rpc_api.md.
The 'txaccepted' method is currently showing an out of date parameter within json_rpc_api.md. The first parameter is currently set to 'TxSha', however it should be set to either 'TxID' or 'TxHash' .
2018-05-31 11:09:23 -05:00
Dave Collins
d04706089c
docs: Update node.js example for v8.11.1 LTS.
This modifies the example for connecting to the dcrd RPC server from
node.js to work with node.js v8.11.1 LTS and v10.0.1 along with calling
out the tested version and requirement for the additional ecdhCurve
parameter on v8.11.1 LTS.
2018-05-15 11:52:14 -05:00
Markus Richter
1e42b8524d multi: Properly capitalize Decred.
Decred is inconsistencly capitalized in the code base,
change all occurences of decred to Decred.
2018-03-01 17:41:35 -06:00
Dave Collins
6573428e11
multi: Implement getchaintips JSON-RPC.
This implements the getchaintips JSON-RPC and updates the associated
JSON-RPC API documentation accordingly.

It should be noted that until the entire block index is loaded into
memory, the chain tips tracking currently only works with tips that have
been seen since the daemon was started.
2018-03-01 12:29:36 -06:00
Donald Adu-Poku
a0438c81c3 rpcserver: add batched request support (json 2.0) 2018-02-13 17:12:08 -06:00
Markus Richter
239d4c84a3 docs: make example code compile
- wire.NewShaHashFromStr has been moved to chainhash.NewHashFromStr
- use mainnet port and genesis block hash
2018-01-17 16:29:07 -06:00
Markus Richter
ca60e4ae90 docs: rpcclient is now part of the main dcrd repo
Adjust links and  example code to reflect that.
Also update example output.
2018-01-17 16:29:07 -06:00
Josh Rickmar
6842aa006d Merge remaining dcrutil code into a dcrd package.
This merge commit adds the following code from the
github.com/decred/dcrutil package into a new
github.com/decred/dcrd/dcrutil package:

* Address handling
* Amount type
* AppDataDir func
* bitflags functions
* Block wrapper type
* Hash160 func
* Tx wrapper type
* WIF type

as well as all tests for this code.

The old github.com/decred/dcrutil/hdkeychain package has also been
merged and moved to github.com/decred/dcrd/dcrutil/hdkeychain.

dcrd packages have been updated to use the new packages and the dep
files have been updated for this change.
2017-10-11 22:06:36 -04:00
Donald Adu-Poku
f11fac8134 multi: update stakebase tx vin[0] structure.
modifications to the stakebase tx vin[0] required adding a stakebase
field to Vin and VinPrevOut structs as well as updating the
rpc documentation for the affected calls.
2017-09-23 03:24:55 -05:00
Donald Adu-Poku
8a40fb5bbf docs: crosscheck and update all rpc doc entries.
The following updates were done throughout and were made to make important
information in the docs stand out at a glance:

- updates to requests info
- stylistic changes to displaying params
- returns and their types

The extended methods section was also removed (entries are now listed as
standard methods) since that section only applied to upstream. A doc entry for
loadtxfilter was also added.
2017-09-11 01:46:49 -05:00
Donald Adu-Poku
3b8f09f752 docs: create entry for getstakeversions in rpcapi 2017-08-31 00:00:44 -05:00
Donald Adu-Poku
9ad88e3436 docs: rpcapi format update.
the updated format is easier to edit
and maintains the tabular presentation
of the original
2017-08-18 13:54:58 -05:00
Dave Collins
c50d43e3cb
rpcserver: Improve help text for getmininginfo.
This improves the help text for stakedifficulty field of the
getmininginfo RPC to clarify it is the value for the next block.

Also, update the JSON-RPC docs entry to include the field which should
have been done previously.
2017-07-18 21:13:39 -05:00
Dave Collins
e2b74d501c
multi: Update markdown files for GFM changes.
The github markdown interpreter has been changed such that it no longer
allows spaces in between the brackets and parenthesis of links and now
requires a newline in between anchors and other formatting.  This
updates all of the markdown files accordingly.

While here, it also corrects a couple of inconsistencies in some of the
README.md files and correct some previous merge conflicts.
2017-07-16 15:33:12 -05:00
David Hill
f54151cf18 docs: update json examples 2017-05-17 22:47:29 -04:00
Dave Collins
c162fbde71
multi: Upstream chainhash abstraction sync
Contains the following commits:

- 711f33450c
- b6b1e55d1e
  - Reverted because Travis is already at a more recent version
- bd4e64d1d4

Also, the merge commit contains the necessary decred-specific
alterations, converts all other references to sha to hash to keep with
the spirit of the merged commits, and various other cleanup intended to
bring the code bases more in line with one another.
2016-11-16 12:48:40 -06:00
Dave Collins
bd4e64d1d4 chainhash: Abstract hash logic to new package. (#729)
This is mostly a backport of some of the same modifications made in
Decred along with a few additional things cleaned up.  In particular,
this updates the code to make use of the new chainhash package.

Also, since this required API changes anyways and the hash algorithm is
no longer tied specifically to SHA, all other functions throughout the
code base which had "Sha" in their name have been changed to Hash so
they are not incorrectly implying the hash algorithm.

The following is an overview of the changes:

- Remove the wire.ShaHash type
- Update all references to wire.ShaHash to the new chainhash.Hash type
- Rename the following functions and update all references:
  - wire.BlockHeader.BlockSha -> BlockHash
  - wire.MsgBlock.BlockSha -> BlockHash
  - wire.MsgBlock.TxShas -> TxHashes
  - wire.MsgTx.TxSha -> TxHash
  - blockchain.ShaHashToBig -> HashToBig
  - peer.ShaFunc -> peer.HashFunc
- Rename all variables that included sha in their name to include hash
  instead
- Update for function name changes in other dependent packages such as
  btcutil
- Update copyright dates on all modified files
- Update glide.lock file to use the required version of btcutil
2016-08-08 14:04:33 -05:00
Dave Collins
19873768b6 dcrjson: Add optional locktime to createrawtransaction
Upstream commit 4b7206b54f
2016-05-20 22:08:14 -05:00
Dave Collins
718f0f4942 Add reverse order option to searchrawtransactions rpc
Upstream commit 0190c349aa
2016-05-17 17:26:53 -05:00
Dave Collins
d5144c5026 Sync upstream through Sep 17, 2015. 2016-05-17 12:38:49 -05:00
cjepson
bee3c25021 Sync upstream through Aug 23, 2015
Requires dcrrpcclient#20.
2016-05-16 15:49:57 -04:00
David Hill
c53142d5d1 Implement getblockheader RPC. 2016-05-12 14:43:04 -05:00
Dave Collins
5f5bda7c82 docs: Correct JSON-RPC API overview return links.
This commit corrects the JSON-RPC API doc return to overview links for
the Websocket Extension Method Details section.
2016-05-11 13:39:40 -05:00
David Hill
83f42be247 Support getmempoolinfo. 2016-05-11 12:27:37 -05:00
Julian Yap
5c791721d6 Fix rpclisten and listen port references in documentation 2016-04-13 23:07:35 -10:00
cjepson
df701d8cdf Revert sync merge
The sync merge does not build and needs further testing. It is
being reverted.
2016-03-08 22:16:06 -05:00
Alex Yocom-Piatt
5b2b97e858 Sync to upstream 0280fa0264
Conflicts:
	blockchain/chain.go
	blockchain/checkpoints.go
	blockchain/difficulty.go
	blockchain/internal_test.go
	blockchain/txlookup.go
	blockchain/validate.go
	blockchain/validate_test.go
	blockmanager.go
	chaincfg/params.go
	cmd/dropafter/dropafter.go
	cpuminer.go
	database/db.go
	database/interface_test.go
	database/ldb/block.go
	database/ldb/insertremove_test.go
	database/ldb/leveldb.go
	database/ldb/operational_test.go
	database/ldb/tx.go
	database/memdb/memdb.go
	database/reorg_test.go
	dcrjson/walletsvrcmds.go
	docs/README.md
	docs/json_rpc_api.md
	mempool.go
	mining.go
	peer.go
	rpcserver.go
	rpcserverhelp.go
	rpcwebsocket.go
	sample-dcrd.conf
	txscript/consensus.go
	txscript/script_test.go
	txscript/sign.go
	txscript/standard.go
	wire/blockheader_test.go
	wire/msgtx_test.go
2016-03-07 11:35:24 -06:00
John C. Vernaleo
5076a00512 Initial Decred Commit.
Includes work by cjepson, ay-p, jolan, and jcv.

Initial conceptual framework by tacotime.
2016-02-07 14:00:12 -05:00
David Hill
4b7206b54f btcjson: Add optional locktime to createrawtransaction
rpcserver:
If the locktime is given, the transaction inputs will be set to a
non-max value, activating the locktime.  The locktime for the
new transaction will be set to the given value.

This mimics Bitcoin Core commit 212bcca92089f406d9313dbe6d0e1d25143d61ff
2015-10-30 17:16:50 -04:00
Dario Nieuwenhuis
0190c349aa Add reverse order option to searchrawtransactions rpc 2015-10-08 16:31:39 +02:00
Josh Rickmar
3c9d18d641 Add a websocket session RPC. 2015-09-17 12:18:15 -04:00
Josh Rickmar
6ac46f9e5f Remove mixed newlines in documentation. 2015-09-17 12:18:15 -04:00
danda
43774fe6bb adds optional prevOut section to vin for searchrawtransactions api. See https://github.com/btcsuite/btcd/issues/485 2015-08-23 09:58:03 -07:00
David Hill
a6c79c7a91 Implement getblockheader RPC.
This mimics Bitcoin Core commit 076badb60f33f0c32b035de220ca14c52a423a2a
2015-07-23 15:22:17 -04:00
Dave Collins
7246b9b933 docs: Correct JSON-RPC API overview return links.
This commit corrects the JSON-RPC API doc return to overview links for
the Websocket Extension Method Details section.
2015-07-20 12:32:40 -05:00
David Hill
7cfa843832 Support getmempoolinfo. 2015-06-24 20:34:56 -04:00
Josh Rickmar
09ce6f94d3 Add timestamps to block(dis)connected notifications. 2015-06-18 13:02:13 -04:00
Josh Rickmar
2ceb6418e7 Notify mined transactions before connected block.
This allows clients watching for both to know when all mined
transaction notifications for the block have been received.
Otherwise, clients would be aware that there is a new block, see the
exact same block hash/height in the next tx notifications, but never
know when all txs from the block have been received and processed.

This fixes a synchronization issue in btcwallet where the wallet would
mark itself synced to some block height before any of those blocks'
transactions were processed.  If the RPC connection is lost between
sending the blockconnected notification and receiving the last
transaction notification, the wallet would not know of this and
continue with missing transactions.
2015-06-17 22:37:55 -04:00
Olaoluwa Osuntokun
6801c0000a Fix #122 by allowing clients to cancel websockets notifications.
This commit adds 4 new websockets JSON-RPC methods for canceling
notifications:
  * stopnotifyspent
  * stopnotifyreceived
  * stopnotifyblocks
  * stopnotifynewtransactions
2015-05-05 08:54:27 -07:00
Alex Akselrod
d26aaffb2b Create generate RPC command to close #362
Create GenerateCmd in btcjson v2. Update tests to check GenerateCmd.

Update chaincfg/params.go with a new bool in Params, GenerateSupported,
with true values in SimNetParams and RegressionNetParams and false in
the others.

Create new flag, discreteMining, in CPUMiner struct.

Add GenerateNBlocks function to cpuminer.go and handleGenerate
function to rpcserver.go.

Update documentation for the RPC calls.
2015-05-04 21:04:25 -04:00
Dave Collins
9a658c2689 rpcserver: Omit empty getblock->nextblockhash.
This commit omits the nextblockhash field from the getblock RPC result
when there isn't one (i.e for current the tip).

Closes #416.
2015-05-04 10:38:40 -05:00
Olaoluwa Osuntokun
65b044eea2 Fix #79 by adding a new node JSON-RPC command
* Gives node operators full control of peer connectivity
* RPC adds ability to disconnect all matching non-persistent peers,
  remove persistent peers, and connect to peers making them either
  temporary or persistent.
2015-04-14 23:07:51 -07:00
Alex Akselrod
4a1445a032 Create limited RPC user.
The limited user is specified with the --rpclimituser and
--rpclimitpass options (or the equivalent in the config file).
The config struct and loadConfig() are updated to take the
new options into account. The limited user can have neither
the same username nor the same password as the admin user.

The package-level rpcLimit map in rpcserver.go specifies
the RPC commands accessible by limited users. This map
includes both HTTP/S and websocket commands.

The checkAuth function gets a new return parameter to
signify whether the user is authorized to change server
state. The result is passed to the jsonRPCRead function and
to the WebsocketHandler function in rpcwebsocket.go.

The wsClient struct is updated with an "isAdmin" field
signifying that the client is authorized to change server
state, written by WebsocketHandler and handleMessage.
The handleMessage function also checks the field to
allow or disallow an RPC call.

The following documentation files are updated:
- doc.go
- sample-btcd.conf
- docs/README.md
- docs/json_rpc_api.md
- docs/configure_rpc_server_listen_interfaces.md
2015-04-13 14:14:52 -04:00
Olaoluwa Osuntokun
1bf564d963 Fix #138 by dynamically updating heights of peers
In order to avoid prior situations of stalled syncs due to
outdated peer height data, we now update block heights up peers in
real-time as we learn of their announced
blocks.

Updates happen when:
   * A peer sends us an orphan block. We update based on
     the height embedded in the scriptSig for the coinbase tx
   * When a peer sends us an inv for a block we already know
     of
   * When peers announce new blocks. Subsequent
     announcements that lost the announcement race are
     recognized and peer heights are updated accordingly

Additionally, the `getpeerinfo` command has been modified
to include both the starting height, and current height of
connected peers.

Docs have been updated with `getpeerinfo` extension.
2015-04-01 17:22:45 -07:00