Page MenuHomePhabricator

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

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

Details

Reviewers
Fabien
PiRK
Group Reviewers
Restricted Project
Summary

After this upgrade, it's safe 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...

This revision is now accepted and ready to land.Wed, Nov 19, 19:35
Fabien added inline comments.
src/test/data/script_tests.json
1068 ↗(On Diff #56677)

Please keep the flags "P2SH,STRICTENC" here and below

1178 ↗(On Diff #56677)

Dito keep the flags

1225 ↗(On Diff #56677)

dito