Probably this topic is already discussed somewhere. Let me know if this is the case.
1 ) Imagine one big entity (company / rich person) running LOTS of autonomi nodes. If this company / person decides to shutdown all the nodes, how would it affect the network ?
If no limitation in terms of number of nodes per account, then, in terms of “farming”, autonomi wont be so decentralised, cause the more capital you have, the more nodes you can run.
A network can be decentralised at one level, centralised at another level. Why wouldn’t we limit the number of nodes per account so that farming in autonomi becomes really decentralised, and not just a profitable deal for the wealthy ?
There are maybe some ingenious ways of limiting account creation in a network as autonomi.
Who said that rich people are bad ? they are humans, all too humans, Nieztsche would say, just regular humans BUT with a lot of power. That’s the problem. It is not about communism (which I am sure 95% of people dont understand the concept), it is about psychology and sociology. Taking into account the long history of war, of colonialism, of oppression, of rape, etc.
Dont think in terms of communism, you may not understand ( it if you didn’t seriously study the subject ). Think in terms of ecology and sustainablilty. Think en terms of health.
Others can make and discuss philosophical points. I’ll make a technical and pragmatic one; in a permissionless network there’s no way to place such limits on individuals. Therefore resistance to the kind of attack you describe must be implemented at the network (protocol) level.
There are surely some ingenious ways of limiting number of nodes per “entity” at the protocol level. I am sure you can find some. I may comme with exemples later.
Hmmm really ? Let me know if I am wrong : to run a node you need to connect via regular internet protocol ( IP ) isn’t it ? One way of limiting is by limiting the number of nodes per IP and in fonction of location.
If you dont limit the number of nodes per account, then :
small farmers wont have much incentive to run a node cause “offer and demand” will make that one node wont be so profitable. Big companies will get all the profit.
Unless autonomi somehow garantees some profit for small farmers. Just augmenting rewards would mean that you attract more big companies to profit and centralise nodes.
That doesn’t limit things per enitity though. People with any kind of reasonable resource could quickly get round this, and it just makes the gulf between the two side wider.
Earnings will be proportional to the resources supplied. Big players and small players will both earn proportionately, which is fair. Big players need to make a profit to make it worthwhile buying new hardware etc, whereas small players already have equipment they can use.
Given small players can count their existing hardware as a sunk cost, their actual profit-per-node might be higher than a commercial operator who needs to factor in the cost of new hardware / bandwidth etc required to run many nodes to their profit calculation.
A friend of mine whom I wanted to get involved with beta appeared to only have an ip6 address oO
(or possibly the Nat pooling… Didn’t investigate too much… But for sure couldn’t set up port forwarding for ipv4 only for ipv6 that setting was available in the router and everything ipv4 related was greyed out… )
they have no central authority to allow or disallow them
other nodes can shun them if they feel they are misbehaving. But again no central authority to report bad behaviour to so only individual nodes deciding for themselves.
A individual node will only see a small number (maybe 1 to 2 thousand) of other nodes in the network. So even if you tried limiting nodes per IP address there will be no node out there seeing more than a couple of nodes from that IP address, so no way to even detect that a IP address has more than a few nodes.
Even assuming that a limit could be implemented, how does a node know which nodes from that IP address are to be responded to and which shunned??? Again no central authority keeping lists or banning lists, so an individual node has no ability to know which is which.
While this is true, the question becomes is it worth them doing it. Each nodes will still only earn at the approximate rate of any other node. So nodes running from home on spare resources, having near zero running costs, will profit at a much higher rate than the person funding datacentre nodes (or buying hardware at home).
Also that person with the capital is also assisting the network even though he is earning a much lower ROI than the multitude of home users earning almost pure profit.
The network is being designed for the average home user using their spare resources and what we currently see in the test networks will be the exceptions rather than the rule. And while both are acceptable it will eventually be the billion** home users who will make up the majority of the nodes.
** maybe 10% or 5% of them will run nodes.
As some one who has data mined data systems at various times for companies, it would be hard to even know (imagine near impossible) that I could determine if a particular entity has one IP address or a thousand, has one payment address or a thousand.
So even if there was some central data base to query then the big player will still not be detected. So why expend developer time trying to block it, why expend node processing trying to detect it? After all a big player in the end if they have behaved nodes is assisting the network by adding 0.0001% of the nodes in a future network.
Your answers seem very rational and logic. But a part of me is not yet convinced, maybe cause I don’t understand enough the code. Let me know if I am wrong :
I think of it as different “layers”. Nodes are, as you say, independent entities, but they are somehow linked to accounts. If I run 10 nodes, I get the rewards on my account, a single account. I can not run a node if I don’t have an account, isn’t it ? In order to run a node, I need an account. So, if that makes sens, at layer one, an account is created and launches a node. At a second layer, the nodes interact as independent entities, autonomously with lots of other nodes.
My proposition is not to program nodes to be able to identify who is who, at the “second layer”. My proposition is to develop first layer so that
getting an account is limited (say 1 account per “person” - I know it is very difficult to implement)
An account can launch/run no more than X number of nodes.
When those nodes are running, they run as independent entities.
If this doesn’t make sens, then please explain to me how the network “knows” who should be rewarded ?
Please encourage the engineering team to focus on small home routers so we can fulfil this. Lots of folks are having trouble with home routers, which is making this goal hard.
I’m sure it is a priority already, but worth underlining!
Ok, I thought you needed something like an account (wallet) to be able to run a node. I run a node my self (graphical launchpad) and it is not possible to run a node if wallet is not provided.
Can you tell me where can I find the precise information on how the network rewards node operators ?
The user, anybody, node runners and casual users, eventually, will be able (not required) to have an account to hold their account info. The idea was to have the token earned sent to their account. ERC20 has nullified that for the time being.
But again I could associate one node per account. OR no account and just earn to a wallet address not associated with a user account.
That text though is very outdated and without accounts is meaningless anyhow
Do you have a link to that text, so that @JimCollinson can see what changes are needed for it
I searched the current White paper and cannot find PMID, is that the old one?