Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <list>
- #include <vector>
- #include <ctime>
- using namespace std;
- string zeros = "00000000000000";
- struct block {
- size_t id;
- string timestamp;
- string data;
- size_t nonce;
- size_t previous_hash;
- };
- void find_nonce (block &a_block, int difficulty){
- size_t hr = hash_combined(a_block);
- while (true){
- string hrs = to_string(hr);
- if (hrs.compare(hrs.size() - difficulty, difficulty, zeros, 0, difficulty) == 0 )
- break;
- a_block.nonce++;
- hr = hash_combined(a_block);
- }
- }
- void check_valid_blockchain (list <block>, &chain){
- }
- int main(){
- list <block> blockchain;
- int difficulty = 7;
- vector<string> texts = {"A pays B 10",
- "B pays C 20",
- "C pays D 30",
- };
- time_t now = time(0);
- struct tm *timeinfo = localtime(&now);
- char buffer[80];
- strftime(buffer, 80, "%F%T", timeinfo);
- block genesis_block = {0, buffer, "GENESIS BLOCK", 0, 0};
- find_nonce(genesis_block, difficulty);
- blockchain.push_back(genesis_block);
- block previous_block = genesis_block;
- for (int i=0; i < texts.size(); i++ ){
- block a_block;
- //now?
- now = time(0);
- timeinfo = localtime(&now);
- strftime(buffer, 80, "%F%T", timeinfo);
- a_block.timestamp = buffer;
- a_block.data = texts[i];
- a_block.previous_hash = hash_combined(previous_block);
- find_nonce(a_block, difficulty);
- blockchain.push_back(a_block);
- print_block(a_block);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement