Proposal to Adopt a New Parliamentary Procedure for the Use of NNS Motion Proposals as Non-Binding Resolutions for Replica Review Reports

PROPOSAL

Adopt a New Parliamentary Procedure for the Use of NNS Motion Proposals as Non-Binding Resolutions for Replica Review Reports

TL;DR

DFINITY will typically create a forum topic to announce that voting is open for a new IC release (typically on Fridays) and reviewers who participate with the CodeGov project always complete reviews 2 days later (typically by Sunday). A summary of our findings is typically posted in a comment to this forum topic along with links to our CodeGov portal on DSCVR where individual reviews can be found. To reach the larger audience of the NNS and with hopes of advancing decentralization, I respectfully request that the community consider this proposal for the NNS to adopt a new parliamentary procedure to acknowledge non-binding resolutions, in the form of Motion proposals, for these replica review reports.

The use of Motion proposals in this way would be a new practice that has not been proposed or adopted so far in our system of NNS governance. Hence, I am interested in knowing if the NNS would support this use case before submitting a formal Replica Review Report. I would not want to submit these replica review reports knowing that they will be routinely rejected. My hope is that they would be acknowledged by way of approval of the Motion proposal, with the understanding that the approval is non-binding. I look forward to learning what you think during the deliberation on this topic. If it seems favorable, then I will ask the full NNS for a decision on the idea.

INTRODUCTION

There has been a lot of discussion recently on the forum and on social media about mechanisms that can help advance decentralization of the Internet Computer Protocol. My own opinion has evolved, and I no longer believe that Periodic Confirmation of Neuron Followees (or any sort of reset of default following) will achieve that goal by itself. We need people and organizations to step up to participate in voting on technical topics. That has not happened in significant ways yet, so my hope is the community will consider mechanisms to solve that problem.

Decentralization cannot continue advancing in a meaningful way until there are Followee choices of people and organizations who vote independently on topics other than “Governance” and “SNS & Neuron Fund”. Otherwise, DFINITY will always be labeled as the centralized holder of voting power and the voting history trend of every technical proposal will continue to look like proof (0to100%). However, the reason the network nervous system (NNS) exists is to enable decentralized decisions on what code changes are allowed to be implemented. ICP is still a young blockchain and it makes sense that the founding organization, DFINITY Foundation, has most of the development skill and voting power to implement changes. They accel at ensuring complete, reliable, well tested, and secure changes are proposed. However, if the goal is decentralization, then people and organizations that have a stake in ICP need to start getting more involved at the protocol level. A good place to start is performing the IC-OS Verification as well as sanity checks on the Release Notes of Replica Version Management proposals and then voting on these proposals independently.

BACKGROUND

Motion proposal 80639 passed on Sept 2022 and was implemented a couple months later. It was an idea from DFINITY for how the community can help advance decentralization on the Replica Version Management proposal topic. Everyone can participate and DFINITY makes it feasible because of how they present every Replica Version Management proposal (recent example).

One observation I have made when talking to developers about reviewing and voting on these proposal topics is the common assumption that it should involve deep dive code audits by highly skilled rust developers. I do not believe that should be the goal at this time. Perhaps community organizations will develop that capability over time, but for now we just need to draw attention to the code changes. DFINITY has amazing resources who are the experts on the development of this protocol. The role of the community at this time should be to pay attention to the changes and make sure the changes seem reasonable. With enough developers performing this type of work, new skills and capabilities should evolve within the community. There are examples already of the community identifying mistakes and DFINITY correcting them before the changes are implemented.

For every Replica Version Management proposal that is submitted to the NNS by DFINITY, they organize information in two ways: 1) IC-OS Verification and 2) Release Notes. They provide a script anyone can run that enables us to build the replica, download the replica, compute the hash of the build and the download, and compare those hashes with the hash posted in the proposal payload. We just need people who are willing to perform this work and to vote independently if everything checks out in order to achieve decentralization on this proposal topic.

