Skip to content

Commit 0fc9f23

Browse files
committed
Addition refactoring
1 parent cdcede1 commit 0fc9f23

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1350
-377
lines changed

qrl/core/BlockHeader.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding=utf-8
22
from pyqrllib.pyqrllib import sha2_256, str2bin
3-
from qrl.core import ntp, logger, config
3+
from qrl.core import config
4+
from qrl.core.misc import ntp, logger
45
from qrl.core.formulas import block_reward_calc
56
from qrl.generated import qrl_pb2
67
from google.protobuf.json_format import MessageToJson, Parse

qrl/core/BufferedChain.py

+4-7
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
from pyqrllib.pyqrllib import bin2hstr
99

10-
from qrl.core import config, logger, State
10+
from qrl.core import config, State
11+
from qrl.core.misc import logger
1112
from qrl.core.AddressState import AddressState
1213
from qrl.core.Block import Block
1314
from qrl.core.BlockMetadata import BlockMetadata
@@ -626,7 +627,7 @@ def load_address_state(self, block: Block,
626627
address_state = AddressState.create(address=tx.addr_from,
627628
nonce=0,
628629
balance=stake_balance,
629-
ots_bitfield=[b'\x00'] * config.dev.ots_bitfield,
630+
ots_bitfield=[b'\x00'] * config.dev.ots_bitfield_size,
630631
tokens=dict())
631632
address_txn[tx.addr_from] = address_state
632633
continue
@@ -980,10 +981,9 @@ def genesis_loader(self, genesis_block):
980981
address_state = AddressState.create(address=genesis_address,
981982
nonce=config.dev.default_nonce,
982983
balance=genesis_balance.balance,
983-
ots_bitfield=[b'\x00']*config.dev.ots_bitfield,
984+
ots_bitfield=[b'\x00']*config.dev.ots_bitfield_size,
984985
tokens=dict())
985986
self._chain.pstate._save_address_state(address_state)
986-
###########
987987

988988
is_success = self.initialize_chain(genesis_block)
989989

@@ -992,9 +992,6 @@ def genesis_loader(self, genesis_block):
992992

993993
self._chain.blockchain.append(genesis_block)
994994

995-
self._chain.pstate.stake_validators_tracker.update_sv(0)
996-
self._chain.pstate.prev_stake_validators_tracker = copy.deepcopy(self._chain.pstate.stake_validators_tracker)
997-
self.wallet.save_wallet()
998995
logger.info('{} blocks'.format(self.length))
999996
return self._chain.blockchain
1000997

qrl/core/Chain.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from enum import Enum
55
from typing import Optional, Dict, Callable
66

7-
from qrl.core import logger
7+
from qrl.core.misc import logger
88
from qrl.core.Block import Block
99
from qrl.core.StakeValidatorsTracker import StakeValidatorsTracker
1010
from qrl.core.AddressState import AddressState
@@ -103,6 +103,7 @@ def add_block(self,
103103
return True
104104

105105
def load_state(self) -> bool:
106+
# FIXME: This is odd.. not sure it should even exist
106107
try:
107108
self.pstate.prev_stake_validators_tracker = StakeValidatorsTracker.from_json(self.pstate.get_prev_stake_validators_tracker())
108109
self.pstate.stake_validators_tracker = StakeValidatorsTracker.from_json(self.pstate.get_stake_validators_tracker())

qrl/core/EphemeralMessage.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from qrl.generated import qrl_pb2
1010
from qrl.crypto.aes import AES
1111
from tests.misc.random_number_generator import RNG
12-
from qrl.core import ntp
12+
from qrl.core.misc import ntp
1313

1414

1515
class EncryptedEphemeralMessage(object):

qrl/core/EphemeralMetadata.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
44
from google.protobuf.json_format import MessageToJson, Parse
55

6-
from qrl.core import ntp
6+
from qrl.core.misc import ntp
77
from qrl.core.EphemeralMessage import EncryptedEphemeralMessage
88
from qrl.generated import qrl_pb2
99

qrl/core/MessageRequest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Distributed under the MIT software license, see the accompanying
33
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
44

5-
from qrl.core import logger
5+
from qrl.core.misc import logger
66

77

88
class MessageRequest:

qrl/core/StakeValidator.py

-2
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,6 @@ def create(balance: int,
8383
raise ValueError("terminator hash cannot be empty")
8484

8585
stakevalidator._data.balance = balance
86-
if balance < config.dev.minimum_staking_balance_required:
87-
raise ValueError("balance should be at least {}".format(config.dev.minimum_staking_balance_required))
8886

8987
stakevalidator._data.activation_blocknumber = stake_txn.activation_blocknumber
9088

qrl/core/StakeValidatorsTracker.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
from google.protobuf.json_format import MessageToJson, Parse
77
from pyqrllib.pyqrllib import bin2hstr
88

9-
from qrl.core import config, logger
9+
from qrl.core import config
10+
from qrl.core.misc import logger
1011
from qrl.core.StakeValidator import StakeValidator
1112
from qrl.core.Transaction import StakeTransaction
1213
from qrl.generated import qrl_pb2

qrl/core/State.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
from pyqrllib.pyqrllib import bin2hstr, hstr2bin
88

9-
from qrl.core import db, logger, config
9+
from qrl.core import config
10+
from qrl.core.misc import logger, db
1011
from qrl.core.EphemeralMessage import EncryptedEphemeralMessage
1112
from qrl.core.AddressState import AddressState
1213
from qrl.core.TokenMetadata import TokenMetadata
@@ -370,7 +371,7 @@ def get_address(self, address: bytes) -> AddressState:
370371
return AddressState.create(address=address,
371372
nonce=config.dev.default_nonce,
372373
balance=config.dev.default_account_balance,
373-
ots_bitfield=[b'\x00'] * config.dev.ots_bitfield,
374+
ots_bitfield=[b'\x00'] * config.dev.ots_bitfield_size,
374375
tokens=dict())
375376

376377
def nonce(self, addr: bytes) -> int:

qrl/core/Transaction.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
from google.protobuf.json_format import MessageToJson, Parse
99
from pyqrllib.pyqrllib import getAddress, bin2hstr
1010

11-
from qrl.core import config, logger
11+
from qrl.core import config
12+
from qrl.core.misc import logger
1213
from qrl.crypto.hashchain import hashchain_reveal
1314
from qrl.crypto.misc import sha256
1415
from qrl.crypto.xmss import XMSS

qrl/core/Wallet.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@
77
from pyqrllib.pyqrllib import mnemonic2bin
88

99
from qrl.generated import qrl_pb2
10-
from qrl.core import config, logger
10+
from qrl.core import config
11+
from qrl.core.misc import logger
1112
from qrl.crypto.xmss import XMSS
1213

1314
import os
1415

15-
import simplejson as json # TODO: Left here for backward compatibility. Remove in next hard fork
16-
1716
AddressBundle = namedtuple('AddressBundle', 'address xmss')
1817

1918

qrl/core/config.py

+23-32
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,19 @@ def __init__(self):
2828

2929
# PEER Configuration
3030
self.enable_peer_discovery = True # Allows to discover new peers from the connected peers
31-
self.peer_list = ['104.237.3.184',
32-
'104.237.3.185',
33-
'104.251.219.215',
34-
'104.251.219.145',
35-
'104.251.219.40'] # Atleast one active peer IP required
31+
self.peer_list = ['45.76.139.109',
32+
'45.77.88.205']
3633

3734
self.max_peers_limit = 100 # Number of allowed peers
3835
self.ping_timeout = 180
3936
self.ping_period = 10
4037
# must be less than ping_timeout
4138

4239
self.qrl_dir = os.path.join(expanduser("~"), ".qrl")
43-
self.qrlnode_dir = os.path.join(expanduser("~"), ".qrlnode")
44-
45-
self.data_dir = os.path.join(self.qrlnode_dir, "data")
46-
self.wallet_staking_dir = os.path.join(self.qrlnode_dir, "wallet")
47-
48-
self.config_path = os.path.join(self.qrlnode_dir, "config.yml")
49-
self.log_path = os.path.join(self.qrlnode_dir, "qrl.log")
40+
self.data_dir = os.path.join(self.qrl_dir, "data")
41+
self.config_path = os.path.join(self.qrl_dir, "config.yml")
42+
self.log_path = os.path.join(self.qrl_dir, "qrl.log")
43+
self.wallet_staking_dir = os.path.join(self.qrl_dir, "wallet")
5044

5145
self.wallet_dir = os.path.join(self.qrl_dir)
5246

@@ -88,50 +82,47 @@ def __init__(self):
8882

8983
DevConfig.__instance = self
9084

85+
self.version = version
86+
self.required_version = '0.0.'
87+
self.genesis_prev_headerhash = b'Rescue Party'
88+
9189
################################################################
9290
# Warning: Don't change following configuration. #
9391
# For QRL Developers only #
9492
################################################################
93+
9594
self.public_ip = None
96-
self.minimum_required_stakers = 4
97-
self.minimum_staking_balance_required = 1
98-
self.blocks_per_epoch = 100
9995
self.reorg_limit = 2
96+
10097
self.message_q_size = 300
10198
self.message_receipt_timeout = 10 # request timeout for full message
102-
self.N = 256 # Constant used in Block winner formula
103-
self.POS_delay_after_block = 15
10499
self.message_buffer_size = 3 * 1024 * 1024 # 3 MB
105-
self.disk_writes_after_x_blocks = 100
100+
106101
self.blocks_per_chain_file = 1000
107102
self.chain_read_buffer_size = 1024
108-
self.version = version
109-
self.required_version = '0.0.'
110103

111-
self.chain_file_directory = 'data'
112104
self.transaction_pool_size = 1000
113105
self.max_coin_supply = 105000000
114106
self.timestamp_error = 5 # Error in second
115-
self.slave_xmss_height = int(ceil(log(self.blocks_per_epoch * 3, 2)))
116-
self.slave_xmss_height = self.slave_xmss_height + (self.slave_xmss_height & 0x1)
107+
108+
self.blocks_per_epoch = 100
117109
self.xmss_tree_height = 10
118-
self.ots_bitfield = ceil((2**self.xmss_tree_height) / 8)
110+
self.slave_xmss_height = int(ceil(log(self.blocks_per_epoch * 3, 2)))
111+
self.slave_xmss_height += self.slave_xmss_height % 2
112+
113+
self.ots_bitfield_size = ceil((2 ** self.xmss_tree_height) / 8)
114+
119115
self.default_nonce = 0
120116
self.default_account_balance = 100 * (10 ** 8)
121117
self.hash_buffer_size = 4
122118
self.minimum_minting_delay = 45 # Minimum delay in second before a block is being created
123-
self.vote_x_seconds_before_next_block = 15 # Vote will be done X seconds before creation of next block
124-
# Must be less than minimum_minting_delay
125-
self.max_consensus_retry = 5
119+
120+
# Directories and files
126121
self.db_name = 'state'
127122
self.peers_filename = 'peers.qrl'
128-
123+
self.chain_file_directory = 'data'
129124
self.wallet_dat_filename = 'wallet.qrl'
130-
self.wallet_old_dat_filename = 'wallet.json'
131-
132125
self.slave_dat_filename = 'slave.qrl'
133-
self.mnemonic_filename = 'mnemonic'
134-
self.genesis_prev_headerhash = b'Rescue Party'
135126

136127
@staticmethod
137128
def getInstance():

qrl/core/formulas.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
from pyqrllib.pyqrllib import bin2hstr
99

10-
from qrl.core import config, logger
10+
from qrl.core import config
11+
from qrl.core.misc import logger
1112
from qrl.crypto.misc import sha256
1213
from decimal import Decimal
1314

qrl/core/DependencyChecker.py qrl/core/misc/DependencyChecker.py

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class DependencyChecker:
1111
@staticmethod
1212
def _get_requirements_path():
1313
return os.path.abspath(os.path.join(os.path.dirname(__file__),
14+
os.path.pardir,
1415
os.path.pardir,
1516
os.path.pardir,
1617
"requirements.txt"))

qrl/core/misc/__init__.py

Whitespace-only changes.

qrl/core/db.py qrl/core/misc/db.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
import os
88
import simplejson as json
99

10-
from qrl.core import config, logger
10+
from qrl.core import config
11+
from qrl.core.misc import logger
1112

1213
__author__ = 'pete'
1314

File renamed without changes.

qrl/core/logger_twisted.py qrl/core/misc/logger_twisted.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
44
from twisted.logger import LogLevel, globalLogPublisher
55

6-
from qrl.core import logger
6+
from qrl.core.misc import logger
77

88
twisted_logger_mapping = {
99
LogLevel.critical: logger.fatal,

qrl/core/ntp.py qrl/core/misc/ntp.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from ntplib import NTPClient
99

10-
from qrl.core import logger
10+
from qrl.core.misc import logger
1111

1212
ntp_servers = ['pool.ntp.org', 'ntp.ubuntu.com']
1313
NTP_VERSION = 3

0 commit comments

Comments
 (0)