A block is the building element of a blockchain. In general, it is a transaction with backing information, and each block is a digital page in a larger collection, called a digital ledger.
A ledger is a digital transactional, record-keeping book. Information stored in blocks includes but is not limited to:
Date and time of the transaction (i.e. timestamps)
- The cryptographic hash* (like a unique fingerprint or ID)
- The hash of the immediately previous block
Thanks to the cryptographic hashes, blockchain and blocks are well secured, preventing data from being hacked or undesirably altered. If there are any changes made to a block, its own hash (the block’s unique identification) will change, thus it is no longer valid to be added to the block, creating the immutable characteristic of the blockchain.
* Cryptographic hash, or hash for short, is a fixed-size enciphered or encrypted string that is calculated from a cryptographic hash function. The function takes in an arbitrary amount of data, processes it through an algorithm, and then produces a hash as a result. The length of the input varies, but the outputs are always the same in length. If the exact input is processed multiple times, the calculated hashes are always the same. Once any small part of the input is changed, the output hash will change and thus will not pass the validation. This is one of the distinguishing features of blockchains to protect themselves from hacking and undesired alterations.
Learn more here: Consensus Mechanism
Below are the most common blocks in GumboNet:
Contract blocks: In order to execute the smart contract, both parties will need to electronically approve and sign the digital contract version. Then, the signed contract is permanently recorded on the second block of the blockchain.
Charge blocks: Each transaction between a hosting company and its counterparty is recorded in this block. For example, if company A makes a trip and delivers 1,000 bbls of diesel fuel to company B, a charge block is generated to record this delivery or transaction, including key information such as the time of the delivery and the price. GumboNet receives or taps Internet of Things (IoT) data from meter sensors and truck GPS systems to match the delivery information, trigger the smart contract, and generate charge blocks.
Charge adjustment blocks: If a charge block contains incorrect values for some reason, this charge block is still added to the blockchain. To make corrections, a process called Dispute Resolution is initiated. Then, after the correction is made, a charge adjustment block is created to store all information about the correction, such as the block it corrected, what the correct amount should be, how much is adjusted, timestamp, etc.
Invoice blocks: This type of block is generated when an invoice is ready to be created for processing payment. Transactional data from multiple charge blocks are grouped together with a sum total amount and are recorded in the invoice blocks. Per the Host Party’s request, the frequency to generate invoice blocks can vary, which could be weekly, bi-weekly or monthly. When company A makes a payment to company B, this invoice block records the amount of payment.
NOTE: If a charge block is disputed, the cost charged in this block will not be added to the invoice until it is resolved. Once resolved, the corrected monetary amount will then be added to the next invoice.
Data blocks: This type of block is generated when smart contracts need to capture a series of events that will not individually trigger a payment, but in the aggregate, show progress to some goal tied to a payment, or to store a record of an event on the blockchain. For instance, parties may want to track the progress of the delivery of equipment to a job site, where the data could be coming from two or more different companies and needs to be synchronized across companies, contracts, and planning systems as deliveries progress toward a milestone payment that will trigger a charge or invoice block. Examples include documents, RFID pings for specific pallets of equipment arriving or leaving a job site, or progress updates received from a project management system.