The fact that DFINITY provides the Release Notes means that anyone who is already building the replica may also choose to review the changes and perform a sanity check to see if there is anything unexpected. In other words, having more people of all skill levels participate in these reviews results in #MoreEyesOnCode. It’s not about checking DFINITY’s work (although all code changes are fully outlined and anyone can audit as deep as they want in their review). It’s just about making sure there is nothing surprising and having time to raise concerns as a community if anything comes up.

The CodeGov neuron has already found several instances where there were inconsistencies and we voted to reject those proposals. In most of these instances, DFINITY voted to reject as well and resubmitted the proposal after addressing the issues.

To me, this is what we are called to do as a community that has voting power and can offer decentralization to ICP through the NNS. DFINITY took steps to enable this kind of participation almost a year ago. Not many people and organizations are committed to performing this work yet, but I really hope it ramps up. So far, I’m only aware that CodeGov.org and Taggr Network are voting independently on these proposal topics. It would be awesome to learn if anyone else is doing the same.

Hence, my interest in submitting non-binding resolutions as governance Motion proposals is about experimenting to find a new mechanism to help advance decentralization of ICP. My hope is to continue recognizing and promoting more people and more organizations that are contributing to ICP in this way.

EXAMPLE

Below is an example of a Non-Binding Resolution presented in the form of a Motion Proposal. It is a real example from a recent Replica Version Management proposal of a non-binding resolution that could be submitted to the NNS, so please feel free to offer advice on how it can be improved.

Title: Non-Binding Resolution to Reject the New IC Release in Proposal 123008

Introduction:

Whereas the NNS governing body recognizes the critical importance of decentralized decisions regarding code changes to the Internet Computer Protocol; and

Whereas the IC-OS Verification and Release Notes are formally presented in Replica Version Management proposals for the purpose of verification and review of changes since the last release; and

Whereas every voting member of the NNS has the right and accreditation to review and vote on code changes proposed through the NNS according to their own convictions; and

Whereas Proposal 80639 was adopted by Simple Majority on Sept 18, 2022 with the vision of making it simpler for some neurons to specialize in the review of proposal topics such as “Replica Version Management” and other neurons to follow different neurons on this type of topic for the purpose of enabling decentralization of the vote; and

Whereas the NNS governing body recognizes that replica review reports such as this Motion proposal are non-binding resolutions;

Operative Clause:

  1. Be it resolved that The CodeGov Project hereby expresses its Rejection of the New IC Release in Proposal 123008.

  2. Be it further resolved that the work product for each reviewer for The CodeGov Project can be found in the CodeGov portal on DSCVR as linked in the References below.

  3. Be it further resolved that the poll that determines the vote for the Taggr Network can be found in the NNS-GOV realm on the Taggr Network as linked in the References below.

Supporting Information:

The NNS governing body acknowledges the substantial benefits to decentralization of the Internet Computer Protocol associated with people and organizations who are willing to spend time verifying code changes that occur through the Replica Version Management proposal topic. At this time, the CodeGov.org neuron and the Taggr Network neuron are known to have publicly confirmed that they vote independently on Replica Version Management proposal topics. Any other person or organization who is willing to perform this work may also be recognized in future replica review reports when submitted to the NNS by The CodeGov Project.

References:

  1. Forum deliberation

  2. CodeGov review in DSCVR Portal

  3. Taggr poll in NNS-GOV Realm

  4. Taggr Network Register Known Neuron Proposal 122631

  5. CodeGov.org Register Known Neuron Proposal 122939

  6. CodeGov website

Conclusion:

In adopting (or rejecting) the non-binding resolution presented in this Motion proposal, the NNS governing body affirms its commitment to supporting the decentralization of voting on Replica Version Management code changes to the Internet Computer Protocol

Respectfully Submitted, The CodeGov Project

3 Likes

I like the idea of having non-binding resolution for now. My real question is how do we ensure the changes are reasonable.

Having gone through some portions of the code (i find the runtime sections, in particular, fascinating), I do believe that deep dive into code from a reasonable rust developer to ensure that the code looks nearly right is a major task for each build. Even a sanity check takes, sometimes, hours to perform. But for someone truly interested, it is a gem of an opportunity.

The value of “attention is all we need” cannot be overlooked. Is the intent to eventually translate into binding resolutions?

2 Likes

