Announcing Neblio Improvement Proposals & Neblio Block Voting!

Neblio
Neblio Blog
Published in
7 min readNov 16, 2021

Any staker can shape the Neblio Network by submitting and voting on proposals

We’re excited to announce two new and related features for the Neblio Network: Neblio Improvement Proposals (NIPs) and Neblio Block Voting. NIPs allow any user of the Neblio Network to submit proposals that will directly shape the roadmap and features of Neblio. Once put up for a vote, Neblio Block Voting allows NEBL stakers to vote for or against a proposal. Proposals that are approved by stakers will directly shape the roadmap of Neblio. These 2 upgrades put stakers in direct control over the future direction of Neblio, keep reading to see how it all works!

Neblio Improvement Proposals (NIPs)

NIPs can be submitted by any user of the Neblio Network here on GitHub. Users will be asked to submit a Name to describe their proposal, along with a detailed Description of their proposal and any additional information they would like to include, such as preferences for the voting period and so on. Proposals are not just limited to Neblio Core, but any software or service related to Neblio can have proposals submitted such as API changes, protocol proposals, and more.

Once a proposal has been submitted on GitHub, it will be assigned a NIP ID (such as NIP73) and discussion will begin on GitHub about the proposal. Our stance is to approve proposals by default unless they are outlandish, impossible, or the proposal format is not followed. Discussion and feedback will continue until it is agreed the proposal is ready for voting. Once the proposal is ready, it will be assigned a range of blocks during which the vote will be active. We recommend votes last for a minimum of 14,400 blocks, or approximately 5 days, but votes can last much longer if the submitter desires. Once a proposal is ready and scheduled, it will show up on the Neblio Block Explorer with all of the voting details and proposal information.

NIP1 Voting on Testnet https://testnet-explorer.nebl.io/voting

Now comes the fun part, voting! It is up to the submitter to generate support for their proposal and encourage stakers to vote for it. Let’s learn how to vote!

Neblio Block Voting

Once a NIP is scheduled for voting, it will automatically be shown on the Neblio Block Explorer as an Upcoming Vote. Users will be able to see the block height at which voting starts, the block height voting ends, the Name and Description of the NIP, as well as a link to the original proposal, all on one convenient page. Once voting for a proposal begins it will move to the Active Votes section of the page and then finally to the Completed Votes section once complete.

It’s important to note that block voting requires a minimum level of participation from stakers. Currently, this is set at 20% minimum participation. This means that a vote lasting for 20,000 blocks will need a minimum of 4,000 votes and at least 50% of those voting ‘Yea’ to be successful. For example, for a vote lasting 20,000 blocks, if there are only 3,500 blocks with votes during that period, the vote failed. If there are over 4,000 blocks with votes, but more than 50% of those votes voted ‘Nay’, the vote failed.

Let’s walk through a voting example. NIP1 was set up on Testnet for developing and testing this feature. NIP1’s voting range is from block 2,975,988 to 3,400,000, giving us 424,012 blocks to vote Yea/Nay on NIP1. Based on the 20% minimum participation rule, 84,803 votes during this period are needed for a successful vote (17,318 votes so far, as of this writing, follow along on the testnet explorer). Once the minimum number of votes is achieved, a simple majority is needed to approve or deny the proposal!

