Ultimate Cheat Sheet To Start Coding In Blockchain: The Fundamental

Kushagra Singh
Neptune Blockchain
Published in
10 min readJul 12, 2018

The demand and interest in Blockchain engineers are soaring. To meet the demand the market is ensuring the supply in its own unique way, polish your skills and go work with the projects that excites you the most.

Regardless of you are a specialist or a novice, ventures are financing you to learn Development on their platforms. Even, however, the normal compensation of a blockchain engineer in Silicon Valley is $158,000, programmers who have experience in Solidity (language for creating smart contracts) is in short supply and high demand.

So we have decided to make a cheat sheet to assist you with simple change in blockchain advancement.

This specific blog centers around Fundamental Of Blockchains and how most popular coding languages are used in blockchain development.

The topics covered are,

Fundamental of Blockchain

Basic

languages are used in blockchain development?

Fundamentals of Blockchain

You may have perused different basic explanation of Bitcoin/Blockchain and related application, If you haven’t investigated much about it yet, this segment is for you folks.

Also, sharing some of my favorite articles on the same.

White paper: Bitcoin: A peer to peer electronic cash system — by Satoshi Nakamoto

Article: Bitcoin and the separation of money and state — by Erik Voorhees

Article: Why blockchain matters — by Reid Hoffman

Article: The meaning of decentralization — by Vitalik Buterin

Article: Money, Blockchains and social scalability — by Nick Szabo

Article: How digital currency will change the world — by Brian Armstrong

Basic terminologies:

51% Attack

51% attack refers to an attack on a Blockchain — usually Bitcoin’s, for which such an attack is still hypothetical — by a group of miners controlling more than 50% of the network’s mining hashrate, or computing power.

Address

Cryptocurrency addresses are used to send or receive transactions on the network. An address usually presents itself as a string of alphanumeric characters.

ASIC

Short form for ‘Application Specific Integrated Circuit’. Often compared to GPUs, ASICs are specially made for mining and may offer significant power savings.

Block

Blocks are packages of data that carry permanently recorded data on the blockchain network.

Block Explorer

Block explorer is an online tool to view all transactions, past and current, on the blockchain. They provide useful information such as network hash rate and transaction growth.

Block Height

The number of blocks connected on the blockchain.

Block Reward

A form of incentive for the miner who successfully calculated the hash in a block during mining. Verification of transactions on the blockchain generates new coins in the process, and the miner is rewarded a portion of those.

Central Ledger

A ledger maintained by a central agency.

Confirmation

The successful act of hashing a transaction and adding it to the blockchain.

Consensus

Consensus is achieved when all participants of the network agree on the validity of the transactions, ensuring that the ledgers are exact copies of each other.

Cryptocurrency

Also known as tokens, cryptocurrencies are representations of digital assets.

Cryptographic Hash Function

Cryptographic hashes produce a fixed-size and unique hash value from variable-size transaction input. The SHA-256 computational algorithm is an example of a cryptographic hash.

Dapp

A decentralised application (Dapp) is an application that is open source, operates autonomously, has its data stored on a blockchain, incentivised in the form of cryptographic tokens and operates on a protocol that shows proof of value.

DAO

Decentralised Autonomous Organizations can be thought of as corporations that run without any human intervention and surrender all forms of control to an incorruptible set of business rules.

Distributed Ledger

Distributed ledgers are ledgers in which data is stored across a network of decentralized nodes. A distributed ledger does not have to have its own currency and may be permissioned and private.

Distributed Network

A type of network where processing power and data are spread over the nodes rather than having a centralised data centre.

Difficulty

This refers to how easily a data block of transaction information can be mined successfully.

Digital Signature

A digital code generated by public key encryption that is attached to an electronically transmitted document to verify its contents and the sender’s identity.

Double Spending

Double spending occurs when a sum of money is spent more than once. It is a potential flaw in a digital cash scheme in which the same single digital token can be spent more than once. As with counterfeit money, such double-spending leads to inflation by creating a new amount of fraudulent currency that did not previously exist.

EVM

The Ethereum Virtual Machine (EVM) is a Turing complete virtual machine that allows anyone to execute arbitrary EVM Byte Code. Every Ethereum node runs on the EVM to maintain consensus across the blockchain.

Fork

Forks create an alternate version of the blockchain, leaving two blockchains to run simultaneously on different parts of the network.

Genesis Block

The first or first few blocks of a blockchain.

Hard Fork

A type of fork that renders previously invalid transactions valid, and vice versa. This type of fork requires all nodes and users to upgrade to the latest version of the protocol software.

Hash

The act of performing a hash function on the output data. This is used for confirming coin transactions.

Hash Rate

Measurement of the performance for the mining rig is expressed in hashes per second.

Hybrid PoS/PoW

A hybrid PoS/PoW allows for both Proof of Stake and Proof of Work as consensus distribution algorithms on the network. In this method, a balance between miners and voters (holders) may be achieved, creating a system of community-based governance by both insiders (holders) and outsiders (miners).

Mining

