blockpp

A blockchain implementation in c++.


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
Back to Top