BCH: I expose my payment address for fun and profit

7 218
Avatar for btcfork
Written by
This user is who they claim to be.
We have manually verified this user via some other channel.
2 years ago

This is the 2nd article of a series on how we could improve funding of BCH infrastructure. The first article, if you haven't read it, is here:

A proposal to crowdfund better BCH infrastructure

It gives some context necessary for the 'Why?' part, so if you haven't read it, I advise it.

Anybody really want this?

I wasn't sure, so I ran a poll on Twitter and Memo to collect some input:

Since the results were positive, I decided to investigate the situation on one of the BCH full node projects, Bitcoin Cash Node (BCHN).

I found that it was possible to add some comments to the "user agent" (sometimes called "version string") that is exposed on the network, but I really preferred to add a separate option which would allow a user to configure a funding address and make the application check that this address is a valid Bitcoin Cash address.

Otherwise, the user could misconfigure something, and the software would not know, and other users trying to fund the node would just not be able to, and the node operator would not get to know the reason unless after some time they carefully checked their configuration for an error.

Instead, I wanted it to be as easy as

bitcoind -fundingaddr=bitcoincash:qptfelt5jlale5xjcvwuvjrwy9szrxun3clfznfr0q

And if the address were invalid, the software would tell you right away.

Exposing a payment address on Bitcoin Cash Node (BCHN)

I made a proof-of-concept implementation in a merge request, MR 1320:

https://gitlab.com/bitcoin-cash-node/bitcoin-cash-node/-/merge_requests/1320

If you would run a BCHN node with such a feature, please consider voicing your support for the MR, or you can do what the maintainers there suggested, and use the existing uacomment option by placing field in your bitcoin.conf config file.

If you prefer a patch against release v24.0.0 state, you can find one here:

https://gitlab.com/btcfork/bitcoin-cash-node/-/commits/btcfork_fundingaddr_on_v24_release

I'll try to update that if the MR gets some significant changes, but it should be usable as-is. See the MR description and Release Notes changes for an overview of the details, but for the most part it's simply sticking a -fundingaddr= option into your node startup parameters or config file.

Using the existing -uacomment option

If you don't trust my patch and are running an official release of BCHN, the good news is that you can already expose a payment address by configuring the -uacomment parameter or config file item.

For example, in your bitcoin.conf file, define

uacomment=<your BCH address goes here>

[UPDATE: As reported by noise.cash user 'ircrp' here, you cannot include a 'bitcoincash:' prefix in front of your address if you use the -uacomment . The software will prevent it as it classifies the : as an unsafe character for that field. I'll need to think about why it does that - maybe it is to stop people from putting random URLs in there (although anybody can modify the software to do that, so it's not effective).]

It should work similar on other nodes, although the option name might be different.

Unfortunately I don't have enough time right now to port the BCHN MR over to BCHUnlimited or other node implementations. But I assume those nodes have similar facilities to let users configure additional information into the user agent string.

If someone wants to take my MR and implement it on some other node, that would be great! Perhaps check with the maintainers of those nodes if that is a feature they would consider accepting into their software.

If not, you can always take my code and implement in your own node software, if you build & run your own from source code.

I'll consider maintaining the patch branch for this feature for some time (once I've sorted out the review comments and maybe made some adaptations based on BCHN maintainers' feedback), so that other BCHN users who want to run from source can download and compare a minimal patch for v24 or future releases.

Currently the patch branch for v24.0.0 is here:

I'll update this post when making changes to that. The current MR will follow the developmental state (GitLab's bitcoin-cash-node master HEAD) unless abandoned.


Next Step

I'll be keeping a look out for nodes on the network which advertise funding addresses!

The next step of my series would be to extract available funding addresses from the network (initially from DNS seeder data)

Later that might be augmented with p2p data from a node, in order to find not only peers which are around for a long time, but actually provided reliable data service.

Your feedback and ideas are most welcome!

"I think if the entire network were to use this mechanism, each having a BCH address in its uacomment or whatever the net amount of funds raised for all of the nodes on the network, from now until the end of time, would never exceed 0.1 BCH, in total." - Calin Culianu, BCHN maintainer

Mr Culianu may well turn out to be right, but so far, full nodes don't advertise funding addresses, so nobody really knows how to fund them. Chicken & egg!

It's also hard for people to put up full nodes reaching many other countries. Sometimes it's just easier for a local person to do.

When will we find first Bitcoin Cash nodes in El Salvador? Venezuela? Colombia? Iceland? or the Phillippines?

If I see a reliable node popping up in a geographically new place, I might feel like contributing a bit.

Look at what happened last time people said voluntary funding of infrastructure wouldn't work.

Have fun on the network!


Image credits:

Sponsors of btcfork
empty
empty

32
$ 57.09
$ 53.67 from @TheRandomRewarder
$ 2.00 from @Pantera
$ 0.53 from @Telesfor
+ 13
Avatar for btcfork
Written by
This user is who they claim to be.
We have manually verified this user via some other channel.
2 years ago

Comments

A seguir hablando de la versatilidad del BCH, y que cada día se de a conocer mas esta criptomonedas y sus ventajas de uso.

$ 0.00
2 years ago

Sounds like a great idea. I am worried that someday a group working to deanonymize node providers to attack the network (or just to find them and harm them in some way - theft, imprisonment, etc) might use these small transactions to track the node operators down. Might warn them to use fusion or something...

$ 0.00
2 years ago

I will have to strive for 10 lives to attain this level of knowledge... good for you

$ 0.00
2 years ago

Wow I learned your article. It sounds also like you are a smart person, I believe in your capability. Keep it up 💖

$ 0.00
2 years ago

There is a big goal behind this project. But the goal still looks as though the project needs to complete so that it will express itself while it's in use.

$ 0.00
2 years ago

Are you a computer engineer?

$ 0.01
2 years ago

No, but I have replaced a graphics card and motherboard :-)

$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
2 years ago