Esempio n. 1
0
    def setup_nodes(self):
        extra_args = [
            # Enable Canopy at height 205 to allow shielding Sprout funds first.
            nuparams(BLOSSOM_BRANCH_ID, 205),
            nuparams(HEARTWOOD_BRANCH_ID, 205),
            nuparams(CANOPY_BRANCH_ID, 205),
            nuparams(NU5_BRANCH_ID, 210),
        ]

        # We log the stderr of node 0, which the test nodes connect to. This
        # enables us to check that we see the expected error logged, and also
        # ensures that the test itself passes (as otherwise the stderr output
        # would be interpreted as an error from the test itself).
        self.log_stderr = tempfile.SpooledTemporaryFile(max_size=2**16)

        nodes = []
        nodes.append(
            start_node(0,
                       self.options.tmpdir,
                       extra_args,
                       stderr=self.log_stderr))
        nodes.append(start_node(1, self.options.tmpdir, extra_args))
        nodes.append(start_node(2, self.options.tmpdir, extra_args))
        nodes.append(start_node(3, self.options.tmpdir, extra_args))
        return nodes
Esempio n. 2
0
 def setup_network(self, split=False):
     args = [[
         nuparams(HEARTWOOD_BRANCH_ID, 3),
         nuparams(NU5_BRANCH_ID, 5),
     ] * self.num_nodes]
     self.nodes = start_nodes(self.num_nodes, self.options.tmpdir, args)
     self.is_network_split = False
     self.sync_all()
Esempio n. 3
0
 def setup_network(self, split=False):
     args = [
         nuparams(CANOPY_BRANCH_ID, 115),
         nuparams(NU5_BRANCH_ID, 130),
     ]
     self.nodes = start_nodes(self.num_nodes, self.options.tmpdir, [args] * self.num_nodes)
     self.is_network_split = False
     self.node = self.nodes[0]
Esempio n. 4
0
 def setup_network(self, split=False):
     args = [nuparams(BLOSSOM_BRANCH_ID, 1),
         nuparams(HEARTWOOD_BRANCH_ID, 1),
         nuparams(CANOPY_BRANCH_ID, 1),
         nuparams(NU5_BRANCH_ID, 1),
     ]
     self.nodes = start_nodes(self.num_nodes, self.options.tmpdir, [args] * self.num_nodes)
     self.is_network_split=False
     self.sync_all()
Esempio n. 5
0
 def setup_nodes(self):
     return start_nodes(self.num_nodes,
                        self.options.tmpdir,
                        extra_args=[[
                            nuparams(BLOSSOM_BRANCH_ID, 201),
                            nuparams(HEARTWOOD_BRANCH_ID, 201),
                            nuparams(CANOPY_BRANCH_ID, 201),
                            nuparams(NU5_BRANCH_ID, 205),
                            '-nurejectoldversions=false',
                        ]] * self.num_nodes)
Esempio n. 6
0
 def setup_network(self, split=False):
     self.nodes = start_nodes(1,
                              self.options.tmpdir,
                              extra_args=[[
                                  nuparams(OVERWINTER_BRANCH_ID, 1),
                                  nuparams(SAPLING_BRANCH_ID, 1),
                                  nuparams(BLOSSOM_BRANCH_ID, 1),
                                  nuparams(HEARTWOOD_BRANCH_ID, 1),
                                  nuparams(CANOPY_BRANCH_ID, 1),
                              ]])
     self.is_network_split = False
 def setup_network(self):
     args = ["-checkmempool", "-debug=mempool", "-blockmaxsize=4000",
         nuparams(BLOSSOM_BRANCH_ID, 200),
         nuparams(HEARTWOOD_BRANCH_ID, 210),
         nuparams(CANOPY_BRANCH_ID, 220),
         nuparams(NU5_BRANCH_ID, 230),
     ]
     self.nodes = []
     self.nodes.append(start_node(0, self.options.tmpdir, args))
     self.nodes.append(start_node(1, self.options.tmpdir, args))
     connect_nodes(self.nodes[1], 0)
     self.is_network_split = False
     self.sync_all
Esempio n. 8
0
    def setup_nodes(self):
        extra_args = [
            # Enable Canopy at height 205 to allow shielding Sprout funds first.
            nuparams(BLOSSOM_BRANCH_ID, 205),
            nuparams(HEARTWOOD_BRANCH_ID, 205),
            nuparams(CANOPY_BRANCH_ID, 205),
            nuparams(NU5_BRANCH_ID, 210),
        ]

        nodes = []
        nodes.append(start_node(0, self.options.tmpdir, extra_args))
        nodes.append(start_node(1, self.options.tmpdir, extra_args))
        nodes.append(start_node(2, self.options.tmpdir, extra_args))
        nodes.append(start_node(3, self.options.tmpdir, extra_args))
        return nodes
