Skip to content

chain: add airstop soft fork #927

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jun 25, 2025
Merged

Conversation

rithvikvibhu
Copy link
Member

@rithvikvibhu rithvikvibhu commented Apr 19, 2025

This is a very simple PR to disable airdrops with a soft fork.

While it is currently functional and "works", everything is open to change (the name, scope, signalling threshold, duration, etc.)

It does not deal with name claims or non-airdrop faucet claims. It does not do any reallocation of funds. It only stops airdrops from being claimed if the soft fork is activated.

This should hopefully get some conversation going.

h/t to @nodech who wrote the icannlockup soft-fork, much of the test code is stolen from test/chain-icann-lockup-test.js

@coveralls
Copy link

coveralls commented Apr 19, 2025

Coverage Status

coverage: 71.622% (+0.03%) from 71.588%
when pulling 4782714 on rithvikvibhu:end-airdrop
into f0a81da on handshake-org:master.

@AndreiChyrych
Copy link

«This is a very simple PR to disable airdrops with a soft fork»

is it possible to reintroduce airdrop with a new soft fork?

@Falci
Copy link
Member

Falci commented Apr 19, 2025

is it possible to reintroduce airdrop with a new soft fork?

No, that would require a hard fork.

@j9011303
Copy link

I support this proposal. Ending the airdrop makes sense at this stage of the project.
It can help reduce unnecessary token supply and move the project forward.

@smcki012
Copy link

My Father allows this. You can proceed.

@agaamin
Copy link

agaamin commented Apr 20, 2025

Lets do this.
Burn the damn spare tokens.

@smcki012

This comment was marked as abuse.

@HNSbroker
Copy link

Isn't there a way to actually burn the coins and permanently remove them from the supply, instead of just stopping the claims?

@Falci
Copy link
Member

Falci commented Apr 20, 2025

Isn't there a way to actually burn the coins and permanently remove them from the supply, instead of just stopping the claims?

These coins don't actually exist. The airdrop creates coins out of thin air when they're claimed. By stopping the airdrop, we prevent these coins from ever being created, removing them from the supply.

@faltrum
Copy link

faltrum commented Apr 20, 2025

Great Moment and great decision!. Congrats community involved in this step. Next steps:

  1. Ensure miners awareness
  2. Update the BIP9 dates
  3. Merge
  4. Wait the merge to be activated, or not.

Thanks @rithvikvibhu and @Falci for clarifications.

@rhymincymon
Copy link

I think this is the right way forward.

The supply looks as follows without and with the soft fork activated.

airdrop airstop

After the last subsidized block is mined, a total of 961,262,671.16 HNS would have been issued.

@rithvikvibhu rithvikvibhu marked this pull request as ready for review May 15, 2025 14:42
@nodech nodech added this to the hsd 8.0.0 milestone May 21, 2025
@nodech nodech added blockchain part of the codebase protocol/consensus part of the codebase breaking-major Backwards incompatible - Release version labels May 21, 2025
@nodech
Copy link
Contributor

nodech commented Jun 16, 2025

After the soft fork activates, miners may still accidentally use airdrops broadcasted in their blocks. This could potentially halt the network as those blocks are no longer valid. I believe miner code AND mempool code needs addressing.

Mempool on activation could drop all airdrops that are logged in it, to ensure miners don't include them in the blocks. And mempool also needs to not accept/propagate airdrops. Also in addition relevant miner code could be modified so it does not include it either way. I believe both changes are necessary.

@nodech
Copy link
Contributor

nodech commented Jun 19, 2025

After the soft fork activates, miners may still accidentally use airdrops broadcasted in their blocks. This could potentially halt the network as those blocks are no longer valid. I believe miner code AND mempool code needs addressing.

Mempool on activation could drop all airdrops that are logged in it, to ensure miners don't include them in the blocks. And mempool also needs to not accept/propagate airdrops. Also in addition relevant miner code could be modified so it does not include it either way. I believe both changes are necessary.

Okay, this is done.

Copy link
Member Author

@rithvikvibhu rithvikvibhu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @nodech for review/changes! LGTM (apparently I can't "approve" my own PR)

@nodech nodech merged commit dee79a3 into handshake-org:master Jun 25, 2025
8 checks passed
@rithvikvibhu rithvikvibhu deleted the end-airdrop branch June 25, 2025 10:07
@nodech nodech mentioned this pull request Jun 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blockchain part of the codebase breaking-major Backwards incompatible - Release version protocol/consensus part of the codebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.