namecoin / electrum-nmc

Namecoin port of Electrum Bitcoin client.
https://www.namecoin.org/
MIT License
29 stars 24 forks source link

Add name suspensions #297

Closed JeremyRand closed 2 years ago

JeremyRand commented 2 years ago

This PR introduces a new state for names: "suspended". Suspended names behave like unexpired names on the consensus layer (i.e. they can only be updated by their owner), but behave like expired names on the policy layer (i.e. they resolve as NXDOMAIN). The idea is that if a user forgets to renew their name on time, it will be suspended, which will make their domain inaccessible; this will hopefully get their attention before the name expires. This decreases the damage associated with forgetting to renew from a permanent hijacking to a temporary DoS.

The grace period between suspension and expiration is 4032 blocks (~4 weeks) for mainnet/testnet, and 4 blocks for regtest.

This PR also tweaks some related parts of the code in order to make them more conducive to name suspensions; most of these extra tweaks are related to how block heights are converted to dates for display.

JeremyRand commented 2 years ago

@domob1812 Feel free to glance at this to see if anything is obviously wrong or might break things for you.

@hlandau This PR is relevant to nccald.

domob1812 commented 2 years ago

Looks good to me (but I've not done an in-depth review)

mrpeertopeer commented 2 years ago

There have been no discussions about any kind of suspension. I'm strongly opposed to this!

Daniel, you should oppose this kind of behavior. Jeremy is going way too far. If you ask me, I would revoke all his access to the namecoin.org website after seeing this. 

While here @JeremyRand merged "suspensions" into Electrum NMC. @yanmaani wants to merge "autoregister" into Namecoin Core. 

Both of them should be kicked out of the Namecoin project. I can maintain Electrum NMC while you, @domob1812 maintain Namecoin Core. We don't need people who are constantly harassing members of the Namecoin community and merging these kinds of disgraceful pull requests in just three days.

yanmaani commented 2 years ago

There have been such discussions. You appear to have missed them, as evidenced by the fact that you show up two months late.

Would you care to state your problem with the pull request? Further, what is wrong with my pull request for name_autoregister?

Also, what members of the Namecoin community have I harassed, and when/where did I do so?

mrpeertopeer commented 2 years ago

if a user forgets to renew their name on time, it will be suspended, which will make their domain inaccessible; - @JeremyRand

Every user who registered a domain name or other data since 2011 on the Namecoin block chain has been well aware of the expiration time of 36000* blocks.

I'm astonished by the fact that, instead of warning the user about the upcoming expiration date, this pull request has been merged, simply suspends the domain. This is completely outrageous!

I believe that this pull request even contradicts yours about name_autoregister in Namecoin Core @yanmaani


Regarding the the attacks on Namecoin community by you and Jeremy Rand, we should ask @domob1812 to create channel on Bitmessage where we can openly and without the possibility of abuse or censorship discuss these matters.

edit: Namecoin channel on Bitmessage: [removed spam link. -Jeremy]

yanmaani commented 2 years ago

You can solve it by simply renewing it, which takes all of five minutes. What's the problem?

In what way does this "contradict" name_autoregister?

I am not going to use BitMessage, which is a hilariously broken piece of software that never works.

mrpeertopeer commented 2 years ago

In this case, I'm reverting this pull request manually.

As stated above, all domains expire after 36000 blocks. Suspending domains is unacceptable. I should also note that such a suspension only takes place in Electrum NMC not in Namecoin Core.

No @yanmaani. Bitmessage is not broken in any way, even @domob1812 use it. You can download and use the AppImage if you can't run or install it from source: https://appimage.bitmessage.org/releases/20220125/PyBitmessage-0.6.3.2.glibc2.15-x86_64.AppImage

yanmaani commented 2 years ago

You have failed to point out any actual issues.

mrpeertopeer commented 2 years ago

if a user forgets to renew their name on time, it will be suspended, which will make their domain inaccessible; - @JeremyRand

Every user who registered a domain name or other data since 2011 on the Namecoin block chain has been well aware of the expiration time of 36000* blocks.

I'm astonished by the fact that, instead of warning the user about the upcoming expiration date, this pull request has been merged, simply suspends the domain. This is completely outrageous!

yanmaani commented 2 years ago

You appear to misunderstand the meaning of "suspend". The point of the suspension is to warn the user about the upcoming expiration.

mrpeertopeer commented 2 years ago

It is very clear:

if a user forgets to renew their name on time, it will be suspended, which will make their domain inaccessible;

How can I misunderstand this?

If that is the case as you say @yanmaani (and I know it is), this pull request has to be rewritten to make it clear this is a warning about the upcoming expiration date and not a suspension!

yanmaani commented 2 years ago

It will just stop resolving, it doesn't prevent them from renewing it.

mrpeertopeer commented 2 years ago

This has significant downsides for domains I own and use with my fork of ZeroNet! 

stop resolving

A warning is more than enough! 

yanmaani commented 2 years ago

Why? You have to renew them anyway.

mrpeertopeer commented 2 years ago

That's correct, I do renew them. But stopping resolving the domains before the 36000th block is absurd.

There should be no "suspension" or "stop resolving"!

JeremyRand commented 2 years ago

@mrpeertopeer Hi Zoltan. Whatever allegations of harassment you would like to air do not belong in this PR. Nor do spam Bitmessage links, nor review of an unrelated PR in a different repo. AFAICT the only valid criticism you've raised is that Namecoin Core hasn't followed suit yet; a PR will be sent to Namecoin Core as soon as I have time, which will fix that issue. Normally I would implement such behavior to activate on a flag day in both clients simultaneously, but unfortunately, this feature was blocking sponsored work, so we had to deploy quicker than a flag day would permit. Also, this is simply wrong:

I'm astonished by the fact that, instead of warning the user about the upcoming expiration date, this pull request has been merged, simply suspends the domain.

If you had bothered to read the PR you're purporting to review, you would see that we do in fact warn the user about the suspension date, and show a further status indicator in https://github.com/namecoin/electrum-nmc/pull/300 about the upcoming suspension 4 weeks before it takes effect. Since you haven't read the PR, and since you are lying about the existence of past discussions about this (I know you're lying because you participated in said discussion), I am instructing you to drop this subject and not post further in this PR or any related issues/PR's, so that developers who are trying to get useful work done don't have to sit through any more noise.