Esempio n. 9
0
 def setup_network(self, split=False):
     self.nodes = start_nodes(3, self.options.tmpdir, [[
         nuparams(NU5_BRANCH_ID, 238),
     ]] * self.num_nodes)
     connect_nodes_bi(self.nodes,0,1)
     connect_nodes_bi(self.nodes,1,2)
     connect_nodes_bi(self.nodes,0,2)
     self.is_network_split=False
     self.sync_all()
Esempio n. 10
0
 def setup_network(self, split=False):
     self.nodes = start_nodes(
         self.num_nodes,
         self.options.tmpdir,
         extra_args=[[
             '-txindex',  # Avoid JSONRPC error: No information available about transaction
             nuparams(NU5_BRANCH_ID, 210),
             '-debug',
         ]] * self.num_nodes)
     connect_nodes_bi(self.nodes, 0, 1)
     self.is_network_split = False
     self.sync_all()
 def setup_network(self, split=False):
     args = [
         '-regtestprotectcoinbase',
         '-debug=zrpcunsafe',
         nuparams(NU5_BRANCH_ID, self.nu5_activation),
     ]
     self.nodes = []
     self.nodes.append(start_node(0, self.options.tmpdir, args))
     self.nodes.append(start_node(1, self.options.tmpdir, args))
     self.nodes.append(start_node(2, self.options.tmpdir, args))
     connect_nodes_bi(self.nodes, 0, 1)
     connect_nodes_bi(self.nodes, 1, 2)
     connect_nodes_bi(self.nodes, 0, 2)
     self.is_network_split = False
     self.sync_all()
Esempio n. 12
0
 def setup_nodes(self):
     return start_nodes(self.num_nodes, self.options.tmpdir, [[
         nuparams(NU5_BRANCH_ID, 210),
     ]] * self.num_nodes)
    bitcoind_processes,
    connect_nodes_bi,
    initialize_chain,
    nuparams,
    start_node,
    start_nodes,
    BLOSSOM_BRANCH_ID,
    HEARTWOOD_BRANCH_ID,
    CANOPY_BRANCH_ID,
)

import logging
import time

HAS_CANOPY = [
    nuparams(BLOSSOM_BRANCH_ID, 205),
    nuparams(HEARTWOOD_BRANCH_ID, 210),
    nuparams(CANOPY_BRANCH_ID, 220), '-nurejectoldversions=false'
]
NO_CANOPY = [
    nuparams(BLOSSOM_BRANCH_ID, 205),
    nuparams(HEARTWOOD_BRANCH_ID, 210), '-nurejectoldversions=false'
]


class PostHeartwoodRollbackTest(BitcoinTestFramework):
    def setup_chain(self):
        print("Initializing test directory " + self.options.tmpdir)
        initialize_chain(self.options.tmpdir)

    def setup_nodes(self):
Esempio n. 14
0
#!/usr/bin/env python3
# Copyright (c) 2018 The Zcash developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://www.opensource.org/licenses/mit-license.php .

from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import assert_equal, initialize_chain_clean, \
    nuparams, sync_blocks, OVERWINTER_BRANCH_ID, SAPLING_BRANCH_ID, \
    start_nodes, start_node, connect_nodes_bi, pasteld_processes

import time

FAKE_SPROUT = [nuparams(OVERWINTER_BRANCH_ID, 210), nuparams(SAPLING_BRANCH_ID, 220)]
FAKE_OVERWINTER = [nuparams(OVERWINTER_BRANCH_ID, 10), nuparams(SAPLING_BRANCH_ID, 220)]

