Peerplays Developer
This page helps in learning about the developer workflow.
Introduction
This document focus on providing the concepts, workflow, basic process for a newly onboarded developer. The detailed description of each categories are summarized in a single page to provide easy navigation and access to the desired topic.
The workflow guides the developer to learn the process followed by the team. The workflow mainly focus on ticket creation and progress involved in the life cycle of any issue. The various stages of a ticket under the labels can be categorized as accepted, in-progress, in-review, blocked, on-hold, testing, completed. As the work progress, the labels has to be modified based on ticket completion. Click the heading to learn in detail about the development workflow.
Basic requirements
As a newbie, there are certain concepts that are significant in starting as a developer in Peerplays. To begin with, there are three major notion that to be grasped to build any project under Peerplays. The list of three concepts are,
Setup a Local Testnet
Deploy a project with docker
Clone and build a project
1. Setup a Local Testnet
What is a Testnet?
A test blockchain used by developer to experiment with new ideas without disturbing or breaking the main software.
The local testnet is a private testnet used for troubleshooting network issue, experimenting new ideas, or developing new dApp on a chain with complete access and control over the testnet. The testnet can be customized based on the user's requirement to perform any desired operation. To begin as part of development team, build a private testnet is the first phase to learn, experiment and explore the various features of Peerplays.
Click the above link to learn the detailed instructions involved in installing a private testnet. The glimpse of steps are highlighted in the below section.
Check for the hardware requirements and install required software.
Install library for common development tasks. In Peerplays, Boost is used as a comprehensive C++ library to begin with any task.
Install Peerplays
Generate a Genesis config file and edit the file with necessary changes to complete the testnet setup
Run the witness_node
Run the cli_wallet
Setup a second node
2. Deploy a project with Docker
To set-up a SON and witness node a pre-configured Docker container is necessary.
A. SONs - Sidechain Operator Nodes
Sidechain Operator Nodes - SONs facilitate the transfer of off-chain assets (like Bitcoin, Hive, or Ethereum tokens) between the Peerplays chain and the asset's native chain. These nodes often run the Peerplays node software and node software of other chains.
New to SONs ?? Click here to learn in detail.
SONs - Docker Installation
This details are provided based on the assumption that, your system is running with Ubuntu 18.04 and above.
Click above link to learn each installation steps in detail. The steps involved in docker installation is outlined below.
Update
config.ini
with SON Account InfoUsing the CLI wallet
Starting the environment
Installing the
peerplays:son
imageThe Bitcoin node
Installing Docker
Preparing the Environment
B. Witness Node - Docker Installation
A witness node runs on the Peerplays blockchain. In a Peerplays way, enter a consensus mechanism called Delegated Proof of Stake (DPOS).
Think of Delegated Proof of Stake as technological democracy; the opportunity for any PPY token holder to vote on who creates new blocks in the Peerplays blockchain; we call these block producers Witnesses, and they keep the blockchain alive.
Witnesses also have the authority to approve, or reject, any changes to the blockchain software. Their actions have an overarching impact on all PPY token holders.
New to witness?? Click here to learn in detail.
Click above link to learn the witness node docker installation in details. The outline of installation steps are listed below.
Start the Container and Vote for Yourself
Update
config.ini
with Witness Account InfoCreate a Peerplays Account
Update the
config.ini
FileStarting the Container
Installing the Peerplays image
Installing Docker
Preparing the Environment
3. Clone and build a project
Cloning and forking are the two mechanism that can be opted to use the files without interrupting the main repository by making a copy of the file.
A. Project Forking workflow
When the user has no write access for any repository, then create a fork to make a personal copy of the required repository and all of its branches in a desired namespace.
The user can make changes in their own fork and submit the changes through a merge request to reflect them in repository.
Steps to create fork for an existing project in GitLab
1. Select Fork on the right of project's name.
2. For Project URL, select namespace for the fork created
3. Add a Project slug. This value becomes part of the URL to the fork. It must be unique in the namespace.
4. Select the Visibility level for the fork. For more information about visibility levels, read Project and group visibility.
6. Select Fork project.
GitLab creates the fork and redirects to the new fork's page.
The other forking activities are,
B. How to clone git project with Visual Studio Code ?
Cloning a project is making a copy of the files in the repository to work on the code locally and later update the changes into the original repository.
Open Visual Studio Code, Go to Top Menu -> Files -> Open Folder.
Select the folder you would like to download the cloned project.
Go to Top Menu -> View -> Integrated Terminal.
4. Execute 'git clone' command with the repository path to clone in the integrated terminal.
5. If credentials are required to login, then the integrated terminal will prompt for Username and Password.
6. The complete output will be similar to the below example,
7. The cloned files will be available in the local folder
Click below link to learn about working with GitHub in VS code https://code.visualstudio.com/docs/sourcecontrol/github
Development FAQs
The basic questions such as
How to generate bitcoin address?
How to get Test BTC?
How to generate public key for a bitcoin address?
and so on.,
Click the below link to find the answers,
https://devs.peerplays.com/supporting-and-reference-docs/peerplays-development-faqs
Related Documents
Last updated