I don’t see how Motion proposals could ever be binding resolutions. Voting on the Motion proposal has no direct bearing on the actual Replica Version Management proposal except that our intent is to submit them 2 days before the end of the voting period of the RVM proposal that has been reviewed. That gives the community time to decide if the information that we uncover in our report is useful to their vote if they choose to vote manually.

I want to go through this exercise of proposing a new use case for Motion proposals due to the past culture that we’ve developed to use Motion Proposals to propose changes to code. These replica review reports are not changes to code, but they do report on reviews of proposed changes to code. Hence, they are more akin to Board Reports than they are Motions in parliamentary procedure, but there is not another appropriate proposal topic to use. It’s a non starter to me to submit these types of Motion proposals if they will all be rejected. Hence, I just want to have a conversation about whether or not the NNS can support this type of effort, whether it’s by CodeGov or by anyone else who is reviewing and announcing their decision on Replica Version Management proposals.

1 Like

Thanks for clarification. But if they are non-binding , there should be some circumstances they should be rejected; even if in most cases, they could be adopted.

If they are adopted, i presume that it would be a sign that others could use that as a basis for their vote.

1 Like

Yes, the Motion proposals could be rejected. If that happens routinely, then I will take it as a sign that the NNS doesn’t want to see those types of proposals any more and I would stop submitting them.

The Motion proposal would not end until 2 days or longer after the Replica Version Management proposal ends since we need 2 days for CodeGov reviewers to perform their reviews. Hence, it’s not possible to use the final result of the Motion proposal to influence the RVM result. However, the results in progress could influence it. That actually doesn’t seem like a bad idea to me if it leads to decentralized voting. I think most people will vote according to what they believe is in the long term best interest of the IC. It would be an interesting to learn how that impacts the voting patterns on the RVM proposal.

2 Likes

@wpb Thanks for the work you are putting into this. Something that is needed, but not many want to do, so I really appreciate it.
Couple questions

  • Would the schedule still be the same with the releases and there is a report that is submitted as a NNS proposal? Right now they usually drop on Fridays and the CodeGov reviewers have ~48 hours to vote. Would that timeline stay? or would this happen before the release is put out, or would there be a delay in dropping the release?
  • Would it be to slow to have the report be done before the release is put up for vote? If not, would it make sense to have the report be linked or included in the code change proposal that is put out? If someone is looking at whether or not to vote y/n on it, it might be nice to have the CodeGov approval right there for people to find. But again, would require a delay in the release by a few days
  • I dont think there is necessarily a problem with having the reports as Motion proposals, but im trying to wrap my head around why someone would vote y/n on the proposal AND y/n on the replica code upgrade. If the report is just informational and doesn’t need a vote itself, is there another place that it could be hosted? One option is just to include it with the replica upgrade that I mentioned above, but that may not work. Could be other places like this forum or Taggr/DSCVR, but NNS seems more permanent/immutable?

Just kinda talking out loud but curious on your thoughts

1 Like

Hi @wpb

Many thanks for your suggestion. Here are my initial (personal) thoughts:

  • I agree that reviewing replica upgrades, as currently done by CodeGov and Taggr, is crucial work in enhancing the decentralization of the NNS.
  • I certainly support the aim of more broadly distributing and publicizing replica update review reports.
  • However, I am not convinced that motion proposals are the ideal medium for this. It’s unclear what a vote on such a motion proposal would imply, and users might want to comment or respond, which isn’t possible within the current voting process.

I appreciate your initiative in this area and look forward to further dialogue.

3 Likes

All excellent questions. I was trying to scope a work process that didn’t require any changes to existing infrastructure…using the existing Motion proposal topic and not asking DFINITY to let CodeGov start a review before they ready to submit the Replica Version Management proposal to the NNS. If the idea doesn’t resonate with the community, then I’m fine with continuing to use our current work process…post a summary report as a comment in the forum topic that DFINITY initiates when they open the IC release for voting. I’ve been doing that after the CodeGov neuron votes or after the poll expires in our portal on DSCVR, whichever comes first.

2 Likes

