コード例 #1
0
ファイル: tests.py プロジェクト: MrShoks/sawtooth-core
def _generate_genesis_block():
    genesis_header = BlockHeader(
        previous_block_id="0000000000000000",
        block_num=0)

    block = BlockWrapper(genesis_header)
    block.set_signature("genesis")
    return block
コード例 #2
0
    def _generate_genesis_block(self, header_sig="genesis"):
        genesis_header = BlockHeader(previous_block_id="0000000000000000",
                                     block_num=0)

        # Small hack here not asking consensus if it is happy.
        block = BlockWrapper(genesis_header)
        block.set_signature(header_sig)
        return block
コード例 #3
0
ファイル: publisher.py プロジェクト: jsrj78/sawtooth-core
    def generate_genesis_block(self):
        genesis_header = BlockHeader(previous_block_id=NULLIDENTIFIER,
                                     block_num=0)

        # Small hack here not asking consensus if it is happy.
        block = BlockWrapper(genesis_header)
        block.set_signature("genesis")
        self._candidate_block = \
            self._finalize_block(block)
        return self._candidate_block
コード例 #4
0
    def generate_block(self,
                       previous_block=None,
                       add_to_store=False,
                       batch_count=0,
                       status=BlockStatus.Unknown,
                       invalid_consensus=False,
                       invalid_batch=False,
                       invalid_signature=False,
                       weight=1):

        previous = self._get_block(previous_block)
        if previous is None:
            previous = BlockWrapper(
                BlockHeader(
                    block_num=0,
                    previous_block_id="0000000000000000",
                ))
            previous.set_signature(_generate_id())
            previous_block_state = BlockState(block_wrapper=previous,
                                              weight=0,
                                              status=BlockStatus.Valid)
            self.block_store[previous.header_signature] = previous_block_state
            self.block_publisher.on_chain_updated(previous)

        while self._new_block is None:
            self.block_publisher.on_batch_received(Batch())
            self.block_publisher.on_check_publish_block(True)

        block = self._new_block
        self._new_block = None

        header = BlockHeader()
        header.ParseFromString(block.header)
        block = BlockWrapper(header, block)

        if invalid_signature:
            block.set_signature("BAD")

        if add_to_store:
            block_state = BlockState(block_wrapper=block, weight=0)
            block_state.status = status
            self.block_store[block.header_signature] = block_state

        return block