blockpp
/
src
/
blockchain.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef OB_BLOCKCHAIN_HH
#define OB_BLOCKCHAIN_HH
#include <string>
#include <vector>
class Blockchain
{
public:
class Data
{
public:
std::string str;
}; // class Data
class Block
{
public:
int index;
std::string timestamp;
std::string data;
std::string hash_prev;
std::string hash;
}; // class Block
using Chain = std::vector<Block>;
Blockchain();
void genesis_block();
std::string hash_block(Block block);
Block generate_block(Data data);
bool validate_block(Block block, Block block_prev);
int append_block(Data data);
private:
Chain chain;
}; // class Blockchain
#endif // OB_BLOCKCHAIN_HH