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

Blokk

Innen: MicroCoin Wiki

A blokkokban tároljuk a tranzakciók adatait és még sok hasznos információt. A blokkokat a bányászok állítják elő és közben ellenőrzik a tranzakciók hitelességét is. A blokkokat a blokkláncban tároljuk.

A Blokkok felépítése

Egy blokk két részből áll:

  1. Blokk fejléc
  2. Tranzakciók (opcionális)

Egy blokkban jelenleg maximum 10 000 tranzakciót lehetséges tárolni.

Blokk fejléc
Név Típus Méret Leírás
Block signature byte 1 byte A blokk "verziója"
Protocol Version word 2 byte Az blokk keletkezésekor használt protokoll verzió
Available Protocol word 2 byte A blokk születésekor elérhető legmagasabb protokoll verzió
Block Number unsigned integer 4 byte A blokk sorszáma
Account key ECKeyPair / TAccountKey 40-160 byte A blokkot létrehozó bányász publikus kulcs
Reward unsigned 64 bit integer 8 byte A blokkért járó jutalom összege (Blokkjutalom)
Fee unsigned 64 bit integer 8 byte A blokkban lévő tranzakciók összköltsége
Timestamp unsigned integer 4 byte A blokk létrhozásának ideje (Unix timestamp)
Compact Target unsigned integer 4 byte A blokk keletkezésekor érvényes Nehézség értéke
Nonce integer 4 byte A bányász által megtalált Nonce értéke
Payload BinaryString / TRawBytes 2+0-255 byte A blokkhoz tartozó bányász "üzenet"
CheckPoint Hash Hash / TRawBytes 2+32 byte A blokk keletkezésekori utolsó Checkpoint ellenőrző összege
Transaction Hash Hash / TRawBytes 2+32 byte A blokkban lévő tranzakciók ellenőrző összege
Proof Of Work Hash / TRawBytes 2+32 byte A Proof Of Work
Transaction Count unsigned integer 4 byte A blokkban lévő tranzakciók darabszáma
Tranzakciók (ha vannak)
1. tranzakció Tranzakció típusa 1 byte
Tranzakció adatai Változó hossz (tranzakció függő)
2. tranzakció Tranzakció típusa 1 byte
Tranzakció adatai Változó hossz (tranzakció függő)
... tranzakció Tranzakció típusa 1 byte
Tranzakció adatai Változó hossz (tranzakció függő)
... tranzakció Tranzakció típusa 1 byte
Tranzakció adatai Változó hossz (tranzakció függő)

A blokk definíciója programozási nyelveken

C#

    public class Block
    {
        public byte BlockSignature { get; set; } = 3;
        public ushort ProtocolVersion { get; set; }
        public ushort AvailableProtocol { get; set; }
        public uint BlockNumber { get; set; }
        public ECKeyPair AccountKey { get; set; }
        public UInt64 Reward { get; set; }
        public UInt64 Fee { get; set; }
        public uint Timestamp { get; set; }        
        public uint CompactTarget { get; set; }
        public int Nonce { get; set; }
        public ByteString Payload { get; set; }
        public Hash CheckPointHash { get; set; }
        public Hash TransactionHash { get; set; }
        public Hash ProofOfWork { get; set; }
        public uint TransactionCount { get; set; }
        public List<Transaction> Transactions { get; set; }
     }

Pascal

type
  TBlock = record
    block_signature: byte;
    protocol_version: word;
    protocol_available: word;
    block: cardinal;
    account_key: TAccountKey;
    reward: UInt64;
    fee: UInt64;
    timestamp: cardinal; 
    compact_target: cardinal; 
    nonce: cardinal; 
    block_payload: TRawBytes; 
    checkpoint_hash: TRawBytes; 
    transactionHash: TRawBytes;
    proof_of_work: TRawBytes; 
    transactions: array of TTransaction;
  end;

Kapcsolódó forráskódok