Each Motion proposal would contain a Reference (see Example Reference 1) to the forum topic that DFINITY initiates and where I always link our final conclusion and individual reviews from CodeGov. That seems like a great place for questions and answers for everyone who is interested. DFINITY, CodeGov reviewers, etc, can engage in discussion on the replica update in that forum topic.

BTW, I recognize there are deficiencies with this idea and may not pursue it. I’m interested in brainstorming ways that can encourage our community and developers to take a look at replica updates. My observation has been that discussion on the forum is catalyzed every time a Motion proposal makes it to the NNS, which is why I like the idea of submitting a Motion proposal for this purpose. Interpretation of what it implies is my concern and why I wanted to try to frame it as just a non binding resolution.

1 Like

Since this proposal hasn’t generated much enthusiasm so far, I will hold off on taking further action. If anyone has additional ideas on how to encourage more people to get involved in reviewing and voting on Replica Version Management proposals and how we can decentralize voting on this proposal topic, then please don’t hesitate to speak up. I’d be happy to discuss it on the forum or via DM. I’m interested in learning what others think. Thanks to everyone who has engaged in the discussion so far.

1 Like

In my opinion, understanding how it works and how to do it has to be explained in a less technical way. I’ve always been taught you should write things in a way a 13 to 15 year old could understand if you want to engage with a wide audience. You clearly have a very in depth understanding of how the system works and what could be done to help decentralize it, but I am struggling to understand it.

I don’t understand what you’re asking for here. I literally have no clue, and I’m sure that’s just because I don’t have the necessary experience in developing on the ICP. But, if you want regular people that aren’t developers, like myself, to participate in some way, I think the processes would need to be simplified. I don’t know HOW, but some way. Maybe it’s not possible at this time? I really don’t know.

How can someone with the most basic computer skills participate? I’d love to hear some suggestions because I’m sure there are a lot of people out there that want to contribute in some way, they just don’t have the technical knowledge to make it happen. I would say I’m more technically savvy than the average user, but would love to get the most basic ICP retail investor to help decentralize the network in some way. Aside from assigning their voting power.

Installing Ubuntu and compiling the code is not an easy task for most non-technical people. I was able to get my Ubuntu laptop to start compiling the code, but it failed, and I don’t know why. I’m sure I could figure it out given enough time, but I had other priorities. If you want more eyes on the code, things have to be easier to do. Again, just my opinion.

This isn’t an argument against your proposal either. I just don’t understand it due to my lack of experience.

This is excellent feedback James. Thank you! I agree with the need for simplicity. I’m sure I made this specific proposal more complicated than necessary. My thought process was that submitting a Motion proposal that includes the replica review report from CodeGov could elevate visibility regarding the need for developers to review replica updates as contributors to this decentralized protocol. Most active participants in governance probably filter Replica Version Management proposals and never see them, but they likely do see all Motion proposals. Unfortunately, that is a different use case for Motion proposals than what is generally considered an acceptable Motion proposal since it would not be a proposal for a code change. It would be more akin to a board report submitted to the NNS assembly. It would only need to be recognized, not adopted, but I wouldn’t want them to be rejected. It’s not important enough to me right now to propose anything that would be a code change to facilitate this idea, so I just wanted to suggest that we formally adopt a new use case for Motion proposals.

I agree that IC-OS Verification is not an easy task for most non-technical people. I’m actually one of these people (I’m a chemist and an engineer, but not a developer). It took me a while to figure out how to set up my PC for these builds. When these RVM proposals first started it required Docker and could not be built using Ubuntu on WSL2, which was my PC environment. It required a virtual machine running Ubuntu (I used Virtual Box). I also had issues with hard drive space that I didn’t recognize initially. I spent many hours talking with developers who were patient and answered enough questions that I was finally successful. Fortunately, the switch to Podman greatly simplifies the build for many people and it can now be done using WSL2 and no VM.

