Exemplo n.º 1
0
    def validate_pre_prepare(self, pre_prepare: PrePrepare, sender):
        if f.BLS_MULTI_SIGS.nm in pre_prepare and pre_prepare.blsMultiSigs:
            multi_sigs = pre_prepare.blsMultiSigs
            for sig in multi_sigs:
                multi_sig = MultiSignature.from_list(*sig)
                if not self._validate_multi_sig(multi_sig):
                    return BlsBftReplica.PPR_BLS_MULTISIG_WRONG

        if f.BLS_MULTI_SIG.nm not in pre_prepare or \
                pre_prepare.blsMultiSig is None:
            return

        multi_sig = MultiSignature.from_list(*pre_prepare.blsMultiSig)
        if not self._validate_multi_sig(multi_sig):
            return BlsBftReplica.PPR_BLS_MULTISIG_WRONG
def get_last_ordered_state_root_hash(node):
    last_pre_prepare = \
        node.master_replica._ordering_service.prePrepares[node.master_replica.last_ordered_3pc]
    multi_sig = MultiSignature.from_list(*last_pre_prepare.blsMultiSig)
    state_root_hash = serializer.deserialize(
        multi_sig.value.pool_state_root_hash)
    return state_root_hash
    def validate_pre_prepare(self, pre_prepare: PrePrepare, sender):
        if f.BLS_MULTI_SIG.nm not in pre_prepare or \
                pre_prepare.blsMultiSig is None:
            return

        multi_sig = MultiSignature.from_list(*pre_prepare.blsMultiSig)
        if not self._validate_multi_sig(multi_sig):
            return BlsBftReplica.PPR_BLS_MULTISIG_WRONG
    def _save_multi_sig_shared(self, pre_prepare: PrePrepare):

        if f.BLS_MULTI_SIG.nm not in pre_prepare:
            return
        if pre_prepare.blsMultiSig is None:
            return

        multi_sig = MultiSignature.from_list(*pre_prepare.blsMultiSig)
        self._bls_bft.bls_store.put(multi_sig)
        logger.debug("{}{} saved multi signature {} for root {} (calculated by Primary)"
                     .format(BLS_PREFIX, self, multi_sig,
                             multi_sig.value.state_root_hash))
    def _save_multi_sig_shared(self, pre_prepare: PrePrepare):

        if f.BLS_MULTI_SIGS.nm not in pre_prepare or pre_prepare.blsMultiSigs is None:
            return
        multi_sigs = pre_prepare.blsMultiSigs
        for sig in multi_sigs:
            multi_sig = MultiSignature.from_list(*sig)
            self._bls_bft.bls_store.put(multi_sig)
            logger.debug(
                "{}{} saved multi signature {} for root {} (calculated by Primary)"
                .format(BLS_PREFIX, self, multi_sig,
                        multi_sig.value.state_root_hash))
def get_last_ordered_state_root_hash(node):
    last_pre_prepare = \
        node.master_replica.prePrepares[node.master_replica.last_ordered_3pc]
    multi_sig = MultiSignature.from_list(*last_pre_prepare.blsMultiSig)
    state_root_hash = serializer.deserialize(multi_sig.value.pool_state_root_hash)
    return state_root_hash