Really insightful and valuable thoughts! Here’s what I think for each questions.
Network Centralization
One root cause of the current centralization situation, in my opinion, is the lack of relay traffic at the moment. There are some ways to get very cheap cloud nodes, but one has to pay regular price for the bandwidth (as far as I know). Without enough relay traffic, bandwidth cost is neglectable; but if there are enough relay traffic, bandwidth cost will be high enough to make most cloud nodes not profitable anymore. However, everything is based on my assumption that bandwidth is not free on cloud nodes. If someone can even get free or very low cost bandwidth, the conclusion will no longer be valid.
- Minimum NKN requirement to run a node
We have discussed about it as well and it seems to be a solution in the long term. But there are a few things to think carefully before we decide to do it this way:
- It’s probably something to consider after mainnet token is listed in at least one major exchange so most people can easily get some tokens
- It adds a barrier to run a node and might be harmful for attracting new miners
- It might not solve the problem if the current cloud node owners are willing to purchase tokens (or use their existing tokens) and put them in node wallets. On the contrary, massive cloud node owners might be even more willing to do it than regular users because their profit is more stable and they do it for business. Look at Bitmain, they not only control the most nodes in Bitcoin, but also have the most resources and can design and produce ASIC that regular miners can’t do.
Another idea that came to mind which might be feasible regarding pushing out cloud providers; flag and block all 0 ms latency nodes. That should take out large centralised datacenter node clusters. And those nodes add little to nothing to network value at this time. 1st of all they provide no additional geographic coverage, and they provide no additional bandwith as the network is already extremely underutilized. Look at china that is running most services with under 50 nodes in use.
This will not work technically because anyone can easily make a node respond later by modifying a few lines of code, so the observed latency can be increased arbitrarily.
Also, 0ms latency does not mean latency is 0ms, but means latency is not measured (successfully) yet because 0 is the default value in Go. Even local nodes should have very low positive latency (e.g. 1ms). 0ms latency nodes has lowest priority (not highest) to be selected.
- Mining pools to make payout more consistent, no one likes waiting 2 weeks to earn their first 25 cents due to being unlucky.
I would also be happy to see someone creating a mining pool, although I guess it’s not as easy as other mining pools because the network requirements.
- KYC / ZK-Identity to limit nodes/user
- If minimum NKN on a node to participate is not feasible decentralised perhaps this can be facilitated through a centralised solution, all mining nodes for instance should have a minimum amount of NKN on their mining node wallet (1000 NKN for instance) every time a mining node wins a block it can have a potential payout from a NKN mining lottery, this would incentive running more nodes and also lock up NKN and it would draw attention/fun to the mining ecosphere.
That might be too centralized. I think it’s better for the infra and mining to be as decentralized as possible. If there is one part that is centralized in the ecosystem, I hope it’s the business and commercial part.
Commercial Stats
- We can’t easily know if our node is running commercial, there is no RPC endpoint info made available.
nkn-commercial is designed to be very decentralized, so even the team doesn’t know exactly how many of them are running. But there is a way to estimate it using tuna subscribers (assuming most tuna are running through nkn-commercial):
const nkn = require('nkn-sdk');
nkn.Wallet.getSubscribers('tuna_v1.httpproxy', {limit: 10000}).then(x => {
console.log(x.subscribers.length);
});
Currently the result is around 1600, that means there are at least 1600 nkn-commercial running. Note that this estimation is an underestimate because nkn-commercial will only start tuna if it finds the ports are open.
- There is zero insight in any off-chain traffic it is hard to get excited about all the partners that are being signed if what we can see from that is exactly nothing; granted this is likely under NDA but estimated metrics or anonymized metrics would be godsent.
- TUNA same story, im running TUNA now supposedly on NKN2.0, am I really though? How do I see if I have any open channels.
I can concede that offchain communications on network scale are possibly impossible to measure and report on however surely there are reasonable estimations to be made using metrics such as subscriptions, nkn payments through nanopayment channels and extrapolating from owned nodes.
The current ecosystem is entirely opaque and there is almost no insight into anything. The only thing that I can currently have insights into are onchain metrics and my own node relay performance. I think that is inadequate as with NKN2.0 those are pretty much the least interesting metrics those won’t get anyone excited.
nkn-commercial is actually the foundation (or the miner’s side) of services we are working on. With miners upgrade to nkn-commercial, we are ready on the infrastructure and resource side, but the application side is still chasing up (except iQiyi). The stats will only be meaningful with both are ready to show.
For NanoPay based service (e.g. tuna) one can actually look at the blockchain explorer because NanoPay txn will eventually go on-chain. We haven’t published any stats or make any dashboard showing it because the number is still quite small, as you can see using nscan.io for NanoPay. If the number grows and becomes worth mentioning, we would definitely show it up
For commercial services (e.g. iQiyi) it’s a bit hard because currently you can only see your own earning through nMobile Pro since nothing goes to the mainnet. But we will try to find a way to show it somehow. We will definitely be happy to do it because it shows real world adoption, which is what we have been trying to achieve.
- I’m supposed to be running nCDN now, how much of my disk is being utilized right now, how much bandwith am I providing over nCDN, again no insight.
You won’t provide services for nCDN or iQiyi if your nodes are not in China because iQiyi only wants China IP currently. But this is only for now: iQiyi is also expanding to non-China market, and we are also trying to replicate the same mode with other companies.
The iQiyi related discussion might be a bit hidden to people outside China, but within Chinese miner community, there are already many hundreds of devices providing services to iQiyi, but they are not running nknd because they most likely don’t have public IP address, so you can’t see them in the node map.
- When will I receive commercial rewards, will this be in form of nano-payments? Also I’m confident pretty much no one in the community even heard about or knows what nano-payments are and how they work.
It will be in the form of NanoPay so visible on explorer. But the problem now is the lack of users compared to providers. Our BD team is working on acquiring customers, so let’s hope they do well!
I tried to address most aspects, but please let me know if I’m missing anything. Again, really appreciate for these insightful and valuable thoughts, including the ones in replies