Skip to content
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

unable to create new payment code #50

Open
josibake opened this issue Sep 3, 2024 · 3 comments
Open

unable to create new payment code #50

josibake opened this issue Sep 3, 2024 · 3 comments

Comments

@josibake
Copy link

josibake commented Sep 3, 2024

First off, great website! Was testing a bit today and tried to create a payment code with a Bolt12 offer and silent payment address, but after > 1 hr it doesn't seem to work.

I noticed the auto-generated usernames have a period in them, which made me wonder how those work with the dns records, e.g., if I wanted to verify the record exists would I use dig txt nearby.anteater.user._bitcoin-payment.twelve.cash or nearbyanteater.user._bitcoin-payment.twelve.cash?

More a general question: how are you managing the txt records for multiple users? From reading BIP353, it seems the idea for Bolt12 is that there is a *.user._bitcoin-payment.twelve.cash record and then some native way to handle the username look via the lightning protocol? But how would this work for something like silent payments, where I want to host potentially millions of users each with their own silent payment address? I realise this is a bit off topic for your project, but was unsure of where to ask this question and figured you might have some insights since you seem to be hosting a potentially unbounded number of txt records for the twelve.cash domain.

@sbddesign
Copy link
Contributor

I apologize I did not se this message earlier. Ok, thank you for the questions and discussion. Let me give you a better response to this in like 20 minutes when I can focus on what you're asking here.

@sbddesign
Copy link
Contributor

@josibake

I noticed the auto-generated usernames have a period in them, which made me wonder how those work with the dns records, e.g., if I wanted to verify the record exists would I use dig txt nearby.anteater.user._bitcoin-payment.twelve.cash or nearbyanteater.user._bitcoin-payment.twelve.cash?

For names that have a period in them, you would use the period in the DNS lookup. My understanding of DNS is that you basically have the TLD, the Domain, and then subdomains. There is nothing more granular than that. So for us it looks like nearby.anteater.user._bitcoin-payment.twelve.cash is a sub-sub-sub-sub-domain, it's really just a sub-domain that includes periods in the string.

I can verify that nearby.anteater does not exist in our zonefile. I'm not sure if that is just an example name you created for this issue or if that is the one you actually tried. Feel free to DM me privately if you need to share any troubleshooting details with sensitive user info.

However, it should NOT take an hour to propagate in most normal situations. So my guess is something messed up and the DNS update never fired. If you can tell me how to replicate the issue, we will fix it.

More a general question: how are you managing the txt records for multiple users?

That's pretty simple. We just create a DNS record for each user. So if Alice, Bob, and Chani all sign up, we create 3 records:

  • alice.user._bitcoin-payment.twelve.cash. bitcoin:lno123...abc
  • bob.user._bitcoin-payment.twelve.cash. bitcoin:lno456...def
  • chani.user._bitcoin-payment.twelve.cash. bitcoin:lno789...ghi

From reading BIP353, it seems the idea for Bolt12 is that there is a *.user._bitcoin-payment.twelve.cash record and then some native way to handle the username look via the lightning protocol?

Yes, there are bLIPs for resolving the DNS lookup over lightning. I think it's like "my node sends out a private onion message requesting a DNS lookup, and then some friendly node does the DNS lookup on my behalf and then sends me the DNSSEC signed response over an onion message, and the friendly node has no idea who it did the DNS lookup for". But don't quote me on that. You can DYOR in the bLIPs repo I think.

But how would this work for something like silent payments, where I want to host potentially millions of users each with their own silent payment address?

Just create millions of DNS records =)


Thanks for the questions and thoughtful discussion. We are actually interested in working more with silent payments. We have a field that supports silent payments in our webapp but have not done the necessary promotion of it to gain support in the SP community. Just let me know how I can replicate your issue, and feel free to reach out to me if you want to chat more about BIP353, I think we have each other on Discord.

@sbddesign
Copy link
Contributor

@josibake are you still experiencing this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants