示例#1
0
    def test_top_blocks(self):
        block1 = Block()
        block1.prev_hashes = [self.genesis_block().get_hash().digest()]
        block1.timestamp = 32452345234
        block1.randoms = []
        signed_block1 = SignedBlock()
        signed_block1.set_block(block1)
        self.add_signed_block(1, signed_block1)

        block2 = Block()
        block2.prev_hashes = [block1.get_hash().digest()]
        block2.timestamp = 32452345
        block2.randoms = []
        signed_block2 = SignedBlock()
        signed_block2.set_block(block2)
        self.add_signed_block(2, signed_block2)

        block3 = Block()
        block3.prev_hashes = [block1.get_hash().digest()]
        block3.timestamp = 1231827398
        block3.randoms = []
        signed_block3 = SignedBlock()
        signed_block3.set_block(block3)
        self.add_signed_block(3, signed_block3)

        for keyhash in self.blocks_by_hash:
            print(binascii.hexlify(keyhash))

        top_hashes = self.get_top_blocks()

        print("tops")
        for keyhash in top_hashes:
            print(binascii.hexlify(keyhash))
示例#2
0
    def sign_block(self, private):  #TODO move somewhere more approptiate
        block = Block()
        block.prev_hashes = [*self.get_top_blocks()]
        block.timestamp = int(datetime.datetime.now().timestamp())
        block.randoms = []

        block_hash = block.get_hash().digest()
        signature = private.sign(block_hash, 0)[
            0]  #for some reason it returns tuple with second item being None
        signed_block = SignedBlock()
        signed_block.set_block(block)
        signed_block.set_signature(signature)
        current_block_number = self.get_current_timeframe_block_number()
        self.add_signed_block(current_block_number, signed_block)
        print(block_hash.hex(), " was added to blockchain under number ",
              current_block_number)
        return signed_block