diff --git a/rfc/0010_Duniter_Blockchain_Protocol_V12.md b/rfc/0010_Duniter_Blockchain_Protocol_V12.md index 54c97abbb093313f57dbbb8d4c2c9c5714b0e0fb..bc92c69f5482ad787a4f2eefd3e7f930c91c8c80 100644 --- a/rfc/0010_Duniter_Blockchain_Protocol_V12.md +++ b/rfc/0010_Duniter_Blockchain_Protocol_V12.md @@ -2172,8 +2172,19 @@ For each ENTRY in local MINDEX where `op = 'UPDATE', expired_on = 0`: For each ENTRY in local MINDEX where `type == 'JOIN' OR type == 'ACTIVE'`: +If `HEAD.version >= 12` + + BLOCKCHAIN = REDUCE_BY(GLOBAL_CINDEX[receiver=ENTRY.pub], 'issuer')[expired_on=0] + INCOMING = LOCAL_CINDEX[receiver=ENTRY.pub] + UNIQUE_ISSUERS = UNIQ(CONCAT( + PICK(BLOCKCHAIN, 'issuer'), + PICK(INCOMING, 'issuer'))) + ENTRY.enoughCerts = COUNT(UNIQUE_ISSUERS) >= sigQty + +else + ENTRY.enoughCerts = COUNT(GLOBAL_CINDEX[receiver=ENTRY.pub,expired_on=null]) + COUNT(LOCAL_CINDEX[receiver=ENTRY.pub,expired_on=null]) >= sigQty - + > Functionally: any member or newcomer needs `[sigQty]` certifications coming *to* him to be in the WoT For each ENTRY in local MINDEX where `!(type == 'JOIN' OR type == 'ACTIVE')`: