Skip to content

Conversation

CryptoCentric
Copy link

Back ports from Bitcoin
New Gitian build setup and set base for deterministic builds in v13.0.0
Remove mining capabilities from windows and mac wallets
General bug fixes

codablock and others added 30 commits April 25, 2019 14:31
* Split CActiveMasternode into CActiveMasternodeInfo and CLegacyActiveMasternodeManager

* Use CKeyID instead of CPubKey whenever possible in masternode code

* Rename activeMasternode to activeMasternodeInfo and make it a struct

* Rename pubKeyIDXXX to keyIDXXX

* Bump SERIALIZATION_VERSION_STRING

* Fix build error after rebase

* Fix compilation warning/error with clang
1. Move out old budget validation into it's own function (IsOldBudgetBlockValueValid)

2. Refactor IsBlockValueValid to bail out early instead of using deep
   nested if/else blocks. IMHO, I feel that this makes the code much easier
   to read and less error prone.
3. Refactor/rename CreateSuperblock and CMasternodePayments::FillBlockPayee
   to be getters without actually modifying the coinbase TX. The coinbase
   is now only modified from the global FillBlockPayments function. Makes
   later changes in AIP3 easier (allowing superblock and MN rewards in same block)

* Use __func__ for logging in block payee code
* Merge bitcoin#11881: Remove Python2 support

1874058 Make base58 python contrib code work with python3 (Evan Klitzke)
bc6fdf2 Change all python files to use Python3 (John Newbery)

Pull request description:

  Following discussion here: bitcoin#11843 (comment)

  It's easier for maintainers if all python tools/scripts support only a single version of Python. There are only a few scripts that aren't explicitly python3 at this point, so this PR changes those remaining scripts to explicitly require python3.

Tree-SHA512: 5d38eef6e0fc7d8515e23a1f4c75e8b4160fd0fe23cba52a1f41689b114e54a9e503e0724829e8b41982ef98f2d113df80d9e238213b74f09ceaed0344a19e24

* Merge bitcoin#12829: Python3 fixup

f50975b [contrib] fixup symbol-check.py Python3 support (John Newbery)
5de2b18 [contrib] fixup security-check.py Python3 support (John Newbery)

Pull request description:

  security-check.py and symbol-check.py were broken by bitcoin#11881. Fix them.
* Add stdin, stdout, stderr to ignored export list

* Merge bitcoin#13171: Change gitian-descriptors to use bionic instead

c1afe32 Change gitian-descriptors to use bionic instead (Chun Kuan Lee)

Pull request description:

  I have tested this with Ubuntu Bionic host with lxc 3.0.0, the gitian-build for Windows and MacOSX work fine, but there is an issue about it for Linux. Failed at check-symbol:
  ```
  test/test_bitcoin: symbol __divmoddi4 from unsupported version GCC_7.0.0
  test/test_bitcoin: symbol log2f from unsupported version GLIBC_2.27
  qt/bitcoin-qt: symbol __divmoddi4 from unsupported version GCC_7.0.0
  qt/bitcoin-qt: symbol log2f from unsupported version GLIBC_2.27
  ```
  I think this should be fixed in `./configure --enable-glibc-back-compat`

  Should not be merged before bitcoin#13177 devrandom/gitian-builder#178

  Close bitcoin#12511

Tree-SHA512: 257d75d5b6864e105279f7a7b992fbbd7903cdbe3300b66dacec0a783d267707d9dbbfe0e64a36983ca1eca50a2a5e1cdb222b6d3745ccc3e5fc5636c88b581f

* Use IN6ADDR_ANY_INIT instead of in6addr_any

This is the same fix as bitcoin/bitcoin@fc6a9f2
Couldn't backport the original commit as we are missing some refactorings.
* Prepare for AIP3 operator reward payments and switch to array in getblocktemplate

This commit allows to later split MN rewards into multiple recipients, e.g.
the owner reward and operator reward. It also updates the getblocktemplate
output to return an array of MN payments instead of a single entry.

This should allow MN miners and pool operators to prepare themself for the
upcoming changes in regard to operator rewards.

* txoutsMasternode -> voutMasternode

* More renaming

* Consider all masternode payments when looking for a known masternode
* Build bionic base image in Jenkinsfile.gitian

We updated gitian builds to use bionic, so we should also update the Jenkinsfile

* Update docs
…ashpay#2230)

* adds rpc calls for `setprivatesendrounds` and `setprivatesendamount`

* tabs -> spaces

* @gladcow change request

* Whops tab -> spaces

* @Udjin changes, not the CAmount -> int

* int stuff

* Throw error when rounds / amount isn't within range
* add compressed option to `masternode genkey`

* use ParseBoolV method

* adjust help message for masternode genkey
* Don't crash when formatting in logging throws exceptions

* Preserve exception like output
… ContextualCheckTransaction instead (dashpay#2238)

* Pass consensus params to ContextualCheckTransaction

As we do with ContextualCheckBlock

* Use ContextualCheckTransaction in ContextualCheckBlock instead of duplicating the check

* Fix pindexPrev parameter signature in ContextualCheckTransaction
Should only call SwitchToNextAsset() while being in specific state and not on every tick
* Support help for masternode rpc call subcommands

* Support help for gobject rpc call subcommands

* squash ifs for conditions to show help

* remove code duplication for masternode list and masternodelist help calls
We actually can't use the current block as that one might not be fully
processed/built yet.
Add "immer" functional/immutable containers library
Allows easier commit/rollback handling, especially useful when AcceptBlock
fails and things need to be reverted.
If too many connections are made to the RPC interface, then other code will fail on open(2) syscalls with EMFILE. The result can be that the block database gets into an inconsistent state.

On many Linux distributions, by default, each process has 1024 file descriptors; these are shared between open files and network connections. The main init code attempts to apportion them between uses, but neglects to constrain the RPC layer

Unfortunately, libevent does not allow a natural way to bound the number of file-descriptors used by the evhttp server. Therefore, we have to resort to requesting to stop new connections by disabling the accept listener in the epoll event structure. This is not a good way to control load, and more connections are accepted until the next epoll cycle is triggered, but it does stop an unbounded number of connections from being created, and does prevent a high number of connections to the RPC layer from damaging the rest of the system.
ken2812221 and others added 29 commits August 22, 2019 10:04
Now that we require glibc 2.17 or later, we no longer need to check for
different return types in fdelt_chk. It was changed from unsigned long
int to long int in glibc 2.16 . See this commit:
https://sourceware.org/git/?p=glibc.git;a=commit;h=ceb9e56b3d1f8c1922e0526c2e841373843460e2
and related issue:
https://sourceware.org/bugzilla/show_bug.cgi?id=14210.
These cause compilation errors on some platforms.
Observed this when I tried to cross compile win32
locally on a Debian Stretch machine.
@CryptoCentric CryptoCentric merged commit 21b0208 into master Jul 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.