class RewindBlockIndexTest (BitcoinTestFramework):

    def __init__(self):
        super().__init__()
        self.num_nodes = 3
        self.setup_clean_chain = True

    def setup_chain(self):
        print(f"Initializing test directory {self.options.tmpdir}")
        initialize_chain_clean(self.options.tmpdir, self.num_nodes)

    def setup_network(self, split=False):
        # Node 0 - Overwinter, then Sprout, then Overwinter again
        # Node 1 - Sprout
        # Node 2 - Overwinter
        self.nodes = start_nodes(self.num_nodes, self.options.tmpdir, extra_args=[
Esempio n. 15
0
 def setup_nodes(self):
     return start_nodes(self.num_nodes, self.options.tmpdir, [[
         nuparams(NU5_BRANCH_ID, 205),
         '-regtestwalletsetbestchaineveryblock'
     ]] * self.num_nodes)
Esempio n. 16
0
    assert_raises_message,
    start_nodes,
    get_coinbase_address,
    wait_and_assert_operationid_status,
    nuparams,
    BLOSSOM_BRANCH_ID,
    HEARTWOOD_BRANCH_ID,
    CANOPY_BRANCH_ID,
    NU5_BRANCH_ID,
)

import logging

HAS_CANOPY = [
    '-nurejectoldversions=false',
    nuparams(BLOSSOM_BRANCH_ID, 205),
    nuparams(HEARTWOOD_BRANCH_ID, 210),
    nuparams(CANOPY_BRANCH_ID, 220),
    nuparams(NU5_BRANCH_ID, 225),
]


class RemoveSproutShieldingTest(BitcoinTestFramework):
    def setup_nodes(self):
        return start_nodes(self.num_nodes,
                           self.options.tmpdir,
                           extra_args=[HAS_CANOPY] * self.num_nodes)

    def run_test(self):

        # Generate blocks up to Heartwood activation
Esempio n. 17
0
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (assert_equal, assert_true,
                                 assert_start_raises_init_error, start_nodes,
                                 start_node, connect_nodes_bi,
                                 bitcoind_processes, nuparams,
                                 OVERWINTER_BRANCH_ID, SAPLING_BRANCH_ID)

import logging
import sys

logging.basicConfig(format='%(levelname)s: %(message)s',
                    level=logging.INFO,
                    stream=sys.stdout)

HAS_SAPLING = [
    nuparams(OVERWINTER_BRANCH_ID, 10),
    nuparams(SAPLING_BRANCH_ID, 15)
]
NO_SAPLING = [
    nuparams(OVERWINTER_BRANCH_ID, 10),
    nuparams(SAPLING_BRANCH_ID, 150)
]


class SaplingRewindTest(BitcoinTestFramework):
    def __init__(self):
        super().__init__()
        self.num_nodes = 3
        self.setup_clean_chain = True

    # This mirrors how the network was setup in the bash test
Esempio n. 18
0
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (initialize_chain_clean, start_nodes,
                                 start_node, bitcoind_processes)
from test_framework.util import (nuparams, OVERWINTER_BRANCH_ID,
                                 SAPLING_BRANCH_ID, BLOSSOM_BRANCH_ID,
                                 HEARTWOOD_BRANCH_ID, CANOPY_BRANCH_ID)

import shutil
import logging
import tarfile
import os
import os.path

HAS_SAPLING = [
    nuparams(OVERWINTER_BRANCH_ID, 10),
    nuparams(SAPLING_BRANCH_ID, 20)
]
HAS_BLOSSOM = HAS_SAPLING + [nuparams(BLOSSOM_BRANCH_ID, 30)]
HAS_HEARTWOOD = HAS_BLOSSOM + [nuparams(HEARTWOOD_BRANCH_ID, 40)]
HAS_CANOPY = HAS_HEARTWOOD + [nuparams(CANOPY_BRANCH_ID, 50)]


class Upgrade():
    def __init__(self, h, p, a):
        self.gen_height = h
        self.tgz_path = p
        self.extra_args = a


class UpgradeGoldenTest(BitcoinTestFramework):
Esempio n. 19
0
#!/usr/bin/env python3
# Copyright (c) 2018 The Zcash developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://www.opensource.org/licenses/mit-license.php .

from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import assert_equal, initialize_chain_clean, \
    start_nodes, start_node, connect_nodes_bi, bitcoind_processes, \
    nuparams, OVERWINTER_BRANCH_ID, SAPLING_BRANCH_ID

import time

FAKE_SPROUT = [
    nuparams(OVERWINTER_BRANCH_ID, 210),
    nuparams(SAPLING_BRANCH_ID, 220)
]
FAKE_OVERWINTER = [
    nuparams(OVERWINTER_BRANCH_ID, 10),
    nuparams(SAPLING_BRANCH_ID, 220)
]


class RewindBlockIndexTest(BitcoinTestFramework):
    def setup_chain(self):
        print("Initializing test directory " + self.options.tmpdir)
        initialize_chain_clean(self.options.tmpdir, 3)

    def setup_network(self, split=False):
        # Node 0 - Overwinter, then Sprout, then Overwinter again
        # Node 1 - Sprout
        # Node 2 - Overwinter
Esempio n. 20
0
 def setup_nodes(self):
     return start_nodes(4, self.options.tmpdir, [[
         nuparams(NU5_BRANCH_ID, 215),
     ]] * 4)