mirror of
				https://github.com/0glabs/0g-storage-node.git
				synced 2025-11-04 00:27:39 +00:00 
			
		
		
		
	Update mine test process to avoid random bugs on low-performance devices
This commit is contained in:
		
							parent
							
								
									041f5f12b6
								
							
						
					
					
						commit
						d2af05cd70
					
				@ -238,6 +238,10 @@ impl PoraService {
 | 
			
		||||
            return Err("too many mine shards");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if puzzle.context.flow_length <= U256::one() {
 | 
			
		||||
            return Err("no data submitted");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if self.mine_range.shard_config.num_shard as u64 > puzzle.context.flow_length.as_u64() {
 | 
			
		||||
            return Err("Not enough flow length to shard");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ class MineTest(TestFramework):
 | 
			
		||||
        self.zgs_node_configs[0] = {
 | 
			
		||||
            "miner_key": GENESIS_PRIV_KEY,
 | 
			
		||||
        }
 | 
			
		||||
        self.mine_period = int(40 / self.block_time)
 | 
			
		||||
        self.mine_period = int(45 / self.block_time)
 | 
			
		||||
        self.launch_wait_seconds = 15
 | 
			
		||||
        self.log.info("Contract Info: Est. block time %.2f, Mine period %d", self.block_time, self.mine_period)
 | 
			
		||||
 | 
			
		||||
@ -35,6 +35,11 @@ class MineTest(TestFramework):
 | 
			
		||||
        self.log.info("flow address: %s", self.contract.address())
 | 
			
		||||
        self.log.info("mine address: %s", self.mine_contract.address())
 | 
			
		||||
 | 
			
		||||
        first_block = self.contract.first_block()
 | 
			
		||||
        self.log.info("Current block number %d", int(blockchain.eth_blockNumber(), 16))
 | 
			
		||||
        self.log.info("Flow deployment block number %d, epoch 1 start %d", first_block, first_block + self.mine_period)
 | 
			
		||||
        wait_until(lambda: self.contract.epoch() >= 1, timeout=180)
 | 
			
		||||
 | 
			
		||||
        quality = int(2**256 / 100 / estimate_st_performance())
 | 
			
		||||
        self.mine_contract.set_quality(quality)
 | 
			
		||||
 | 
			
		||||
@ -71,6 +76,8 @@ class MineTest(TestFramework):
 | 
			
		||||
        self.log.info("Wait for the third mine answer")
 | 
			
		||||
        wait_until(lambda: self.mine_contract.last_mined_epoch() == start_epoch + 3 and not self.mine_contract.can_submit(), timeout=180)
 | 
			
		||||
 | 
			
		||||
        self.log.info("Current block number %d", int(blockchain.eth_blockNumber(), 16))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    MineTest(blockchain_node_type=BlockChainNodeType.BSC).main()
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ class MineTest(TestFramework):
 | 
			
		||||
            "shard_position": "3 / 8",
 | 
			
		||||
        }
 | 
			
		||||
        self.enable_market = True
 | 
			
		||||
        self.mine_period = int(45 / self.block_time)
 | 
			
		||||
        self.mine_period = int(50 / self.block_time)
 | 
			
		||||
        self.launch_wait_seconds = 15
 | 
			
		||||
        self.log.info("Contract Info: Est. block time %.2f, Mine period %d", self.block_time, self.mine_period)
 | 
			
		||||
 | 
			
		||||
@ -50,6 +50,10 @@ class MineTest(TestFramework):
 | 
			
		||||
 | 
			
		||||
        SECTORS_PER_PRICING = int(8 * ( 2 ** 30 ) / 256)
 | 
			
		||||
 | 
			
		||||
        first_block = self.contract.first_block()
 | 
			
		||||
        self.log.info("Current block number %d", int(blockchain.eth_blockNumber(), 16))
 | 
			
		||||
        self.log.info("Flow deployment block number %d, epoch 1 start %d, wait for epoch 1 start", first_block, first_block + self.mine_period)
 | 
			
		||||
        wait_until(lambda: self.contract.epoch() >= 1, timeout=180)
 | 
			
		||||
 | 
			
		||||
        self.log.info("Submit the actual data chunk (256 MB)")
 | 
			
		||||
        self.submit_data(b"\x11", int(SECTORS_PER_PRICING / 32))
 | 
			
		||||
@ -98,6 +102,8 @@ class MineTest(TestFramework):
 | 
			
		||||
 | 
			
		||||
        assert_greater_than(secondReward, 100 * firstReward / (start_epoch + 1))
 | 
			
		||||
 | 
			
		||||
        self.log.info("Current block number %d", int(blockchain.eth_blockNumber(), 16))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    MineTest(blockchain_node_type=BlockChainNodeType.BSC).main()
 | 
			
		||||
 | 
			
		||||
@ -30,9 +30,9 @@ class BlockChainNodeType(Enum):
 | 
			
		||||
        if self == BlockChainNodeType.Conflux:
 | 
			
		||||
            return 0.5
 | 
			
		||||
        elif self == BlockChainNodeType.BSC:
 | 
			
		||||
            return 25 / estimate_st_performance()
 | 
			
		||||
            return 32 / estimate_st_performance()
 | 
			
		||||
        else:
 | 
			
		||||
            return 3.0
 | 
			
		||||
            return 5.0
 | 
			
		||||
 | 
			
		||||
@unique
 | 
			
		||||
class NodeType(Enum):
 | 
			
		||||
 | 
			
		||||
@ -78,6 +78,7 @@ class ZGNode(BlockchainNode):
 | 
			
		||||
            "--rpc.laddr", "tcp://127.0.0.1:%s" % arrange_port(ZGNODE_PORT_CATEGORY_RPC, index),
 | 
			
		||||
            # overwrite pprof port: 6060
 | 
			
		||||
            "--rpc.pprof_laddr", "127.0.0.1:%s" % arrange_port(ZGNODE_PORT_CATEGORY_PPROF, index),
 | 
			
		||||
            "--log_level", "debug"
 | 
			
		||||
        ]
 | 
			
		||||
 | 
			
		||||
        for k, v in updated_config.items():
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user