Changeset View
Changeset View
Standalone View
Standalone View
test/functional/pruning.py
#!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
# Copyright (c) 2014-2016 The Bitcoin Core developers | # Copyright (c) 2014-2016 The Bitcoin Core developers | ||||
# Distributed under the MIT software license, see the accompanying | # Distributed under the MIT software license, see the accompanying | ||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | # file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
# | # | ||||
# Test pruning code | # Test pruning code | ||||
# ******** | # ******** | ||||
# WARNING: | # WARNING: | ||||
# This test uses 4GB of disk space. | # This test uses 4GB of disk space. | ||||
# This test takes 30 mins or more (up to 2 hours) | # This test takes 30 mins or more (up to 2 hours) | ||||
# ******** | # ******** | ||||
from test_framework.test_framework import BitcoinTestFramework | from test_framework.test_framework import BitcoinTestFramework | ||||
from test_framework.decorators import * | |||||
from test_framework.util import * | from test_framework.util import * | ||||
from test_framework.blocktools import mine_big_block | from test_framework.blocktools import mine_big_block | ||||
import time | import time | ||||
import os | import os | ||||
MIN_BLOCKS_TO_KEEP = 288 | MIN_BLOCKS_TO_KEEP = 288 | ||||
# Rescans start at the earliest block up to 2 hours before a key timestamp, so | # Rescans start at the earliest block up to 2 hours before a key timestamp, so | ||||
# the manual prune RPC avoids pruning blocks in the same window to be | # the manual prune RPC avoids pruning blocks in the same window to be | ||||
# compatible with pruning based on key creation time. | # compatible with pruning based on key creation time. | ||||
TIMESTAMP_WINDOW = 2 * 60 * 60 | TIMESTAMP_WINDOW = 2 * 60 * 60 | ||||
def calc_usage(blockdir): | def calc_usage(blockdir): | ||||
return sum(os.path.getsize(blockdir + f) for f in os.listdir(blockdir) if os.path.isfile(blockdir + f)) / (1024. * 1024.) | return sum(os.path.getsize(blockdir + f) for f in os.listdir(blockdir) if os.path.isfile(blockdir + f)) / (1024. * 1024.) | ||||
@extended | |||||
class PruneTest(BitcoinTestFramework): | class PruneTest(BitcoinTestFramework): | ||||
def set_test_params(self): | def set_test_params(self): | ||||
self.setup_clean_chain = True | self.setup_clean_chain = True | ||||
self.num_nodes = 6 | self.num_nodes = 6 | ||||
# Create nodes 0 and 1 to mine. | # Create nodes 0 and 1 to mine. | ||||
# Create node 2 to test pruning. | # Create node 2 to test pruning. | ||||
self.full_node_default_args = ["-maxreceivebuffer=20000", "-blockmaxsize=999000", | self.full_node_default_args = ["-maxreceivebuffer=20000", "-blockmaxsize=999000", | ||||
▲ Show 20 Lines • Show All 474 Lines • Show Last 20 Lines |