Mining is the act of validating blockchain transactions. The necessity of validation warrants an incentive for the miners, usually in the form of coins. In this cryptocurrency boom, mining can be a lucrative business when done properly. By choosing the most efficient and suitable hardware and mining target, mining can produce a stable form of passive income.

Multi-Signature

Multi-signature addresses provide an added layer of security by requiring more than one key to authorize a transaction.

Node

A copy of the ledger operated by a participant of the blockchain network.

Oracles

Oracles work as a bridge between the real world and the blockchain by providing data to the smart contracts.

Peer to Peer

Peer to Peer (P2P) refers to the decentralized interactions between two parties or more in a highly-interconnected network. Participants of a P2P network deal directly with each other through a single mediation point.

Public Address

A public address is the cryptographic hash of a public key. They act as email addresses that can be published anywhere, unlike private keys.

Private Key

A private key is a string of data that allows you to access the tokens in a specific wallet. They act as passwords that are kept hidden from anyone but the owner of the address.

Proof of Stake

A consensus distribution algorithm that rewards earnings based on the number of coins you own or hold. The more you invest in the coin, the more you gain by mining with this protocol.

Proof of Work

A consensus distribution algorithm that requires an active role in mining data blocks, often consuming resources, such as electricity. The more ‘work’ you do or the more computational power you provide, the more coins you are rewarded with.

Scrypt

Scrypt is a type of cryptographic algorithm and is used by Litecoin. Compared to SHA256, this is quicker as it does not use up as much processing time.

SHA-256

SHA-256 is a cryptographic algorithm used by cryptocurrencies such as Bitcoin. However, it uses a lot of computing power and processing time, forcing miners to form mining pools to capture gains.

Smart Contracts

Smart contracts encode business rules in a programmable language onto the blockchain and are enforced by the participants of the network.

Soft Fork

A soft fork differs from a hard fork in that only previously valid transactions are made invalid. Since old nodes recognize the new blocks as valid, a soft fork is essentially backward-compatible. This type of fork requires most miners upgrading in order to enforce, while a hard fork requires all nodes to agree on the new version.

Testnet

A test blockchain used by developers to prevent expending assets on the main chain.

Transaction Block

A collection of transactions gathered into a block that can then be hashed and added to the blockchain.

Transaction Fee

All cryptocurrency transactions involve a small transaction fee. These transaction fees add up to account for the block reward that a miner receives when he successfully processes a block.

Turing Complete

Turing complete refers to the ability of a machine to perform calculations that any other programmable computer is capable of. An example of this is the Ethereum Virtual Machine (EVM).

Wallet

A file that houses private keys. It usually contains a software client which allows access to view and create transactions on a specific blockchain that the wallet is designed for.

How popular coding languages are used in blockchain development?

There are many different languages you need to code in Blockchain to accomplish security, resource management, performance and isolation.

Whereas most technologies tend to automate workers on the periphery doing menial tasks, blockchains automate away the center. Instead of putting the taxi driver out of a job, blockchain puts Uber out of a job and lets the taxi drivers work with the customer directly - Vitalik Buterin

C/C++

The biggest difference between C and C++ is that while C is process-oriented, C++ is object oriented.

In C++, the data and functions are wrapped into one neat little package called “objects” which means that once an object is created, it can easily be called and reused in other programs, which greatly reduces coding time.

Bitcoin core (Satoshi’s code base) was originally written in c++. Although like other languages C++ has no exception in the number of flaws it provides, but it was an appropriate choice because it provides very tight control over memory usage.

Javascript

Originally designed for the creation of front-ends, currently, along with PHP, JS is used to build backends and even mobile apps. But this is not all the spheres of its application — given the rapid pace of development, JS is increasingly being employed for the blockchain projects.

Javascript has a huge community support and provides easy interaction with blockchain security tools such as Mythril, a framework that helps checking the created decentralized apps for security vulnerabilities.

Some blockchain tools that support javascript are truffles, Web3.js, Metamask and Swarm and IPFS

A couple of examples for javascript implemantation on blockchain are gekko, kryptowar and light wallet.

We have covered this topic in detail in our other blog.

Golang

Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java.

Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, working with Go is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for.

Also,Go is simple and has relatively small number of quirks you have to remember/rediscover after coming back to it after a pause. Also Go doesn’t brakes language specs with new minor versions (1.x works without a hitch on all upgrades last 2 years). This makes Go perfect language for a project you will maintain for a significant future.

Solidity

Solidity is contract oriented high-level programing language which is used for writing smart contacts. Solidity is used for implementing smart contracts on various blockchain platforms. This platform has a lot of similarity with JavaScript (another scripting language). Solidity does the process of verifying and enforcing the constraints at compile-time as opposed to the run-time. Solidity is basically there to develop and execute code on the Ethereum Virtual Machine.

In further Blogs, we will try to cover Blockchain development resources for different programming languages.

Full disclosure: I am senior consultant, Growth at Neptune Blockchain. Join our developer channel on telegram for the best curated jobs, news, Bug bounties, resources and more. We would love to hear your valuable feedback on our work.

--

--