It’s still command line though, which is a pretty big hurdle for the most basic ICP retail investors. It causes me to believe that we need a group of developers to participate in the CodeGov project (and other similar organizations) so we can roll up our findings into a credible report that can be presented to the average ICP retail investor. The bounty paid to these developers for performing this work can be a nice supplemental income that is highly flexible in regards to their time commitment. If you are more technical than your average retail investor, then I suspect you could perform this IC-OS Verification work and you would be welcome to participate with CodeGov. Competing priorities seems to be the biggest blocker for developer participation so far. Higher value add comes when developers are willing to dive deeper into the Release Notes and looks at the code changes. That could easily occur while the replica is compiling in the background. This work really does require technical skills and I want to do my best to help change the culture where more developers are thinking about how they can add to the decentralization at the protocol level in this way.

2 Likes

I think the best way to response to this is that decentralization requires a certain number of nodes. This is a really good idea. But, as one of the people who has the level of technical skills you’re looking for, I don’t think we are at that critical threshold people level yet. But- the Motoko bootcamp generated a lot of interest, and your proposal would create a really great way for the graduates to learn more about the IC. There is a huge need in the ICP ecosystem to teach people. My opinion is that if you’re willing to teach people about how to perform code reviews, then you’re not going to have a problem getting your proposal through.

2 Likes

Ok, I think I understand where you’re heading with this now. You’re proposing to put replica review reports with motion proposals because you want more people to see them and get involved in replica update reviews? I could be totally misunderstanding still.

If that is what you’re proposing, my argument would be the same as before. It’s not that people don’t WANT to, it’s just too complicated as it is, and the barrier to entry and cost/benefit is too high for most people. I don’t think moving anything to motion proposals is going to change the participation in that regard. I have no data to back that up, and it’s just my guess.

I agree 100%, which is why I was trying to run the verifications. When it didn’t work out, I was debating if it would be worth the time to figure out what was going wrong. Last I heard CodeGov was paying for people to verify so I looked at the application to become a reviewer. Have you ever looked at an application for something and thought There’s no way I’m qualified for this. I’m not even going to bother. That was me. Major contributor to Github? Nope. Resume? I come from a profession unrelated to computer science/development, so nope. Do I personally know 2-3 people and their usernames/emails in the ICP ecosystem? Nope. And while I could probably figure out the answers to the Qualifications section, I already disqualified myself before I got there. Ha ha!

I totally understand the want/need to vet people who will be performing that type of work. Especially when you’re going to be paying them and it is a vital part of the process for the IC. But those requirements create a pretty big barrier to entry for most people who would be willing to participate for the reward being offered, in my opinion. Not that it’s a BAD thing! Again, I’ve done zero work in helping develop the IC other than some spelling/grammar corrections on the developer docs through Github. So my opinion is based on very little experience in this area. Hopefully it is still helpful and constructive.

1 Like

Yes. It’s not just so more people can see them in general. Motion proposals are seen by people who are active participants in governance, which is a more targeted audience. I think a lot of them are developers too.

You could be right. I see the idea as a way to experiment with mechanisms that could lead to more decentralization on the Replica Version Management Proposal topic. Running this experiment for a month or so could lead to nothing, but it could also lead to something. Either way, I don’t want to do it without having a reasonable sense of whether it is supported by the community.

I agree, but to be honest this barrier is intentional. It’s not required to fill out all the information…just enough to help me understand that the person is qualified. I’m not interested in attracting airdrop farmers or moon boys. I’d like the CodeGov contribution to this kind of decentralization to be credible based on developer engagement. My preference is for the developers to be recognizable identities in the IC developer community. However, there is nothing wrong with someone participating who is not known or who wants to participate under a new anonymous identity. The application provides an opportunity to prove they have the required skills. Of course, if I recognize the identity of someone who is interested, especially if I reach out to them via DM, then I already know they have the skills and don’t need nearly as much technical information to be provided.

1 Like

I think you are right. I hope we can achieve a critical threshold in time and I’d like to use the CodeGov project to help promote the idea of getting more developers involved. By the way, since you have the technical skills, are you interested in helping with the reviews?

You are right about this too. I should reach out to @Seb and @aiv again to see if there is a collaboration opportunity with Motoko Bootcamp. The reviewers for CodeGov have also been discussing ways to better teach people how to perform these reviews. There is already a training page and a description of the review deliverables on the CodeGov website, but it can be improved and we want to make it more helpful to anyone who wants to dig a little deeper.

Thanks for your input on this topic!

3 Likes