FIGYELEM! A MicroCoinnak és a fejlesztő csapatának nincs köze a Mikron nevű ICO-hoz!

Blokklánc

Innen: MicroCoin Wiki

A blokklánc (angolul block chain vagy blockchain) egy elosztott adatbázis, amely egy folyamatosan növekvő, adatblokkokból álló lista nyilvántartását végzi, a hamisítást és módosítást kizáró módon. [1]

A Blokklánc fájlformátuma

A blokklánc blokkokból áll. Alapesetben az felhasználó Appdata/Roaming/MicroCoin/Data (Linux esetén home/.microcoin/data) mappában tároljuk BlockChainStream.blocks néven. Ez egy bináris fájl amely több részből áll. Elöször egy 1000 elemből álló indexet találunk benne amely megmutatja a következő 1000 blokk pozícióját és méretét a fájlban. Ezután jön az 1000 blokk, majd újra egy 1000-es index és így tovább.

A blokklánc fájl formátuma
0-999. blokkhoz tartozó index
0-999. Blokk
1000-1999. blokkhoz tartozó index
1000-1999. Blokk
...
Az index egy "sora"
Név Típus Méret
Blokk sorszáma Előjel nélküli egész 32 bit (4 bájt)
Blokk kezdete Előjel nélküli egész 64 bit (8 bájt)
Blokk mérete Előjel nélküli egész 32 bit (4 bájt)

A blokklánc indexének egy eleme programnyelven definiálva

Definíció Pascal nyelven

type blockchain_header_entry = record 
  block_number : integer;
  offset : UInt64;
  size: integer;
end;

Definíció C nyelven

typedef struct blockchain_header_entry {
  uint32_t block_number;
  uint64_t offset;
  uint32_t size;
} blockchain_header_entry;

A Blokk kezdete nem a fájl kezdetétől, hanem az index végétől értendő. Az index mérete 1000*(4+8+4) = 16 000 bájt. Így, ha a 100. blokkot szeretnénk megtalálni, akkor ki kell olvasni a 101. bejegyzést a blokklánc indexéből (a 0. Blokk az első bejegyzés, ezért 101), majd az offsethez hozzá kell adni az index méretét, ami 16000 bájt (1000x16 bájt), így megkapjuk a 100. Blokk kezdő pozícióját a fájlban. Ezután a size által megadott számú bájtot beolvasva megkapjuk a Blokk adatait.

A .NETCore által használt blokklánc felépítése

A .NET-es verzió más formátumot használ, az indexet és a blokkok adatait külön fájlban tárolja, így ott az indexben a Blokk valós offsetje tárolódik el (nem szükséges növelni az indexek és az előtte lévő blokkok méretével).

Kapcsolódó forráskódok

Referenciák

  1. Wikipedia blokklánc szócikk (hozzáférés ideje: 2018. január 5.)