Page MenuHomePhabricator

[64-bit ints] 32-bit integers? I never knew you
Needs ReviewPublic

Authored by tobias_ruck on Tue, Nov 18, 15:08.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Summary

After this upgrade, it's save to pretend we never had 32-bit integers: depart from me.

This keeps the node codebase clean, and we pretend like we always had 63+sign-bit integers.

We don't update agora's defaults etc., which can be done in a separate diff.

Also, feature_63_bit_ints is removed because this is a test just for the activation, which ostensibly worked very well.

Test Plan

ninja check

Diff Detail

Event Timeline

Failed tests logs:

====== tests.test_iguana.test_redeem_script_exception ======
tests/test_iguana.py:501 (test_redeem_script_exception)
 != redeemScript failed execution: Integer overflow


def test_redeem_script_exception():
        redeem_script = CScript([OP_ADD])
        tx = CTransaction()
        tx.vin = [CTxIn(COutPoint(), CScript([b"111111", b"222222", bytes(redeem_script)]))]
        script_hash = hash160(redeem_script)
        script_pub_key = CScript([OP_HASH160, script_hash, OP_EQUAL])
>       stdout = iguana(
            "-tx=" + tx.serialize().hex(),
            "-inputindex=0",
            "-scriptpubkey=" + script_pub_key.hex(),
            "-value=0",
            expected_stderr="redeemScript failed execution: Integer overflow\n",
        )

tests/test_iguana.py:508:

Each failure log is accessible here:
tests.test_iguana.test_redeem_script_exception

Failed tests logs:

====== tests.test_iguana.test_redeem_script_exception ======
tests/test_iguana.py:501 (test_redeem_script_exception)
 != redeemScript failed execution: Integer overflow


def test_redeem_script_exception():
        redeem_script = CScript([OP_ADD])
        tx = CTransaction()
        tx.vin = [CTxIn(COutPoint(), CScript([b"111111", b"222222", bytes(redeem_script)]))]
        script_hash = hash160(redeem_script)
        script_pub_key = CScript([OP_HASH160, script_hash, OP_EQUAL])
>       stdout = iguana(
            "-tx=" + tx.serialize().hex(),
            "-inputindex=0",
            "-scriptpubkey=" + script_pub_key.hex(),
            "-value=0",
            expected_stderr="redeemScript failed execution: Integer overflow\n",
        )

tests/test_iguana.py:508:

Each failure log is accessible here:
tests.test_iguana.test_redeem_script_exception

Failed tests logs:

====== tests.test_iguana.test_redeem_script_exception ======
tests/test_iguana.py:501 (test_redeem_script_exception)
 != redeemScript failed execution: Integer overflow


def test_redeem_script_exception():
        redeem_script = CScript([OP_ADD])
        tx = CTransaction()
        tx.vin = [CTxIn(COutPoint(), CScript([b"111111", b"222222", bytes(redeem_script)]))]
        script_hash = hash160(redeem_script)
        script_pub_key = CScript([OP_HASH160, script_hash, OP_EQUAL])
>       stdout = iguana(
            "-tx=" + tx.serialize().hex(),
            "-inputindex=0",
            "-scriptpubkey=" + script_pub_key.hex(),
            "-value=0",
            expected_stderr="redeemScript failed execution: Integer overflow\n",
        )

tests/test_iguana.py:508:

Each failure log is accessible here:
tests.test_iguana.test_redeem_script_exception

rerun ci (cloudflare flare?)

Tail of the build log:

Build 'Bitcoin ABC Diffs / Diff Testing' #N/A, branch 'refs/tags/phabricator/diff/56672'
Triggered 2025-11-19 10:04:43 by 'Phabricator Staging (phabricator-staging)'
Started 2025-11-19 10:04:47 on agent 'N/A'
Finished 2025-11-19 10:04:47 with status FAILURE 'Snapshot dependency failed to start: Automated Deployments / Bitcoin ABC Infra / Bitcoin-ABC Infra Checkout'
VCS revisions: 'BitcoinABC_BitcoinAbcStaging' (Git, instance id 22): 'e8a1c1feddb7b49787f766e00d32c7d9d3ae5629' (branch: 'refs/tags/phabricator/diff/56672', checkout rules: '+:. => ./bitcoin-abc')
TeamCity URL https://build.bitcoinabc.org/buildConfiguration/BitcoinABC_BitcoinAbcStaging/1015913 
TeamCity server version is 2025.03.1 (build 186125), server timezone: GMT (UTC)

[10:04:43]W: bt15 (3s)
[10:04:43]i: TeamCity server version is 2025.03.1 (build 186125)
[10:04:43] : Finalize build settings
[10:04:43] : Collecting changes in 2 VCS roots
[10:04:43] :	 [Collecting changes in 2 VCS roots] VCS Root details
[10:04:43] :		 [VCS Root details] "Bitcoin ABC Staging" {instance id=22, parent internal id=3, parent id=BitcoinABC_BitcoinAbcStaging, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging.git#refs/heads/master"}
[10:04:43] :		 [VCS Root details] "abc-infrastructure" {instance id=24, parent internal id=7, parent id=AutomatedDeployments_BitcoinAbcDeveloperTools_AbcInfrastructure, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/infrastructure.git#refs/heads/master"}
[10:04:43]i: Loading current repository state for VCS root 'Bitcoin ABC Staging' (3s)
[10:04:43]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper14717866609407086003.sh ls-remote origin
[10:04:43]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': Warning: Permanently added '[reviews.bitcoinabc.org]:2221' (ED25519) to the list of known hosts.
[10:04:43]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] Loading current repository state for VCS root 'abc-infrastructure' (3s)
[10:04:43]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper2810336521186510505.sh ls-remote origin
[10:04:43]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': Warning: Permanently added '[reviews.bitcoinabc.org]:2221' (ED25519) to the list of known hosts.
[10:04:44]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': vcs@reviews.bitcoinabc.org: Permission denied (publickey,keyboard-interactive).
[10:04:44]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': fatal: Could not read from remote repository.
[10:04:44]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': 
[10:04:44]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': Please make sure you have the correct access rights
[10:04:44]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': and the repository exists.
[10:04:45]i: Waiting for completion of current operations for the VCS root 'Bitcoin ABC Staging'
[10:04:47]i: Detecting changes in VCS root 'Bitcoin ABC Staging' (used in 'Diff Testing', 'Staging Checkout Dummy')
[10:04:47]i: Will collect changes for 'Bitcoin ABC Staging' starting from revision 0c4d7cd8ab6d51eb83960d28b95430c881c14b93
[10:04:47] : Compute revision for 'Bitcoin ABC Staging'
[10:04:47] :	 [Compute revision for 'Bitcoin ABC Staging'] Upper limit revision: e8a1c1feddb7b49787f766e00d32c7d9d3ae5629
[10:04:47]i:	 [Compute revision for 'Bitcoin ABC Staging'] MaxModId = 87194
[10:04:47] :	 [Compute revision for 'Bitcoin ABC Staging'] Computed revision: e8a1c1feddb7b49787f766e00d32c7d9d3ae5629
[10:04:47]W: Build was removed from the queue with comment: This build has not been started because some of the builds it depends on failed to start

back into the hamster wheel again...