ac_private to allow notary p2pk bouts
This commit is contained in:
@@ -198,6 +198,21 @@ const char *Notaries_elected1[][2] =
|
|||||||
{"xrobesx_NA", "03f0cc6d142d14a40937f12dbd99dbd9021328f45759e26f1877f2a838876709e1" },
|
{"xrobesx_NA", "03f0cc6d142d14a40937f12dbd99dbd9021328f45759e26f1877f2a838876709e1" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int32_t komodo_isnotaryvout(CScript scriptPubKey) // from ac_private chains only
|
||||||
|
{
|
||||||
|
uint8_t pubkey33[33],*ptr = scriptPubKey.data(); int32_t i;
|
||||||
|
if ( scriptPubKey.size() == 35 && ptr[0] == 33 && ptr[34] == 0xac )
|
||||||
|
{
|
||||||
|
for (i=0; i<sizeof(Notaries_elected1)/sizeof(*Notaries_elected1); i++)
|
||||||
|
{
|
||||||
|
decode_hex(pubkey33,33,(char *)Notaries_elected1[i][1]);
|
||||||
|
if ( memcmp(ptr+1,pubkey33) == 0 )
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t komodo_notaries(uint8_t pubkeys[64][33],int32_t height,uint32_t timestamp)
|
int32_t komodo_notaries(uint8_t pubkeys[64][33],int32_t height,uint32_t timestamp)
|
||||||
{
|
{
|
||||||
static uint8_t elected_pubkeys0[64][33],elected_pubkeys1[64][33],did0,did1; static int32_t n0,n1;
|
static uint8_t elected_pubkeys0[64][33],elected_pubkeys1[64][33],did0,did1; static int32_t n0,n1;
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ extern int32_t KOMODO_LOADINGBLOCKS,KOMODO_LONGESTCHAIN,KOMODO_INSYNC,KOMODO_CON
|
|||||||
int32_t KOMODO_NEWBLOCKS;
|
int32_t KOMODO_NEWBLOCKS;
|
||||||
int32_t komodo_block2pubkey33(uint8_t *pubkey33,CBlock *block);
|
int32_t komodo_block2pubkey33(uint8_t *pubkey33,CBlock *block);
|
||||||
void komodo_broadcast(CBlock *pblock,int32_t limit);
|
void komodo_broadcast(CBlock *pblock,int32_t limit);
|
||||||
|
int32_t komodo_isnotaryvout(CScript scriptPubKey);
|
||||||
|
|
||||||
BlockMap mapBlockIndex;
|
BlockMap mapBlockIndex;
|
||||||
CChain chainActive;
|
CChain chainActive;
|
||||||
@@ -1119,7 +1120,10 @@ bool CheckTransactionWithoutProofVerification(const CTransaction& tx, CValidatio
|
|||||||
{
|
{
|
||||||
fprintf(stderr,"private chain nValue %.8f iscoinbase.%d\n",(double)txout.nValue/COIN,iscoinbase);
|
fprintf(stderr,"private chain nValue %.8f iscoinbase.%d\n",(double)txout.nValue/COIN,iscoinbase);
|
||||||
if ( (txout.nValue > 0 && iscoinbase == 0) || tx.GetJoinSplitValueOut() > 0 )
|
if ( (txout.nValue > 0 && iscoinbase == 0) || tx.GetJoinSplitValueOut() > 0 )
|
||||||
return state.DoS(100, error("CheckTransaction(): this is a private chain, no public allowed"),REJECT_INVALID, "bad-txns-acprivacy-chain");
|
{
|
||||||
|
if ( komodo_isnotaryvout(txout.scriptPubKey) == 0 )
|
||||||
|
return state.DoS(100, error("CheckTransaction(): this is a private chain, no public allowed"),REJECT_INVALID, "bad-txns-acprivacy-chain");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( txout.scriptPubKey.size() > IGUANA_MAXSCRIPTSIZE )
|
if ( txout.scriptPubKey.size() > IGUANA_MAXSCRIPTSIZE )
|
||||||
return state.DoS(100, error("CheckTransaction(): txout.scriptPubKey.size() too big"),REJECT_INVALID, "bad-txns-vout-negative");
|
return state.DoS(100, error("CheckTransaction(): txout.scriptPubKey.size() too big"),REJECT_INVALID, "bad-txns-vout-negative");
|
||||||
|
|||||||
Reference in New Issue
Block a user