Once a staker finds a proposal they would like to vote for, it’s time to tell your Neblio Wallet (neblio-Qt or nebliod) to vote Yea (vote for) or Nay (vote against). Like most Neblio Features, we’ve made this as simple as possible! Let’s stick with NIP1 on Testnet for an example. Let’s assume we really like NIP1 and would like to see it implemented, so we tell our wallet to vote ‘Yea’ on NIP1 for every block it stakes.

  1. On Neblio Core v3.4.0 or higher, click Settings > Manage Votes
  2. Enter the Proposal ID (without ‘NIP’) for the proposal you would like to vote on. In our case, 1 for NIP1
  3. Enter your vote value. Enter 1 or 0 here.
    1 = Yea (vote for).
    0 = Nay (vote against).
    In our case we want to vote for NIP1, so we enter 1 for Yea
  4. Enter the start and end vote heights. These numbers normally will, but do not have to match the proposal block range, as they simply tell your wallet which blocks to attach the vote on. If you only want to vote for NIP1 for a period of 100 blocks, you can do that. Most users will want to vote for a proposal for the full range, however.
  5. Click ‘+’ to lock in your voting preferences. You can add as many voting instructions here as you like, as long as their ranges do not overlap. For example, you could go ahead and enter your voting preferences in advance in your wallet for Upcoming Votes that are not active yet.
  6. That’s it! Your wallet will now attach the vote specified to all blocks it stakes in the range you indicated.

nebliod users can vote and list their current voting preferences with the following new RPC commands:

castvote <start-block-height> <last-block-height> <proposal-id> <vote-value>listvotes

Some things to keep in mind while voting:

  • 1 block = 1 vote
  • You can only vote for 1 proposal per staked block.
  • Votes outside of the proposal’s voting range or with invalid values (not 0 or 1, currently) will be ignored.
  • For cold staking, the staking wallet gets to pick what to vote for. Make sure you are cold staking with a service that votes how you would!

The Neblio Block Explorer shows a full history of all votes on the network. At the Address level, the block explorer will show the full history of all votes made by that address for all NIPs. The explorer will also show if blocks include a vote, and if so, the vote details, allowing for the full ability to trustlessly audit votes if necessary.

Vote Details at the Block Level
Vote History at the Address Level

After The Vote

Now that we know how to submit a proposal, and how to vote, what happens once voting for a proposal is complete?

If the vote is successful: So we achieved at least 20% participation and at least 50% of the votes were ‘Yea’ (voted for), Great! The proposal will now be added to the Neblio Roadmap! Based on the details of the proposal, it could either be implemented by the Neblio Team or by 3rd party developers. Proposals that are outside of our Team’s areas of expertise, or are too costly for us to implement, will be given Help Wanted and/or Funding Needed tags on the roadmap. These proposals will need to be implemented by developers outside of the Neblio Core Team and may include bounty programs to encourage that development.

If the vote fails: If a proposal does not meet the minimum participation requirements, or receives a majority voting ‘Nay’ (vote against), then the vote has failed. Failed proposals can either be abandoned, or modified and resubmitted as a new proposal. New proposals will get a new Proposal ID and will require a new round of discussion and scheduling. Note: Do not resubmit a failed proposal without making significant changes. Try to determine why your proposal failed and make changes to hopefully ensure its success on the next voting round.

We hope you are as excited about Neblio Improvement Proposals and Neblio Block Voting as we are!

With these upgrades NEBL is now:

  • A utility coin: NEBL is needed to pay for gas fees for any interaction or transacting on the Neblio Platform.
  • A staking coin: Stakers earn block rewards when they stake NEBL to generate new blocks on the blockchain.
  • A governance coin (NEW): Stakers vote on protocol and platform proposals by staking NEBL. The more NEBL you are staking, the more votes you can cast to govern and shape the future of Neblio!

Voting will be live immediately upon release of Neblio Core v3.4.0 (coming soon!) and you can begin submitting proposals for discussion by following the directions here: https://github.com/NeblioTeam/Neblio-Improvement-Proposals

We can’t wait to see what type of interesting and innovative proposals our community, partners, and 3rd party developers come up with. Happy proposing and happy voting!

About Neblio

Neblio is an Enterprise Blockchain Platform focussed on simplifying blockchain technology for business. Neblio’s lightning fast & scalable blockchain, APIs, NTP1 Token Protocol, and unique services offerings allow clients to easily and quickly utilize blockchain and distributed ledger technology to radically improve efficiency, reduce go-to-market time, and dominate their competition.

Learn about Neblio at the Neblio website or join the community on Discord, Telegram, and Twitter.

--

--