PEP-18: Node Launcher (and Node Pilot continued)

Attributes

Author(s): Shane Burgett
Recipient(s): Shane and Ryan Burgett
Category: Reimbursement
Fulfills: RFP-7: Node Deployment Tools
Asking Amount: 192k POKT

(Our major November release introducing Node Launcher)

Summary

The Node Pilot project is now almost one and a half years old and has been used to deploy hundreds of nodes and with 150+ mainnet POKT validators while in beta. Not only has development continued, but has led to the development of a powerful, open-source, node deployment engine called Node Launcher. While our April proposal reimbursed this project for much of the cost for the prior 7 months of development, we now want to introduce Node Launcher and ask for continued support to fund these free resources.

Background

Shane Burgett and Ryan Burgett started developing Node Pilot shortly after POKT mainnet launched in August 2020. Shane has been a full-time contributor to the Pocket ecosystem since 2019, first working in areas of business development and customer support and is now focused on Node Pilot and community support. Ryan is a full-stack crypto application developer with years of experience in the areas of wallets, interoperability platforms, mining, and node deployment.

Motivation/Rationale

Node Pilot has been a direct response to RFP-7: Node Deployment Tools, and we are now hitting a new phase of the project. After publicly launching the Node Pilot Beta back in April, we quickly realized scaling to more chains was going to create a lot of technical debt. At the time we were hard-coding docker files into Node Pilot and we knew we were going to need a better way to standardize how nodes can be deployed and updated. So instead of managing repositories of docker files (like DappNode and Avado do), we set out to build a programmatic platform that would act as a standardized toolkit developers could use to create other node deployment applications.

This resulted in the creation of Node Launcher, a node deployment engine written in TypeScript that enables the easy creation of node deployment applications. With a few lines of JavaScript, an application can deploy and manage Docker based nodes and validators. This mitigates the need for CLI, bash scripts, or wrestling docker config files, as developers can programmatically build full stack blockchain applications, similar to Node Pilot, using only JavaScript.

Notable core features include:

  • Seamless updating
  • Upgrading nodes to validators
  • Unit/integration test suite
  • Flexible API for enabling more features in the future.

Node Launcher has now been used by independent node runners to deploy hundreds of chain nodes via Node Pilot. To showcase Node Launcher’s abilities to be used for other applications, we have created an open-source demonstration app built with only Electron and Node Launcher. It is a simple Geth node launcher that was built in a few hours and shows how an application is able to launch and manage docker containers with only JavaScript via Node Launcher’s APIs.

Our desire is to grow this library to be an approachable tool for creating a new category of node deployment/management applications. Developers can create their own multi-chain, multi-shard, multi-client, multi-network deployment applications in a standardized and open way that can stay up-to-date with the latest client software.

Just like how Ethers.js made Ethereum application development more approachable to developers, Node Launcher can make node deployment just as approachable.

It can easily be used for applications ranging from user-facing applications (e.g. full-node wallets) to server applications (e.g. web3 backends) all the way to large software-controlled enterprise deployments. It is also extremely useful as a prototyping tool for developers who need local nodes during application development.

Objective(s)

  1. Reimburse for the past 7 months of development
  2. Setup Node Pilot and Node Launcher with 7 months of budget runway

Objective Key Results

Node Launcher:

  • Enable Node Launcher to be a universally approachable toolkit for node deployment applications.
  • Provide clear documentation on usage and APIs to allow other projects to build upon.
  • Ensure seamless updating with the latest client versions.
  • Finalize and standardize the validator node API.
  • Automated testing to provide protection against potential breaking updates, via an automated test suite.

FUN FACT: Node Launcher’s test suite is what identified the RPC version discrepancy in Pocket’s 0.7.0 release.

