This glossay introduces common terminologies related to Git, Gitopia and Blockchain.
Airdrop is the process of distributing free cryptocurrency coins/tokens to the general public
The user that is assigned to an issue.
Block is the most fundamental component in the structure of a blockchain and serves as the single section comprising discrete data. The blocks generally include a list of actions or transactions that should be performed during data processing in the block.
Block Reward is the reward that a miner gets after he solves a block successfully. To claim the reward, the miner adds the first transaction on the block. The whole process starts with miners looking for blocks to be verified. Once found, the transactions on the block need to be verified for the reward to be processed. Also, the reward is shared among a group of miners depending on the amount of work they have done.
The blockchain is a distributed ledger technology (DLT) that offers decentralization. Blockchain consists of nodes that carry a copy of the decentralized ledger. Also, blockchain uses consensus method to agree on value across the network. We hope you learned about blockchain definition.
Bounty is a simple program run by startups or business to incentivize positive behavior such as bug fixes, marketing aid, article writing, and so on.
A branch is a parallel version of a repository. It is contained within the repository, but does not affect the primary or main branch allowing you to work freely without disrupting the "live" version. When you've made the changes you want to make, you can merge your branch back into the main branch to publish your changes.
To choose a subset of changes from a series of changes (typically commits) and record them as a new series of changes on top of a different codebase. In Git, this is performed by the git cherry-pick command to extract the change introduced by an existing commit on another branch and to record it based on the tip of the current branch as a new commit.
A process that runs automated builds and tests once a person commits a change to a configured repository on GitHub. CI is a common best practice in software development that helps detect errors.
A clone is a copy of a repository that lives on your computer instead of on a website's server somewhere, or the act of making that copy. When you make a clone, you can edit the files in your preferred editor and use Git to keep track of your changes without having to be online. The repository you cloned is still connected to the remote version so that you can push your local changes to the remote to keep them synced when you're online.
The closed source software points out proprietary software featuring source code that is not accessible to the public. Users can access the compiled binaries in the form of an executable program. However, the binaries are not human-readable, and users other than the original software developer cannot access them for modifications.
A person who is designated as an owner of a portion of a repository's code. The code owner is automatically requested for review when someone opens a pull request (not in draft mode) that makes changes to code the code owner owns.
A collaborator is a person with read and write access to a repository who has been invited to contribute by the repository owner.
A commit, or "revision", is an individual change to a file (or set of files). When you make a commit to save your work, Git creates a unique ID (a.k.a. the "SHA" or "hash") that allows you to keep record of the specific changes committed along with who made them and when. Commits usually contain a commit message which is a brief description of what changes were made.
The consensus is a way to agree on a single point of the data value in a network. Many consensus algorithms are used in distributed systems. Some of the popular consensus algorithms include Proof-of-Work(PoW), Proof-of-Stake(PoS) and Delegated Proof of Stake (DPoS). All of them work differently and have a different way of handling consensus in a distributed network.
A contributor is someone who does not have collaborator access to a repository but has contributed to a project and had a pull request they opened merged into the repository.
Cryptocurrency is a virtual/digital coin with no tangible existence. It can be distributed over a network and acts as a way to do trades among peers. It existence surrounds the idea of decentralization with no central authority at work. Some of the most popular cryptocurrencies include Bitcoin, Ethereum, NEO, Litecoin, EOS, and so on. A user can mine or buy a cryptocurrency.
DAO stands for Decentralized Autonomous Organization. A DAO is an organization that is run through rules encoded as computer programs called smart contracts. The goal of a DAO is to create an organization that can function without “human” hierarchical management.
dApp stands for decentralized applications that run without the control of a central authority
The movement of data, actions, and other interests away from a single actor in favor of distribution amongst all actors. In a decentralized system, no actor or group of actors can control the system without the consent of the rest of the actors.
Decentralized Finance (DeFi)
Decentralized finance—often called DeFi or open finance—refers to the economic paradigm shift enabled by decentralized technologies, particularly blockchain networks. DeFi represents a shift from a centralized and closed financial system to a universally accessible economy that is based on open protocols that are interoperable, programmable, and composable.
Certain PoS protocols allow for delegation, or the ability for a delegator(holder of that network’s tokens) to earn a slice of block rewards by adding their asset to the staked tokens on someone else’s node. In exchange for locking the value of their tokens to a validator node, the delegator earns a percentage of the block rewards earned by that validator.
A diff is the difference in changes between two commits, or saved changes. The diff will visually describe what was added or removed from a file since its last commit.
A consensus mechanism built on the principles of Proof-of-Stake (PoS) in which stakeholders may nominate block producers. DPoS is useful for pooling stakes, allowing many small-value accounts to meaningfully participate by collectively appointing the same block producer.
A fork is a personal copy of another user's repository that lives on your account. Forks allow you to freely make changes to a project without affecting the original upstream repository. You can also open a pull request in the upstream repository and keep your fork synced with the latest changes since both repositories are still connected.
The blockchain is composed of blocks. The first block of that said blockchain is known as genesis block. It is numbered 0. It is also hardcoded so that no changes can be made once it is released.
Git is a free, open-source distributed version control system tool designed to track changes in computer files and coordinate work on those files among multiple people with speed and efficiency. It is primarily used for source code management in software development, but it can be used to keep track of changes in any set of files.
git pull is a git command used to update the local version of a repository from a remote. It is one of the four commands that prompts network interaction by Git. git fetch updates remote tracking branches. git merge updates the current branch with the corresponding remote tracking branch. Using git pull, you get both parts of these updates.
git push is the git command used to upload the contents of a local repository to the corresponding remote repository. git push updates the remote branch with local commits. It is one of the four commands in Git that prompts interaction with the remote repository.
A hard fork occurs when there is a change in the blockchain that is not backward compatible (not compatible with older versions), thus requiring all participants to upgrade to the new version in order to be able to continue participating on the network.
A function that takes an input, and then outputs an alphanumeric string known as the “hash value” or “digital fingerprint.” Each block in the blockchain contains the hash value that validated the transaction before it followed by its own hash value. Hashes confirm transactions on the blockchain.
The inability to be altered or changed over time. A key element of blockchain networks, once written onto a blockchain ledger, data cannot be altered. This immutability provides the basis for commerce and trade to take place on blockchain networks.
An organization's private copy of Gitopia contained within a virtual machine that they configure and control.
Issues are suggested improvements, tasks or questions related to the repository. Issues can be created by anyone (for public repositories), and are moderated by repository collaborators. Each issue contains its own discussion thread. You can also categorize an issue with labels and assign it to someone.
Lazy loading is a technique of delaying the initialization or loading of an object or resource until the point it’s actually needed. Lazy loading is a common programming implementation strategy and can improve space-constrained environments, such as mobile apps and web applications. It’s also beneficial for conserving bandwidth by delivering content to users only if it’s requested.
A document that you can include with your project to let people know what they can and can't do with your source code.
The default development branch. Whenever you create a Git repository, a branch named main is created, and becomes the active branch. In most cases, this contains the local development, though that is purely by convention and is not required.
Technically, Mainnet can be defined as the blockchain that provides users the ability to send and receive digital currency. It brings the transaction functionality to the users. Moreover, it is different from testnet. Testnet only simulates the desired functionality. In other words, we can say that Mainnet is actual end product ready for real-world use.
Maintainers are the people responsible for maintaining an open-source project. They direct the orchestra of developers and reviewers, making sure that they perform their tasks properly.
Markdown is an incredibly simple semantic file format, not too dissimilar from .doc, .rtf and .txt. Markdown makes it easy for even those without a web-publishing background to write prose (including with links, lists, bullets, etc.) and have it displayed like a website.
The default branch in many Git repositories. By default, when you create a new Git repository on the command line, a branch called master is created. Many tools now use an alternative name for the default branch. For example, when you create a new repository on GitHub, the default branch is called main.
Similar to the concept of a family tree, where a parent branch splits into children branches, which then extrapolated into grandchildren branches. A merkle tree is a data structure in which a single hash code function(cryptographic code) splits into smaller branches. This type of data structure enables for faster verification on a blockchain network.
A way to track the progress on groups of issues or pull requests in a repository.
The process by which “blocks” or transactions are verified and added to a blockchain. In order to verify a block a miner must use a computer to solve a cryptographic problem. Once the computer has solved the problem, the block is considered “mined” or verified. In the Bitcoin or Ethereum blockchain, the first computer to mine or verify the block receives bitcoin or ether, respectively.
A new copy of a repository.
Mnemonic phrase, mnemonic seed, or seed phrase are defined as a secret group of words that represent a wallet. When used in sequence they allow access to the cryptocurrencies stored within.
NFT stands for Non-Fungible Token. As from the name itself, it is not fungible. This means that the token cannot be replaced and hence is useful for unique scenarios. NFT are distinguishable and are not interchangeable to other tokens.
Any computer connected to the blockchain network is referred to as a node. Node is a participant in a blockchain network that is connected to peers and is capable of validating and propagating new blocks. A full node is a computer that can fully validate transactions and download the entire data of a specific blockchain. In contrast a “lightweight” or “light” node does not download all pieces of a blockchain’s data and uses a different validation process.
Open source software is software that can be freely used, modified, and shared (in both modified and unmodified form) by anyone. Today the concept of ""open source"" is often extended beyond software, to represent a philosophy of collaboration in which working materials are made available online for anyone to fork, modify, discuss, and contribute to.
Services that connect real-world data with blockchain applications. Oracles are necessary to provide input that cannot be independently verified, such as temperature measurements. Oracles typically rely on the security of a trusted source rather than the security of trustlessness.
Organizations are shared accounts where groups of people can collaborate across many projects at once. Organizations simplify the management of group-owned repositories and help plan the workflows for business and large open-source projects with a proper hierarchical model.
Organization members that have complete administrative access to the organization.
Packfiles are, in essence, multiple git objects stored as a single compressed file. You can think of packfiles akin to a ZIP file of multiple objects, which git can extract efficiently when needed. Git VCS can store entire repository's objects into a single packfile, thus eliminating large number of small files and helping in efficient storage and transport.
Proof-of-Stake(PoS) is a popular consensus algorithm. The nodes in a PoS powered blockchain stake coins. The more coins are staked, the higher chances that the node will be picked for making the consensus decision. This requires little to no energy to power.
Proof-of-Work(PoW) is a popular consensus algorithm used in blockchain network. For example, Bitcoin uses it. PoW works by assigning a block to the miners and then waiting for the computational puzzle to be solved by them. It requires computational power to do so. If succeeded, the miner is rewarded in the blockchain’s token or coin value. PoW is not efficient and requires a lot of power consumption. This also makes it not nature-friendly.
The concept of private and public key is used to ensure that transactions made on blockchain are secure. A private key is used to encrypt and decrypt the messages sent from one user to another. Private keys in cryptocurrency are also used to access wallet and initiate a transaction on the blockchain. As a user, you should never tell anyone your private key and should always keep it in a safe and secure place. One part of a public/private key pair used for asymmetric encryption and decryption.
A proposal is a document that offers a solution to a problem or a course of action in response to a need. When a community-driven project requires improvement, features, or upgrades to the project, members of that community will propose those changes for a vote. Ideally, changes are only made to the network after the proposal is passed.
Obtained and used by anyone to encrypt messages before they are sent to a known recipient with a matching private key for decryption. By pairing a public key with a private key, transactions not dependent on trusting involved parties or intermediaries are possible. The public key encrypts a message into an unreadable format and the corresponding private key makes it readable again for the intended party. A cryptographic equation or set of parameters that corresponds to a paired private key. A public key can be used to decrypt a message that is symmetrically encrypted using the corresponding private key.
Pull requests are proposed changes to a repository submitted by a user and accepted or rejected by a repository's collaborators. Like issues, pull requests each have their own discussion forum.
A text file containing information about the files in a repository that is typically the first file a visitor to your repository will see. A README file, along with a repository license, contribution guidelines, and a code of conduct, helps you share expectations and manage contributions to your project.
When starting to use your Gitopia wallet, you will receive a random set of 24 words. This is also known as your Recovery Phrase. This 24-word Recovery Phrase is very important. It is the master private key that will allow you to access your assets inside the Gitopia wallet. It must be kept secure and offline at all times.
Gitopia's way of packaging and providing software to your users.
This is the version of a repository or branch that is hosted on a server. Remote versions can be connected to local clones so that changes can be synced.
Repositories are easiest to imagine as a project's folder. A repository contains all of the project files (including documentation), and stores each file's revision history.
SHA-256 is a cryptographic algorithm that that is used in Bitcoin and other popular cryptocurrencies. It is designed by U.S National Security Agency(NSA) and offers security to different operations within a blockchain. It is one step ahead of the popular SHA-2(Secure Hashing Algorithm 2). Apart from securing transaction, it is also used to generate public addresses and private keys. SHA-256 is also the cryptographic algorithm that miners have to solve to get block reward.
Slashing is a mechanism built into proof of stake blockchain protocols to discourage validator misbehavior. Slashing is designed to incentivize node security, availability, and network participation. The two key misbehaviors that incur slashing are downtime and double signing.
Smart contract acts as legal tender on blockchain that is completely automated through code. This means that it follows a specific rule that is pre-defined by its creator which cannot be changed or altered. It is generally used for automating tasks such as fund transfers, verifications, and so on. It is also known as “smart legal contract” and “crypto contract” or “smart contract code.”
A checkpoint of a virtual machine at a point in time.
Staking is the process of actively participating in transaction validation (similar to mining) on a proof-of-stake (PoS) blockchain. On these blockchains, anyone with a minimum-required balance of a specific cryptocurrency can validate transactions and earn Staking rewards.
It is a model of computation. At any moment, a state machine has precisely one of a finite set of states. Changing to a new state requires transforming it through a state transition function. Blockchains are state machines because each block represents a change to the state, and transactions represent state transition functions.
A trusted execution environment is a protected area on the hardware where code can be run securely and in isolation. Code running inside the environment should not be able to be viewed or modified, even if an attacker can run malicious code with full permissions on the same processor.
Tendermint is a general-purpose Replicated State Machine (RSM), that guarantees Byzantine-fault tolerant properties for any distributed ledger technology (DLT) or blockchain application running consensus with it. In practice, it enables developers to build blockchains without having to build everything from scratch.
Testnet is blockchain network created especially by blockchain developers to test the changes done within it. This way the developers don’t have to spend resources to carry out the tests and also don’t have to affect the workings of the main blockchain.
Token or Crypto token is just another synonym for cryptocurrencies or altcoins. However, they are all different. Crypto token is a subset of cryptocurrency(superset). They act as an asset or utility and reside on their own blockchain. For example, EOS, Ripple, etc. are tokens. Tokens also have real-world usage. For example, a video publishing website can use tokens to grant viewers time. There are two types of tokens that you can find: Utility token and Security Token.
A singular input into a blockchain that affects some change in the blockchain’s data. Depending on the blockchain’s implementation, transactions can transfer cryptocurrencies, create log events, or execute smart contract functions.
A small fee imposed on some transactions sent across a blockchain network. The transaction fee is awarded to the miner that successfully hashes the block containing the relevant transaction.
A participant in Proof of Stake consensus. Validators need to submit a security deposit in order to get included in the validator set.
Version Control System(VCS)
Version control keeps a historically accurate and retrievable log of a file's revisions. More importantly, version control systems help several people (even in geographically disparate locations) to collaborate on a project simultaneously, without overwriting each other's work.
Cryptocurrency wallet is a place where a user can store their private keys. A wallet can either be software or hardware. A user can use the wallet to store, send, or receive cryptocurrency assets. It also stores the transactions that are done using the wallet where users can view the transaction history whenever they want.
Wallet Name in Gitopia Wallet is the ID used to uniquely identify a wallet from all the local wallets stored in a user's browser.
Wallet password is used to encrypt the wallet in a user's browser. The user will need this password to unlock the wallet when they resume their session on Gitopia.