mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
Merge pull request #4260 from PastaPastaPasta/backport-triv-pr15
Backport triv pr15
This commit is contained in:
commit
9bb7a608a2
@ -109,7 +109,7 @@ Note: Code review is a burdensome but important part of the development process,
|
|||||||
|
|
||||||
If your pull request contains fixup commits (commits that change the same line of code repeatedly) or too fine-grained
|
If your pull request contains fixup commits (commits that change the same line of code repeatedly) or too fine-grained
|
||||||
commits, you may be asked to [squash](https://git-scm.com/docs/git-rebase#_interactive_mode) your commits
|
commits, you may be asked to [squash](https://git-scm.com/docs/git-rebase#_interactive_mode) your commits
|
||||||
before it will be merged. The basic squashing workflow is shown below.
|
before it will be reviewed. The basic squashing workflow is shown below.
|
||||||
|
|
||||||
git checkout your_branch_name
|
git checkout your_branch_name
|
||||||
git rebase -i HEAD~n
|
git rebase -i HEAD~n
|
||||||
|
@ -56,6 +56,12 @@
|
|||||||
# Maximum number of inbound+outbound connections.
|
# Maximum number of inbound+outbound connections.
|
||||||
#maxconnections=
|
#maxconnections=
|
||||||
|
|
||||||
|
# Maximum upload bandwidth target in MiB per day (e.g. 'maxuploadtarget=1024' is 1 GiB per day).
|
||||||
|
# This limits the upload bandwidth for those with bandwidth limits. 0 = no limit (default: 0).
|
||||||
|
# -maxuploadtarget does not apply to peers with 'download' permission.
|
||||||
|
# For more information on reducing bandwidth utilization, see: doc/reduce-traffic.md.
|
||||||
|
#maxuploadtarget=
|
||||||
|
|
||||||
#
|
#
|
||||||
# JSON-RPC options (for controlling a running Dash/dashd process)
|
# JSON-RPC options (for controlling a running Dash/dashd process)
|
||||||
#
|
#
|
||||||
|
@ -7,7 +7,8 @@ clang-format-diff.py
|
|||||||
|
|
||||||
A script to format unified git diffs according to [.clang-format](../../src/.clang-format).
|
A script to format unified git diffs according to [.clang-format](../../src/.clang-format).
|
||||||
|
|
||||||
Requires `clang-format`, installed e.g. via `brew install clang-format` on macOS.
|
Requires `clang-format`, installed e.g. via `brew install clang-format` on macOS,
|
||||||
|
or `sudo apt install clang-format` on Debian/Ubuntu.
|
||||||
|
|
||||||
For instance, to format the last commit with 0 lines of context,
|
For instance, to format the last commit with 0 lines of context,
|
||||||
the script should be called from the git root folder as follows.
|
the script should be called from the git root folder as follows.
|
||||||
|
@ -544,7 +544,8 @@ if len(config.fancy) == 1:
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
fancy = plistlib.readPlist(p)
|
with open(p, 'rb') as fp:
|
||||||
|
fancy = plistlib.load(fp, fmt=plistlib.FMT_XML)
|
||||||
except:
|
except:
|
||||||
if verbose >= 1:
|
if verbose >= 1:
|
||||||
sys.stderr.write("Error: Could not parse fancy disk image plist at \"%s\"\n" % (p))
|
sys.stderr.write("Error: Could not parse fancy disk image plist at \"%s\"\n" % (p))
|
||||||
|
@ -34,3 +34,14 @@ wallet would reflect the removal of these mempool transactions in the state.
|
|||||||
|
|
||||||
However, the wallet may not be up-to-date with the current state of the mempool
|
However, the wallet may not be up-to-date with the current state of the mempool
|
||||||
or the state of the mempool by an RPC that returned before this RPC.
|
or the state of the mempool by an RPC that returned before this RPC.
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
There is a known issue in the JSON-RPC interface that can cause a node to crash if
|
||||||
|
too many http connections are being opened at the same time because the system runs
|
||||||
|
out of available file descriptors. To prevent this from happening you might
|
||||||
|
want to increase the number of maximum allowed file descriptors in your system
|
||||||
|
and try to prevent opening too many connections to your JSON-RPC interface at the
|
||||||
|
same time if this is under your control. It is hard to give general advice
|
||||||
|
since this depends on your system but if you make several hundred requests at
|
||||||
|
once you are definitely at risk of encountering this issue.
|
||||||
|
@ -11,6 +11,18 @@ REST Interface consistency guarantees
|
|||||||
The [same guarantees as for the RPC Interface](/doc/JSON-RPC-interface.md#rpc-consistency-guarantees)
|
The [same guarantees as for the RPC Interface](/doc/JSON-RPC-interface.md#rpc-consistency-guarantees)
|
||||||
apply.
|
apply.
|
||||||
|
|
||||||
|
Limitations
|
||||||
|
-----------
|
||||||
|
|
||||||
|
There is a known issue in the REST interface that can cause a node to crash if
|
||||||
|
too many http connections are being opened at the same time because the system runs
|
||||||
|
out of available file descriptors. To prevent this from happening you might
|
||||||
|
want to increase the number of maximum allowed file descriptors in your system
|
||||||
|
and try to prevent opening too many connections to your rest interface at the
|
||||||
|
same time if this is under your control. It is hard to give general advice
|
||||||
|
since this depends on your system but if you make several hundred requests at
|
||||||
|
once you are definitely at risk of encountering this issue.
|
||||||
|
|
||||||
Supported API
|
Supported API
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -66,6 +66,11 @@ tool to clean up patches automatically before submission.
|
|||||||
on the same line as the `if`, without braces. In every other case,
|
on the same line as the `if`, without braces. In every other case,
|
||||||
braces are required, and the `then` and `else` clauses must appear
|
braces are required, and the `then` and `else` clauses must appear
|
||||||
correctly indented on a new line.
|
correctly indented on a new line.
|
||||||
|
- There's no hard limit on line width, but prefer to keep lines to <100
|
||||||
|
characters if doing so does not decrease readability. Break up long
|
||||||
|
function declarations over multiple lines using the Clang Format
|
||||||
|
[AlignAfterOpenBracket](https://clang.llvm.org/docs/ClangFormatStyleOptions.html)
|
||||||
|
style option.
|
||||||
|
|
||||||
- **Symbol naming conventions**. These are preferred in new code, but are not
|
- **Symbol naming conventions**. These are preferred in new code, but are not
|
||||||
required when doing so would need changes to significant pieces of existing
|
required when doing so would need changes to significant pieces of existing
|
||||||
@ -903,13 +908,6 @@ A few guidelines for introducing and reviewing new RPC interfaces:
|
|||||||
|
|
||||||
- *Rationale*: If not, the call can not be used with name-based arguments.
|
- *Rationale*: If not, the call can not be used with name-based arguments.
|
||||||
|
|
||||||
- Set okSafeMode in the RPC command table to a sensible value: safe mode is when the
|
|
||||||
blockchain is regarded to be in a confused state, and the client deems it unsafe to
|
|
||||||
do anything irreversible such as send. Anything that just queries should be permitted.
|
|
||||||
|
|
||||||
- *Rationale*: Troubleshooting a node in safe mode is difficult if half the
|
|
||||||
RPCs don't work.
|
|
||||||
|
|
||||||
- Add every non-string RPC argument `(method, idx, name)` to the table `vRPCConvertParams` in `rpc/client.cpp`.
|
- Add every non-string RPC argument `(method, idx, name)` to the table `vRPCConvertParams` in `rpc/client.cpp`.
|
||||||
|
|
||||||
- *Rationale*: `dash-cli` and the GUI debug console use this table to determine how to
|
- *Rationale*: `dash-cli` and the GUI debug console use this table to determine how to
|
||||||
|
13
src/bloom.h
13
src/bloom.h
@ -109,7 +109,18 @@ public:
|
|||||||
* insert()'ed ... but may also return true for items that were not inserted.
|
* insert()'ed ... but may also return true for items that were not inserted.
|
||||||
*
|
*
|
||||||
* It needs around 1.8 bytes per element per factor 0.1 of false positive rate.
|
* It needs around 1.8 bytes per element per factor 0.1 of false positive rate.
|
||||||
* (More accurately: 3/(log(256)*log(2)) * log(1/fpRate) * nElements bytes)
|
* For example, if we want 1000 elements, we'd need:
|
||||||
|
* - ~1800 bytes for a false positive rate of 0.1
|
||||||
|
* - ~3600 bytes for a false positive rate of 0.01
|
||||||
|
* - ~5400 bytes for a false positive rate of 0.001
|
||||||
|
*
|
||||||
|
* If we make these simplifying assumptions:
|
||||||
|
* - logFpRate / log(0.5) doesn't get rounded or clamped in the nHashFuncs calculation
|
||||||
|
* - nElements is even, so that nEntriesPerGeneration == nElements / 2
|
||||||
|
*
|
||||||
|
* Then we get a more accurate estimate for filter bytes:
|
||||||
|
*
|
||||||
|
* 3/(log(256)*log(2)) * log(1/fpRate) * nElements
|
||||||
*/
|
*/
|
||||||
class CRollingBloomFilter
|
class CRollingBloomFilter
|
||||||
{
|
{
|
||||||
|
@ -72,6 +72,9 @@ public:
|
|||||||
::Unserialize(s, Using<TxOutCompression>(out));
|
::Unserialize(s, Using<TxOutCompression>(out));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Either this coin never existed (see e.g. coinEmpty in coins.cpp), or it
|
||||||
|
* did exist and has been spent.
|
||||||
|
*/
|
||||||
bool IsSpent() const {
|
bool IsSpent() const {
|
||||||
return out.IsNull();
|
return out.IsNull();
|
||||||
}
|
}
|
||||||
|
@ -1284,7 +1284,7 @@ bool AppInitParameterInteraction()
|
|||||||
|
|
||||||
// Trim requested connection counts, to fit into system limitations
|
// Trim requested connection counts, to fit into system limitations
|
||||||
// <int> in std::min<int>(...) to work around FreeBSD compilation issue described in #2695
|
// <int> in std::min<int>(...) to work around FreeBSD compilation issue described in #2695
|
||||||
nFD = RaiseFileDescriptorLimit(nMaxConnections + MIN_CORE_FILEDESCRIPTORS + MAX_ADDNODE_CONNECTIONS);
|
nFD = RaiseFileDescriptorLimit(nMaxConnections + MIN_CORE_FILEDESCRIPTORS + MAX_ADDNODE_CONNECTIONS + nBind);
|
||||||
#ifdef USE_POLL
|
#ifdef USE_POLL
|
||||||
int fd_max = nFD;
|
int fd_max = nFD;
|
||||||
#else
|
#else
|
||||||
|
@ -257,10 +257,14 @@ bool CNetAddr::SetSpecial(const std::string& str)
|
|||||||
Span<const uint8_t> input_checksum{input.data() + ADDR_TORV3_SIZE, torv3::CHECKSUM_LEN};
|
Span<const uint8_t> input_checksum{input.data() + ADDR_TORV3_SIZE, torv3::CHECKSUM_LEN};
|
||||||
Span<const uint8_t> input_version{input.data() + ADDR_TORV3_SIZE + torv3::CHECKSUM_LEN, sizeof(torv3::VERSION)};
|
Span<const uint8_t> input_version{input.data() + ADDR_TORV3_SIZE + torv3::CHECKSUM_LEN, sizeof(torv3::VERSION)};
|
||||||
|
|
||||||
|
if (input_version != torv3::VERSION) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t calculated_checksum[torv3::CHECKSUM_LEN];
|
uint8_t calculated_checksum[torv3::CHECKSUM_LEN];
|
||||||
torv3::Checksum(input_pubkey, calculated_checksum);
|
torv3::Checksum(input_pubkey, calculated_checksum);
|
||||||
|
|
||||||
if (input_checksum != calculated_checksum || input_version != torv3::VERSION) {
|
if (input_checksum != calculated_checksum) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="prune">
|
<widget class="QCheckBox" name="prune">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</string>
|
<string>Enabling pruning significantly reduces the disk space required to store transactions. All blocks are still fully validated. Reverting this setting requires re-downloading the entire blockchain.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Prune &block storage to</string>
|
<string>Prune &block storage to</string>
|
||||||
|
@ -3937,10 +3937,10 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CTransac
|
|||||||
WalletLogPrintf("Fee Calculation: Fee:%d Bytes:%u Tgt:%d (requested %d) Reason:\"%s\" Decay %.5f: Estimation: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n",
|
WalletLogPrintf("Fee Calculation: Fee:%d Bytes:%u Tgt:%d (requested %d) Reason:\"%s\" Decay %.5f: Estimation: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n",
|
||||||
nFeeRet, nBytes, feeCalc.returnedTarget, feeCalc.desiredTarget, StringForFeeReason(feeCalc.reason), feeCalc.est.decay,
|
nFeeRet, nBytes, feeCalc.returnedTarget, feeCalc.desiredTarget, StringForFeeReason(feeCalc.reason), feeCalc.est.decay,
|
||||||
feeCalc.est.pass.start, feeCalc.est.pass.end,
|
feeCalc.est.pass.start, feeCalc.est.pass.end,
|
||||||
100 * feeCalc.est.pass.withinTarget / (feeCalc.est.pass.totalConfirmed + feeCalc.est.pass.inMempool + feeCalc.est.pass.leftMempool),
|
(feeCalc.est.pass.totalConfirmed + feeCalc.est.pass.inMempool + feeCalc.est.pass.leftMempool) > 0.0 ? 100 * feeCalc.est.pass.withinTarget / (feeCalc.est.pass.totalConfirmed + feeCalc.est.pass.inMempool + feeCalc.est.pass.leftMempool) : 0.0,
|
||||||
feeCalc.est.pass.withinTarget, feeCalc.est.pass.totalConfirmed, feeCalc.est.pass.inMempool, feeCalc.est.pass.leftMempool,
|
feeCalc.est.pass.withinTarget, feeCalc.est.pass.totalConfirmed, feeCalc.est.pass.inMempool, feeCalc.est.pass.leftMempool,
|
||||||
feeCalc.est.fail.start, feeCalc.est.fail.end,
|
feeCalc.est.fail.start, feeCalc.est.fail.end,
|
||||||
100 * feeCalc.est.fail.withinTarget / (feeCalc.est.fail.totalConfirmed + feeCalc.est.fail.inMempool + feeCalc.est.fail.leftMempool),
|
(feeCalc.est.fail.totalConfirmed + feeCalc.est.fail.inMempool + feeCalc.est.fail.leftMempool) > 0.0 ? 100 * feeCalc.est.fail.withinTarget / (feeCalc.est.fail.totalConfirmed + feeCalc.est.fail.inMempool + feeCalc.est.fail.leftMempool) : 0.0,
|
||||||
feeCalc.est.fail.withinTarget, feeCalc.est.fail.totalConfirmed, feeCalc.est.fail.inMempool, feeCalc.est.fail.leftMempool);
|
feeCalc.est.fail.withinTarget, feeCalc.est.fail.totalConfirmed, feeCalc.est.fail.inMempool, feeCalc.est.fail.leftMempool);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user