Node Pilot:

  • Continue expanding Node Pilot features now that the Node Launcher engine is built and integrated.
  • Lean more into features that empower Pocket Valiators with more control and performance insights.
  • Launch Node Pilot v1 in Q1 2022. This will take Node Pilot officially out of beta and be encouraged for production use.
    • We are planning to launch with other chains integrations, including Pocket partners Fuse and Harmony. This expands the launch’s marketing reach and opens the door to more cross-community pollination.

Community Support:

  • Continue providing consistent and timely support to new node runners.
    • The Node Pilot Discord server fields the most questions from new node runners. The support Ryan and Shane provide has helped countless folks get their nodes running, since the launch of Node Pilot in April.
  • Appropriate feedback from the community on features to add.
    • Many Node Pilot updates in the past 7 months have focused on feedback we have received from the community. With Node Launcher coming close to completion, we hope to increase the speed to which we can add features from the community.

Needs Being Met

Node Launcher provides an expandable toolkit solution to RFP-7: Node Deployment Tools by enabling applications to be built deployment apps with simple APIs. See our Ethereum demonstration app.

Node Pilot continues growing in adoption and enables node runners to deploy self-hosted nodes.

Dissenting Opinions

No known dissenting opinions on Node Pilot or building Node Launcher. Node Pilot progresses reports have been given in 3 past community calls (since the original proposal), and Node Launcher was first presented in full to the Pocket Community in the June community call.

Deliverable(s)

  • Complete Node Launcher development (80%):
    • Completed:
      • Node deployment APIs
      • Node updating APIs
      • Basic control command APIs (easily expandable)
        • Start
        • Stop
        • Status
        • Version
        • Block height
    • In progress:
      • Validator deployment APIs
      • Node Launcher update API
      • Persistent containers (containers can persist even after Node Launcher is closed)
  • Create Node Launcher documentation (10%)
  • Complete Node Pilot v1 (85%)
    • Completed:
      • Node Launcher integration
      • Daemon functionality
      • System Debug Tool
      • Terminal commands and flags
      • Extensive logging
      • Auto Backups for configs
    • In progress features = Node Launcher in progress features
  • Complete Node Pilot Documentation (~100%)
    • Node Pilot has living documentation that is constantly being updated to include new features and relevant information.
  • Launch Node Pilot v1 campaign (40%)
    • Cross-community partnerships (Fuse and Harmony thus far and more are in the works)
    • Walk-through videos

Budget

In the past 7 months, development and time invested has increased substantially since our initial reimbursement proposal last April. Between Ryan and Shane, 580+ hours have been put into these projects the past 7 months, including nearly 400 development hours. This reimbursement would cover time and and resources invested into:

  • Development
  • User Resources
  • Testing
  • Community Support

Instead of asking for a budget prior to showing work, we opted to develop first, prove the value of the software and tooling, and then ask the community and DAO to gauge if it’s worthy of reimbursement as a free tool for the community. This approach has been encouraged by the community and follows our April proposal.

Reimbursement budget: 124,000 POKT (similar value to our previous 7 month proposal)

Development has increased significantly since April, and a runway budget would enable momentum to continue uninterrupted. We are in the process of diversifying our funding by doing integrations with other chains like Fuse and Harmony. This will enable Node Pilot and Node Launcher to be cross-community projects and spread the funding burden.

Because of this, we are asking for a 50% runway to set us up for the next 7 months. We plan to make up the other 50% from the other project integrations. There is a good chance we will need to scale our team in 2022 and a runway would help make that a possibility.

Runway Budget: 68,000 POKT


Total Budget: 192,000 POKT


Development Goals Beyond This Proposal

  • Multi-chain Validation
  • Node Pooling
  • Mobile application (iOS & Android)
  • Notifications
  • Fleets (enterprise-ready API platform for multi-instance orchestrations)

Contributor(s)

Shane Burgett - Long time contributor with a background in business development, marketing, design, and media production.

Ryan Burgett - Full-stack Web3 application developer with 4+ years of experience in the areas of wallets, interoperability platforms, mining, and node deployment.

Copyright

Copyright and related rights waived via CC0.

5 Likes

