What is Source Code?
When it comes to Distributed Ledger Technology (DLT), there are four forms of source code (often referred to as simply “source”) that get discussed. The first of these forms involves the source code (the code that was programmed by software developers) used to automate the business processes and algorithms behind the operation of a given chain (e.g., Bitcoin, Ethereum, etc.). It’s important to note that few if any chains rely on the same exact source code for their operation. While some of the source code behind many of the different blockchains may be traceable to Bitcoin and Ethereum's respective source code (each of which whose source code was made freely available via open source licenses), most chains involve source that’s specific to their differentiating features.
The second form of source code is a colloquial reference to the data, metadata and data schema (atypically considered “source code” in software development circles) that collectively form the basis of any given ledger’s transactional content. Therefore, non-developer users of a distributed ledger may consider the ledger’s data, metadata and data schema as the “source code” of its utility, whereas software developers may think of that data as a given chain’s “source data.” The blurring of lines between source code and source data harkens to their mutual interdependence on each other. Neither is of any value without the other because the two essentially team up to perpetually (and indelibly) record and order all transactions on a given ledger.
The third form of source code — and the one that is particularly relevant to enterprises and businesses considering DLT for digital transformation, business innovation and industry disruption — is the source code that’s used to automate the custom business applications (aka smart contracts) that programmatically unlock the unique capabilities of DLTs as application platforms. Not all ledgers support smart contracts the same way and some may not support them at all. For the ones that do, there may be a variety of differences, including the underlying virtual machine technology and the programming languages that are supported. At the time this glossary entry was published, the Ethereum Virtual Machine (EVM) represented the closest thing to a de facto virtual machine standard for smart contract support, and Solidity is the closest thing to a de facto standard programming language for developing the source code that runs on those virtual machines.
The fourth form of source code exists behind the external applications that interact with the different distributed ledgers via application programming interfaces (APIs). Virtually every distributed ledger includes a collection of APIs that make it possible for third-party applications (such as cryptocurrency wallets) to integrate with the different capabilities offered by those chains.