diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c index 60b04baf49f1a973f1ae0739752db6c60366b58b..0f2e907ceb136ef828cd49a367a09c11986a3c2d 100644 --- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c +++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c @@ -393,6 +393,15 @@ static int s_callback_event_verify(dap_chain_cs_dag_t * a_dag, dap_chain_cs_dag_ } return l_verified >= l_poa_pvt->auth_certs_count_verify ? 0 : -1; + }else if (a_dag_event->header.hash_count == 0){ + dap_chain_hash_fast_t l_event_hash; + dap_chain_cs_dag_event_calc_hash(a_dag_event,a_dag_event_size, &l_event_hash); + if ( memcmp( &l_event_hash, &a_dag->static_genesis_event_hash, sizeof(l_event_hash) ) == 0 ){ + return 0; + }else{ + log_it(L_WARNING,"Wrong genesis event %p: hash is not equels to what in config", a_dag_event); + return -20; // Wrong signatures number + } }else{ log_it(L_WARNING,"Wrong signatures number with event %p", a_dag_event); return -2; // Wrong signatures number diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c index d4b55672c4dfa374e88ca25e3886848a92987fae..15da786b6919f505b3c36663535ed4c593d8da56 100644 --- a/modules/type/dag/dap_chain_cs_dag.c +++ b/modules/type/dag/dap_chain_cs_dag.c @@ -297,9 +297,13 @@ static int s_dap_chain_add_atom_to_events_table(dap_chain_cs_dag_t * a_dag, dap_ HASH_ADD(hh, PVT(a_dag)->events,hash,sizeof (a_event_item->hash), a_event_item); s_dag_events_lasts_process_new_last_event(a_dag, a_event_item); } else { - char l_buf_hash[128]; - dap_chain_hash_fast_to_str(&a_event_item->hash,l_buf_hash,sizeof(l_buf_hash)-1); - log_it(L_WARNING,"Dag event %s check failed: code %d", l_buf_hash, res ); + if ( memcmp( &a_event_item->hash, &a_dag->static_genesis_event_hash, sizeof(a_event_item->hash) ) == 0 ){ + res = 0; + }else{ + char l_buf_hash[128]; + dap_chain_hash_fast_to_str(&a_event_item->hash,l_buf_hash,sizeof(l_buf_hash)-1); + log_it(L_WARNING,"Dag event %s check failed: code %d", l_buf_hash, res ); + } } return res; }