Node Pilot allowed me to start validating Pokt Network. I’ve run nodes before and I was impressed on how seamlessly it is to do it with node pilot, plus all the benefits they have been taking care of like: node updates, new functionality upgrades, new chains, security, better use of resources, etc.
Also, Shane and Ryan have been doing amazing work responding to anybody in discord and helping them start running nodes.
Looking forward to new milestones of node pilot and keep supporting Pokt Network :rocket:
Thank you guys @shane @AmishBatman

2 Likes

Please, we (the people) need Node Pilot to be successful!!! For us, average non It people, it is crucial to have a Web3 solution like Node Pilot that allowes us to participate in Web 3 projects like Pocket Netwrok. Me and my friends are not able to utilize Pocket as it is right now, we don’t have the coding skills / IT background to do so. I think Pocket needs a user friendly (simple to install and use) solution like Node Pilot to reach mass adoption. The more Nodes are deployed the faster and more secure Web 3 will evolve. With Node Pilot Pocket can become a major force in disrupting the centralized Web 2. Even though I have zero coding or It experience I was able to successfully install Node Pilot. Now I am a part of Web 3 and will advise all my friends to follow my / your lead. A couple of weeks ago I barely knew what web 3 is. This is all due to Node Pilot based on Pocket Network. I am truly grate full for this experience and looking forward to continue my journey on Pocket Network via Node Pilot. Kind regards “Marsvikings#5090”

2 Likes

I think guys are doing an incredible job with Node Pilot and I would like to fully support this reimbursement proposal

2 Likes

Node pilot helped me set up pocket nodes in 1 day eliminating my dependency on third party node providers and saving me time and cost, I am truly thankful for this product.

I would just like node-pilot to be fully open source, including the UI so we community members can also contribute and take some load off of the main team.

2 Likes

I’ve worked with @shane for some time and I fully support this proposal. Node Pilot is already paying dividends for the community and is likely to be a key piece of infrastructure for those looking to run nodes without relying on third-parties. I’m looking forward to see how this progresses.

2 Likes

I support this proposal without reservation.

NodePilot and the underlying NodeLauncher engine are a valuable addition to the ecosystem.

2 Likes

100% support this proposal! Great job, folks!

2 Likes

Nothing but support here. Node Pilot eased my onboarding as a node runner immensely. I’m sure with everything coming down the pipe it’s only going to get better and continue to enrich the network.

2 Likes

I was able to setup 2 POKT validators in no time using Node Pilot, the process is very simple and straight forward when you follow the Node Pilot setup documents. Appreciate the hard work of Node Pilot team and looking forward to much more enhancements to Node Pilot in the coming months.

2 Likes

I am a man of few words and node-pilot is a platform of fewer clicks. Someone brought Pocket Network to my attention. After two weeks of research I was able to deploy a single node on AWS. After discovering NP, in a quarter of that time, I was able to deploy multiple instances of the software including pokt nodes and various chains. It’s just a thing of beauty. Kudos to the whole team for their hard work and contribution to decentralization. We look forward to more integrations including harmony. Keep up the good work :+1:

2 Likes

Node pilot has taught me a lot about Pocket and has given me a hands-on, technical on-ramp to how pocket works. Because of them and their willingness to assist, I got my first self-hosted node up and running.

1 Like

Node Pilot makes our life so easy for setting up the nodes, managing nodes and chains. Being very new to Node Running, NP helped me to learn so many things. Hats off to NP team and I highly support the proposal.

1 Like

NodePilot plays an important part in decentralizing POKT further. Chain nodes are notoriously hard to run, add multiple nodes to the mix plus one or more POKT validator nodes and the task becomes quickly out of reach for most but the most technically competent. NP allowed me to participate in the growth of network with relative ease. I fully support funding them to continue developing NP.

1 Like

This proposal passed! https://cloudflare-ipfs.com/ipfs/QmVBnhYREr8sF8jkpsH6Jt8ojAqae4AEpcnUiwSshoaDrs