dash/doc
Odysseas Gabrielides 3bc77a6e1d
feat(rpc): submit chainlock signature if needed RPC (#5765)
## Issue being fixed or feature implemented
Once Platform is live, there could be an edge case where the CL could
arrive to an EvoNode faster through Platform quorum than regular P2P
propagation.

## What was done?
This PR introduces a new RPC `submitchainlock` with the following 3
mandatory parameters:
- `blockHash`, `signature` and `height`.

Besides some basic tests:
- If the block is unknown then the RPC returns an error (could happen if
the node is stucked)
- If the signature is not verified then the RPC return an error.
- If the node already has this CL, the RPC returns true.
- If the node doesn't have this CL, it inserts it, broadcast it through
the inv system and return true.

## How Has This Been Tested?
`feature_llmq_chainlocks.py` was modified with the following scenario:

1. node0 is isolated from the rest of the network
2. node1 mines a new block and waits for CL
3. Make sure node0 doesn't know the new block/CL (by checking
`getbestchainlock()`)
4. CL is submitted via the new RPC on node0
5. checking `getbestchainlock()` and make sure the CL was processed +
'known_block' is false
6. reconnect node0

## Breaking Changes
no

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: thephez <thephez@users.noreply.github.com>
2023-12-18 22:27:19 -06:00
..
man docs: update man pages (#5672) 2023-11-07 08:04:39 -06:00
release-notes/dash docs: archive v20.0.1 release notes and create v20.0.2 release notes 2023-12-05 16:29:48 +02:00
.gitignore
assets-attribution.md
benchmarking.md
bips.md Merge #17111: doc: update bips.md with buried BIP9 deployments 2023-12-06 11:40:14 -06:00
bitcoin_logo_doxygen.png
build-freebsd.md merge bitcoin#20601: Update for FreeBSD 12.2, add GUI Build Instructions 2023-05-27 23:15:05 +05:30
build-netbsd.md merge bitcoin#18340: mention MAKE=gmake workaround when building on a BSD 2023-05-27 23:15:05 +05:30
build-openbsd.md merge bitcoin#18340: mention MAKE=gmake workaround when building on a BSD 2023-05-27 23:15:05 +05:30
build-osx.md merge bitcoin#23909: use a static .tiff for macOS .dmg over generating 2023-06-18 11:47:54 -05:00
build-unix.md (partial) Merge #17934: doc: Use CONFIG_SITE variable instead of --prefix option 2023-12-03 20:32:22 -06:00
build-windows.md Merge #21342: doc: Remove outdated comment 2023-08-28 11:24:41 -05:00
dash-conf.md
dependencies.md Merge bitcoin/bitcoin#28561: build: Update qt package up to 5.15.10 2023-12-07 09:14:57 -06:00
descriptors.md Merge #18032: rpc: Output a descriptor in createmultisig and addmultisigaddress 2023-04-06 20:15:47 +03:00
developer-notes.md Merge #19258: doc: improve subtree check instructions 2023-12-06 11:40:14 -06:00
dnsseed-policy.md
Doxyfile.in
files.md merge bitcoin#22570: Ignore banlist.dat 2023-09-24 09:50:50 -05:00
fuzzing.md Merge #21398: doc: Update fuzzing docs for afl-clang-lto 2023-08-28 11:31:55 -05:00
guix.md Merge #20619: guix: Quality of life improvements 2023-03-26 16:50:26 -05:00
i2p.md docs: update tor and i2p docs (#5673) 2023-11-06 09:23:20 -06:00
init.md Merge #16556: Fix systemd service file configuration directory setup 2023-04-06 20:14:58 +03:00
instantsend.md
JSON-RPC-interface.md merge bitcoin#19762: Allow named and positional arguments to be used together 2023-07-28 00:18:27 -05:00
managing-wallets.md Merge bitcoin/bitcoin#22523: Document about wallet backup and restoration 2023-12-11 15:48:44 -06:00
masternode-budget.md
productivity.md Merge #19058: doc: Drop protobuf stuff 2023-04-25 23:41:20 -05:00
psbt.md Merge #16047: doc: analyzepsbt description in doc/psbt.md 2023-02-10 23:34:57 +03:00
README_doxygen.md
README_windows.txt
README.md Merge bitcoin/bitcoin#22739: doc: link to managing-wallets from docs README 2023-12-11 15:48:44 -06:00
reduce-memory.md
reduce-traffic.md merge bitcoin#19191: Extract download permission from noban 2023-06-05 10:11:03 -05:00
release-notes-5342.md docs: add release notes for 5342 (#5568) 2023-09-09 12:26:36 -05:00
release-notes-5493.md docs: Added release notes for #5493 (#5556) 2023-09-07 12:06:28 -05:00
release-notes-5765.md feat(rpc): submit chainlock signature if needed RPC (#5765) 2023-12-18 22:27:19 -06:00
release-notes-15367.md Merge #15367: feature: Added ability for users to add a startup command 2023-12-06 12:33:15 -06:00
release-notes-16525.md Merge #16525: Dump transaction version as an unsigned integer in RPC/TxToUniv 2023-12-06 12:33:15 -06:00
release-notes-18309.md Merge #18309: zmq: Add support to listen on multiple interfaces 2023-12-06 12:33:15 -06:00
release-notes-22407.md Merge bitcoin/bitcoin#22407: rpc: Return block time in getblockchaininfo 2023-12-03 20:13:09 -06:00
release-notes-26896.md Merge bitcoin/bitcoin#26896: build: Remove port-forwarding runtime setting options from configure 2023-12-03 20:01:26 -06:00
release-notes.md docs: archive v20.0.1 release notes and create v20.0.2 release notes 2023-12-05 16:29:48 +02:00
release-process.md docs: update release process document to follow-up v20 release (#5710) 2023-11-29 08:27:34 -06:00
REST-interface.md
shared-libraries.md
tor.md docs: update tor and i2p docs (#5673) 2023-11-06 09:23:20 -06:00
translation_process.md
translation_strings_policy.md
zmq.md Merge #18309: zmq: Add support to listen on multiple interfaces 2023-12-06 12:33:15 -06:00

Dash Core

This is the official reference wallet for Dash digital currency and comprises the backbone of the Dash peer-to-peer network. You can download Dash Core or build it yourself using the guides below.

Running

The following are some helpful notes on how to run Dash Core on your native platform.

Unix

Unpack the files into a directory and run:

  • bin/dash-qt (GUI) or
  • bin/dashd (headless)

Windows

Unpack the files into a directory, and then run dash-qt.exe.

macOS

Drag Dash Core to your applications folder, and then run Dash Core.

Need Help?

Building

The following are developer notes on how to build Dash Core on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.

Development

The Dash Core repo's root README contains relevant information on the development process and automated testing.

Resources

Miscellaneous

License

Distributed under the MIT software license.