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