SNS Generic Nervous System Function Restrictions

Hey @daniel-wong, @DanielThurau, @msumme, :wave:

I have a problem. I’ve checked the IC repository and noticed that you guys have been involved in the relevant area of the codebase - I’m hoping you can help me… :slight_smile:

Context

I’d like to be able to raise an SNS proposal to register a generic nervous system function for calling the manage_neuron function on that SNS’ governance cansiter (thereby allowing the SNS DAO to vote on proposals to manage neurons that are controlled by that SNS’ governance cansiter).

At the moment I’m focusing on WaterNeuron, but I’d like encourage the same sort of neuron (and neuron management) to be established on other SNSs. I’ll also aim to move on to the NNS soon (but that’s a separate topic).

Further reasoning for this is explained in the D-QUORUM OC channel for WaterNeuron. Essentially it allows for a decentralised neuron for which the DAO is responsible for electing followees (acting as elections for trusted ‘council members’, making the neuron a highly reliably option for following on more or less every topic). The important thing is that the neuron cannot be controlled by any individual (only the governance canister holds permissions for the neuron).

Problem

I had a go at raising a proposal to register a Manage Neuron generic nervous system function (using @RMCS’ awesome Toolkit :heart_on_fire:) and I ran into an issue regarding generic nervous system restrictions →

The important part is at the bottom of the screenshot. Function targets a reserved canister.

The relevant part of the IC codebase is here →

It appears that SNS’ are currently not allowed to have generic nervous system proposals that execute functions on the SNS’ governance canister itself (in this case the manage_neuron function).

Request

Would you be able to shed some light on why this restriction is necessary? Can it be lifted? Presumably it’s easily circumvented by registering a method on another canister that simply calls the desired method on the governance canister. Your insight and help would be much appreciated.

Please take a moment to see what I’m trying to achieve with the D-QUORUM neuron. I think this is an important use case, and it would be great if the SNS framework could be adjusted to make this feasible without undue heavy lifting.

Thanks in advance :pray:

1 Like