diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c6127b38c1aa25968a88db3940604d41529e4cf5..0000000000000000000000000000000000000000 --- a/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# Prerequisites -*.d - -# Object files -*.o -*.ko -*.obj -*.elf - -# Linker output -*.ilk -*.map -*.exp - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex - -# Debug files -*.dSYM/ -*.su -*.idb -*.pdb - -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf diff --git a/dap_chain.c b/dap_chain.c index d27eefa61e10bbb5dad123deb9d06d7fa1e4b205..cfea228c19e46cca6f79abd377e7e623736f822b 100644 --- a/dap_chain.c +++ b/dap_chain.c @@ -29,6 +29,23 @@ #define LOG_TAG "dap_chain" + +FILE* my_file_to_wite_gold; +void* gold_mem; +FILE* my_file_to_wite_silver; +void* silver_mem; +FILE* my_file_to_wite_copper; +void* copper_mem; + +int blocks_mined; +int blocks_mined_gold; +int blocks_mined_silver; +int blocks_mined_copper; + +double total_mining_time; +double total_mining_hashes; //хз че делать пока +double total_hashes_in_minute; + /** * @brief dap_chain_init * @return @@ -47,6 +64,35 @@ void dap_chain_deinit() } +void dap_chain_mine_stop(){ + log_it(L_INFO, "Total hashes for gold coins %s B", ftell(my_file_to_wite_gold) ); + fclose(my_file_to_wite_gold); + log_it(L_INFO, "Total hashes for silver coins %s B", ftell(my_file_to_wite_silver)); + fclose(my_file_to_wite_silver); + log_it(L_INFO, "Total hashes for copper coins %s B", ftell(my_file_to_wite_copper)); + fclose(my_file_to_wite_copper); + log_it(L_INFO, "Total blocks mined %s ", blocks_mined); + log_it(L_INFO, "Gold blocks mined %s ", blocks_mined_gold); + log_it(L_INFO, "Silver blocks mined %s ", blocks_mined_silver); + log_it(L_INFO, "Copper blocks mined %s ", blocks_mined_copper); + log_it(L_INFO, "Totla mining speed %s ", total_hashes_in_minute/blocks_mined); +} + +void dap_chain_settot(){ + blocks_mined = 0; + blocks_mined_copper = 0; + blocks_mined_silver = 0; + blocks_mined_gold = 0; + total_hashes_in_minute = 0; +} + +void dap_chain_count_new_block(dap_chain_block_cache_t *l_block_cache) +{ + blocks_mined+=1; + total_hashes_in_minute = total_hashes_in_minute + sizeof(l_block_cache->block_hash)/l_block_cache->block_mine_time; +} + + /** * @brief dap_chain_open * @param a_file_storage @@ -86,6 +132,116 @@ void dap_chain_save(dap_chain_t * a_chain) } +/** + * @brief dap_chain_file_write + * @param l_block_cache + */ + +void dap_chain_file_write(dap_chain_block_cache_t *l_block_cache){ + if (dap_chain_hash_kind_check(l_block_cache, l_block_cache->block->header.difficulty)==HASH_GOLD){ + fwrite(l_block_cache->block->header.size, 64, 1, my_file_to_wite_gold); + fwrite(l_block_cache->block, l_block_cache->block->header.size, 1, my_file_to_wite_gold); + blocks_mined_gold += 1; + /*gold_mem=mmap(0, l_block_cache->block->header.size, PROT_WRITE, MAP_SHARED, my_file_to_wite_gold, 0); + memcpy(gold_mem, l_block_cache, l_block_cache->block->header.size); + munmap(gold_mem, l_block_cache->block->header.size);*/ + } + else if (dap_chain_hash_kind_check(l_block_cache, l_block_cache->block->header.difficulty)==HASH_SILVER){ + fwrite(l_block_cache->block->header.size, 64, 1, my_file_to_wite_silver); + fwrite(l_block_cache->block, l_block_cache->block->header.size, 1, my_file_to_wite_silver); + blocks_mined_silver += 1; + /*silver_mem=mmap(0, l_block_cache->block->header.size, PROT_WRITE, MAP_SHARED, my_file_to_wite_silver, 0); + memcpy(silver_mem, l_block_cache, l_block_cache->block->header.size); + munmap(silver_mem, l_block_cache->block->header.size);*/ + } + else { + fwrite(l_block_cache->block->header.size, 64, 1, my_file_to_wite_copper); + fwrite(l_block_cache->block, l_block_cache->block->header.size, 1, my_file_to_wite_copper); + blocks_mined_copper += 1; + /*copper_mem=mmap(0, l_block_cache->block->header.size, PROT_WRITE, MAP_SHARED, my_file_to_wite_copper, 0); + memcpy(copper_mem, l_block_cache, l_block_cache->block->header.size); + munmap(copper_mem, l_block_cache->block->header.size);*/ + } +} + +/** + * @brief dap_chain_file_open + * @param last_g + * @param last_s + * @param last_c + */ + +void dap_chain_file_open(dap_chain_block_cache_t* last_g, dap_chain_block_cache_t* last_s, dap_chain_block_cache_t* last_c) +{ + dap_chain_block_cache_t * l_block_gold; + dap_chain_block_cache_t *l_block_silver; + dap_chain_block_cache_t *l_block_copper; + uint32_t size_of_gold, size_of_silver, size_of_copper; + size_t result; + + my_file_to_wite_gold = fopen("my_block_gold.txt", "a+");// теÑтовый файл Ñоздам еÑли еÑÑ‚ÑŒ добавим + + if (my_file_to_wite_gold==NULL){ + log_it(L_INFO, "Everything is lost! File not opened!"); + exit(1); + + } + else { + + result =fread(size_of_gold, 64, 1, my_file_to_wite_gold); + result = fread(l_block_gold, size_of_gold, 1, my_file_to_wite_gold); + while ((l_block_gold->block!=0)&&result!=0){ + result = fread(size_of_gold, 64, 1, my_file_to_wite_gold); + if (result!=0){ + result = fread(l_block_gold, size_of_gold, 1, my_file_to_wite_gold); + } + } + last_g =l_block_gold; + //l_block_gold = + } + + + + my_file_to_wite_silver = fopen("my_block_silver.txt", "a+"); + if (my_file_to_wite_silver==NULL){ + log_it(L_INFO, "Everything is lost! File not opened!"); + exit(1); + + } + else { + + result = fread(size_of_silver, 64, 1, my_file_to_wite_silver); + result = fread(l_block_silver, size_of_silver, 1, my_file_to_wite_silver); + while ((l_block_silver->block!=0)&&result!=0){ + result = fread(size_of_silver, 64, 1, my_file_to_wite_silver); + if (result!=0){ + result = fread(l_block_silver, size_of_silver, 1, my_file_to_wite_silver); + } + } + last_s =l_block_silver; + } + + my_file_to_wite_copper = fopen("my_block_copper.txt", "a+"); + if (my_file_to_wite_copper==NULL){ + log_it(L_INFO, "Everything is lost! File not opened!"); + exit(1); + + } + else { + + result = fread(size_of_copper, 64, 1, my_file_to_wite_copper); + result = fread(l_block_copper, size_of_copper, 1, my_file_to_wite_copper); + while (l_block_copper->block!=0){ + result = fread(size_of_copper, 64, 1, my_file_to_wite_gold); + if (result!=0){ + fread(l_block_copper, size_of_copper, 1, my_file_to_wite_copper); + } + } + last_c = l_block_copper; + } +} + + /** * @brief dap_chain_close * @param a_chain @@ -95,6 +251,15 @@ void dap_chain_close(dap_chain_t * a_chain) } +/** + * @brief dap_chain_update + * @param l_block_cache + */ +void dap_chain_update(dap_chain_block_cache_t *l_block_cache){ + dap_chain_file_write(l_block_cache); + +} + /** * @brief dap_chain_info_dump_log * @param a_chain diff --git a/dap_chain.h b/dap_chain.h index 801595794c1fc1e41eeba1f3ce06ff80a9c3d5a2..22d3bcd44807c1f3db6d6a05dc2535bd5cba1b00 100644 --- a/dap_chain.h +++ b/dap_chain.h @@ -44,6 +44,17 @@ void dap_chain_remap(dap_chain_t * a_chain, size_t a_offset); void dap_chain_save(dap_chain_t * a_chain); void dap_chain_info_dump_log(dap_chain_t * a_chain); + + +//работа Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ +void dap_chain_file_open(dap_chain_block_cache_t* last_g, dap_chain_block_cache_t* last_s, dap_chain_block_cache_t* last_c); +void dap_chain_file_write(dap_chain_block_cache_t *l_block_cache); +void dap_chain_update(dap_chain_block_cache_t *l_block_cache); +void dap_chain_mine_stop(); +void dap_chain_settot(); +void dap_chain_count_new_block(dap_chain_block_cache_t *l_block_cache); +//работа Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ + dap_chain_block_cache_t* dap_chain_allocate_next_block(dap_chain_t * a_chain);