--- Log opened Sat Nov 10 00:00:17 2018 00:30 -!- rusty [~rusty@pdpc/supporter/bronze/rusty] has quit [Ping timeout: 245 seconds] 01:43 -!- ken2812221 [~ken281222@110.50.135.219] has quit [Read error: Connection reset by peer] 01:43 -!- ken2812221_ [~ken281222@110.50.135.219] has joined #c-lightning 02:56 -!- spinza [~spin@155.93.246.187] has quit [Quit: Coyote finally caught up with me...] 03:13 -!- spinza [~spin@155.93.246.187] has joined #c-lightning 03:16 < blockstream_bot> [Tim Ho, Blockstream] So it's just a matter of adding the code? There are side apps like nanotip that run a small server to allow for donations. But if a BOLT spec is defined for being able to connect to a node and say, "please send me an invoice with amount X" then c-lightning could, without any security issue, be able to respond to such a request directly? Or, would the request need to be onion-routed to the node 03:17 < blockstream_bot> [Tim Ho, Blockstream] Assuming there are normal safeguards against spamming invoice requests, etc. 03:18 < blockstream_bot> [Tim Ho, Blockstream] I guess I'm just surprised that it seems like such an obvious and useful feature, that I am probably missing something significant. 03:31 < blockstream_bot> [moli, Blockstream] @tak have you ever made a lightning purchase? 03:32 < blockstream_bot> [moli, Blockstream] like buying some stickers from Blockstream store? 03:40 < blockstream_bot> [Tim Ho, Blockstream] Yeah, I built a website for freelancing and it uses Lightning Network payments 03:40 < blockstream_bot> [Tim Ho, Blockstream] It's easy for people to pay for posting a task, but hard for me to pay those who perform the task. 03:41 < blockstream_bot> [Tim Ho, Blockstream] I want them to be able to pay without generating an invoice and pasting it into my app, so that I don't have to hold on to funds longer than I need to. 03:43 < blockstream_bot> [Tim Ho, Blockstream] I was hoping there would be an API to request an invoice, so that the tasker could simply register their node, and I would attempt to send payment automatically when the task is complete. If their node is down/offline, I could attempt to pull an invoice every 5 minutes or something, but at least wouldn't require them to manually do anything in order to receive a payment. 03:44 < blockstream_bot> [Tim Ho, Blockstream] It's fine for a sticker purchase, but if they are making 10's of purchases+ a minute doing various microtasks, it really feels like a hassle to copy-paste an invoice over and over again. 03:45 < blockstream_bot> [Tim Ho, Blockstream] Currently, I just hold their earnings in a custodial wallet, and they withdraw their balance at any time, but not totally ideal. 03:47 < blockstream_bot> [Tim Ho, Blockstream] They can go peer-to-peer as well, but again, for earning 12 satoshi, it's a lot of steps. 03:48 < blockstream_bot> [moli, Blockstream] i'm lost, not sure what you're saying, but you were asking about if it's safe to pay an invoice? 03:48 < blockstream_bot> [moli, Blockstream] unless the node has been hijacked, then you're not paying the target 03:48 < blockstream_bot> [Tim Ho, Blockstream] No, safe to add a potential API call to the BOLT spec such that c-lightning could listen for such requests, and respond with a fresh, new invoice. 03:49 < blockstream_bot> [moli, Blockstream] isn't that what merchants do? 03:50 < blockstream_bot> [Tim Ho, Blockstream] Well, in my case, the customer is earning BTC. So it's kind of the reverse case. 03:50 < blockstream_bot> [Tim Ho, Blockstream] And each one of my users probably doesn't want to set up a BTCPay server, although they could. 03:51 < blockstream_bot> [Tim Ho, Blockstream] I could ask them all to run a server, but isn't that what a lightning node is already? 03:52 < blockstream_bot> [moli, Blockstream] btcpay is complex, i've only seen a handful of them, and it seems to me none of them works on lightning 03:52 < blockstream_bot> [Tim Ho, Blockstream] Yep 03:52 < blockstream_bot> [Tim Ho, Blockstream] So if I make a game, where every time the user kills a zombie, i want them to earn 1 satoshi ... how do I pay them? 03:53 < blockstream_bot> [moli, Blockstream] hm or maybe Nicolas' btcpay node is the only one that works on lightning that i know because i have sent many txs to his node to donate to him 03:53 < blockstream_bot> [Tim Ho, Blockstream] I could collect the kills in aggregate, but if I want real-time payments, I'd like to just zap a payment to them every time by requesting an invoice from their node, and paying them out immediately. 03:53 < blockstream_bot> [Tim Ho, Blockstream] Yeah, if it's one merchant or Nicolas or person who needs to receive donations, it's pretty easy to set up a donation server. 03:53 < blockstream_bot> [moli, Blockstream] ah i see what you're trying to do 03:54 < blockstream_bot> [moli, Blockstream] maybe you need to set up a plan: you don't pay out every 1 sat that users earn but you let them earn up to a certain amount, maybe 1000 sat and then you let them do a "withdraw" 03:55 < blockstream_bot> [Tim Ho, Blockstream] That's exactly what I do now :) And I don't want to be such a custodian 03:55 < blockstream_bot> [Tim Ho, Blockstream] So I just was wondering, is there a fundamental security reason why we couldn't have such an API built-in to nodes. 03:55 < blockstream_bot> [Tim Ho, Blockstream] Or is it just, someone needs to write the code? 03:56 < blockstream_bot> [moli, Blockstream] not sure, but not every c-lightning user has a need to do what you're doing 03:56 < blockstream_bot> [Tim Ho, Blockstream] To receive money automatically? I feel like that's kind of... common? 03:56 < blockstream_bot> [moli, Blockstream] well yes but paying automatically without an invoice is not safe 03:57 < blockstream_bot> [Tim Ho, Blockstream] Ah, why isn't it safe 03:57 < blockstream_bot> [moli, Blockstream] because you'll keep using a preimage over and over 03:57 < blockstream_bot> [moli, Blockstream] let me find a link that has the info for you 03:58 < blockstream_bot> [Tim Ho, Blockstream] I'm not sure what you mean by "paying without an invoice". 03:58 < blockstream_bot> [Tim Ho, Blockstream] The process would be two-step. 1, request a fresh new invoice from the node, 2. pay that new invoice 03:59 < blockstream_bot> [Tim Ho, Blockstream] Each time it would be "as if the owner clicked on create-new-invoice and copy-pasted it to me" 03:59 < blockstream_bot> [Tim Ho, Blockstream] There's no recycling 03:59 < blockstream_bot> [moli, Blockstream] oh then you can code that? 03:59 < blockstream_bot> [Tim Ho, Blockstream] Yep 03:59 < blockstream_bot> [moli, Blockstream] then there's no problem 04:00 < blockstream_bot> [Tim Ho, Blockstream] It's easy to do a REST or RPC call to the node, get a JSON response with a fresh invoice. Then my server can pay it. 04:00 < blockstream_bot> [Tim Ho, Blockstream] I mean, it's "easy-in-my-mind". 04:01 < blockstream_bot> [Tim Ho, Blockstream] It's too bad I don't know enough C programming to create a PR for what I'm thinking about. But realistically my security skills are not up to par to build it into the node. But as far as consuming APIs, I'm pretty comfortable. 04:02 < blockstream_bot> [moli, Blockstream] now i'm lost again lol 04:03 < blockstream_bot> [moli, Blockstream] you said you could code that but now it seems you're saying you can't 04:03 < blockstream_bot> [Tim Ho, Blockstream] Oh, I can code the part that uses the API. 04:03 < blockstream_bot> [moli, Blockstream] not sure where this convo is going :p 04:03 < blockstream_bot> [Tim Ho, Blockstream] I can't code the part that serves the API (e.g., make changes to the c-lightning app). 04:04 < blockstream_bot> [moli, Blockstream] have you seen http://lnd.fun? 04:04 < blockstream_bot> [Tim Ho, Blockstream] I've been going through the c-lightning code and I only vaguely understand it. I've written beginner C programs only. 04:04 < blockstream_bot> [Tim Ho, Blockstream] Yeah, love that interface 04:04 < blockstream_bot> [moli, Blockstream] you can make http://lnd.fun to pay you, within the rules of lightning 04:05 < blockstream_bot> [moli, Blockstream] ie, taking things into consideration like 1% reserve and commit_fee 04:05 < blockstream_bot> [moli, Blockstream] and liquidity available 04:05 < blockstream_bot> [Tim Ho, Blockstream] Isn't http://lnd.fun just a UI for an LND node? 04:06 < blockstream_bot> [Tim Ho, Blockstream] Are you saying I could add the public API for generating an invoice on http://lnd.fun? 04:07 < blockstream_bot> [Tim Ho, Blockstream] I'm just talking about making `lightning-cli invoice [msatoshi]` become available not only to the node owner, but to anyone outside of the node publicly. 04:08 < blockstream_bot> [Tim Ho, Blockstream] Or `lncli addinvoice --amt=6969 --memo="A coffee for Roger"` 04:10 < blockstream_bot> [Tim Ho, Blockstream] so you could do, say `lightning-cli fetchinvoice [msatoshi] [description] [node_id]` 04:10 < blockstream_bot> [Tim Ho, Blockstream] maybe it would need to be enabled by configuration, and off by default 04:11 < blockstream_bot> [Tim Ho, Blockstream] but it would basically open a port so that you could do a REST API call to the node like "GET [node_ip]:[node_port] /fetch/invoice" 04:11 < blockstream_bot> [Tim Ho, Blockstream] and it would return: 04:11 < blockstream_bot> ``` 04:11 < blockstream_bot> { 04:11 < blockstream_bot> "bolt11": "lninvoicehashgoeshere...." 04:11 < blockstream_bot> } 04:11 < blockstream_bot> ``` 04:12 < blockstream_bot> [Tim Ho, Blockstream] Then my side would take that invoice and attempt to pay it through `lightning-cli pay [bolt11]` 04:14 < blockstream_bot> [Tim Ho, Blockstream] And again, the beauty of this is that the receiver doesn't have to do anything manually. Since the payer is performing all the requests needed to get a new invoice, the payee gets paid completely unaware. 04:15 < blockstream_bot> [Tim Ho, Blockstream] I guess I'm not good at explaining what I'm trying to do :) 04:22 < blockstream_bot> [moli, Blockstream] ah i think i understand now what you're saying.. 04:23 < blockstream_bot> [moli, Blockstream] i wouldn't want this feature in my node or my node would be dossed to hell :p 04:24 < blockstream_bot> [moli, Blockstream] if a node gets 1000 of these requests every second it'll be dead 04:37 < blockstream_bot> [Tim Ho, Blockstream] But what if there was a fee associated to pulling an invoice? 04:37 < blockstream_bot> [Tim Ho, Blockstream] You'd get rich from being dossed. 04:38 < blockstream_bot> [Tim Ho, Blockstream] Plus, wouldn't you add all the same protections that bitcoind has against malicious peers? You know, detect spam requests, block them, or blackhole them, etc? 04:39 < blockstream_bot> [Tim Ho, Blockstream] There's always a risk of bad peers. LND/c-lightning already have a port open to listen for BOLT-compliant messages. 04:39 < blockstream_bot> [Tim Ho, Blockstream] This would simply be, one more additional BOLT-compliant message. 04:39 < blockstream_bot> [moli, Blockstream] you're wanting to create unnessary code and asking for troubles :p 04:40 < blockstream_bot> [Tim Ho, Blockstream] Why is it unnecessary though? If the point of LN is to handle microtransactions, then the more we can securely/safely automate, the more realistic it is. 04:40 < blockstream_bot> [Tim Ho, Blockstream] Because my fingers are going to die from clicking or typing and copy-pasting invoices every 3 satoshi earned. 04:41 < blockstream_bot> [moli, Blockstream] i'm talking about you want to be able to send requests to other users and make them issue invoices 04:41 < blockstream_bot> [Tim Ho, Blockstream] Yes I know 04:41 < blockstream_bot> [moli, Blockstream] this is only your usecase, not mine, not others 04:41 < blockstream_bot> [Tim Ho, Blockstream] Hmm... :( 04:41 < blockstream_bot> [moli, Blockstream] so if you submit a PR to c-lightning for this i doubt it'll be approved 04:42 < blockstream_bot> [Tim Ho, Blockstream] Because nobody needs to automatically receive payments? 04:43 < blockstream_bot> [Tim Ho, Blockstream] It feels like we're missing half the whole transaction pie. 04:43 < blockstream_bot> [Tim Ho, Blockstream] Like, LN is only designed for the merchant-customer use-case. And not for... so many others. 04:44 < blockstream_bot> [Tim Ho, Blockstream] Gaming platforms, earning platforms, freelancing, casino games/gambling, easy refunds, etc. 04:44 < blockstream_bot> [Tim Ho, Blockstream] Starbucks isn't the only popular use case, I think 04:45 < blockstream_bot> [Tim Ho, Blockstream] I mean, I loved Bitcoin because how easy it was to receive and send payments. 04:45 < blockstream_bot> [Tim Ho, Blockstream] With LN, sending payments is beautiful but receiving is a nightmare. 04:45 < booyah> it can be automated one day 04:45 < blockstream_bot> [moli, Blockstream] eh.. there're already gaming sites on LN and they work fine 04:45 < booyah> by external program. Such program could have some anti-spam in it, before giving out invoice 04:45 < blockstream_bot> [Tim Ho, Blockstream] Fine to who? Fine to people who love 3rd party trust and custodial wallets? 04:46 < booyah> moli, I agree with that use case 04:46 < blockstream_bot> [moli, Blockstream] fine to many people 04:46 < blockstream_bot> [Tim Ho, Blockstream] Yeah, I guess I didn't want to require every single one of my users to have to download an entirely separate app for receiving their refunds or earnings. 04:46 < booyah> just giving some kind of permanent address, like donation QR on tshirt / wall 04:46 < blockstream_bot> [Tim Ho, Blockstream] Yeah, and that QR would simply be the node ID. 04:47 < booyah> could be yea. But I think that also can be implemented extnerally to c-lightning / LND 04:47 < blockstream_bot> [moli, Blockstream] right, what you're looking for is paying to node pubkey and not invoices, which some devs are working on but so far what they found is still not safe 04:47 < blockstream_bot> [Tim Ho, Blockstream] It 100% can be implemented externally, but if most people will want to receive sometimes (refunds, etc.) why not just make it standard? 04:48 < blockstream_bot> [moli, Blockstream] @tak we tested this on LND testnet for a long time 04:48 < blockstream_bot> [Tim Ho, Blockstream] But why node pubkeys? Why not invoices, but just request to have an invoice created? 04:49 < blockstream_bot> [Tim Ho, Blockstream] Two-step seems identical to the safe, secure way we do payments already. 04:49 < blockstream_bot> [moli, Blockstream] here's my stream of 5000 txs paying to two nodes each tx : https://paste.ubuntu.com/23973377/ 04:50 < blockstream_bot> [moli, Blockstream] paying without invoices 04:50 < blockstream_bot> [moli, Blockstream] that's what many people want and i think Rene has a way of doing it 04:51 < blockstream_bot> [Tim Ho, Blockstream] I see, so it's not that we can't do 2-step, but people are looking for a more efficient way to do it 04:51 < blockstream_bot> [Tim Ho, Blockstream] I still feel it's a lot more secure to build on the existing invoice concept, than try to go without invoices. 04:51 < blockstream_bot> [Tim Ho, Blockstream] Fewer variables to worry about. 04:52 < blockstream_bot> [Tim Ho, Blockstream] Not that safely handling API requests is trivial or anything, but that's already part of the mechanics of communication between nodes anyways. 04:53 < blockstream_bot> [Tim Ho, Blockstream] I feel like we can piggy-back on both the node-to-node communication or even gossip, and piggy-back on the already existing invoice spec and implementation. 04:53 < blockstream_bot> [moli, Blockstream] https://mobile.twitter.com/renepickhardt/status/1051963539093635072%3Cbr%3E 04:54 < blockstream_bot> [Tim Ho, Blockstream] But I could 100% see that people would think a 2-step solution is kludgy. 04:54 < blockstream_bot> [moli, Blockstream] https://mobile.twitter.com/renepickhardt/status/1051746295482896384 04:54 < blockstream_bot> [Tim Ho, Blockstream] Which is a case to externalize it. 04:55 < blockstream_bot> [Tim Ho, Blockstream] Nice! Thank you @snr.00000001 gonna check out the video 04:55 < blockstream_bot> [moli, Blockstream] yea i want to test this to see what it's lik 05:02 < blockstream_bot> [Tim Ho, Blockstream] Oh my gosh, that seems so much like a bigger hack than just asking for an invoice :p 05:02 < blockstream_bot> [Tim Ho, Blockstream] It's brilliant though 05:03 < blockstream_bot> [Tim Ho, Blockstream] Which maybe means we could generalize it, so we don't think of fees as fees anymore, but reverse payments. 05:03 < blockstream_bot> [Tim Ho, Blockstream] I think the reality is, automation is coming, it's just not here yet. 05:04 < blockstream_bot> [Tim Ho, Blockstream] And that's for both sending and receiving payments. 05:14 < blockstream_bot> [moli, Blockstream] automation of what? 06:09 < blockstream_bot> [Tim Ho, Blockstream] of this: https://blockstream.slack.com/archives/CA5GF8M9U/p1541853931157000 07:38 -!- ken2812221_ [~ken281222@110.50.135.219] has quit [Ping timeout: 240 seconds] 08:26 < notmike> sadly it takes ~30m to setup and close a lightning channel so not very convenient for p2p 08:26 < notmike> excuse me, it takes over an hour to open and close 08:28 < notmike> any way to speed that up? Is it really necessary to wait 3 confirms? I suppose that addresses the potential for double spends but geez 08:39 -!- ctrlbreak [~ctrlbreak@142.162.20.53] has joined #c-lightning 09:23 -!- cubancorona [cubancoron@gateway/vpn/privateinternetaccess/cubancorona] has joined #c-lightning 10:03 -!- mn3monic [jsz@unaffiliated/mn3monic] has quit [Ping timeout: 250 seconds] 10:11 -!- mn3monic [~mn3monic@unaffiliated/mn3monic] has joined #c-lightning 10:16 -!- spinza [~spin@155.93.246.187] has quit [Quit: Coyote finally caught up with me...] 10:16 -!- mn3monic [~mn3monic@unaffiliated/mn3monic] has quit [Remote host closed the connection] 10:18 -!- mn3monic [jsz@unaffiliated/mn3monic] has joined #c-lightning 10:28 < blockstream_bot> [Leo, Blockstream] Signing up for a bank account or credit card takes days or weeks. Half an hour for lightning is a bargain. 10:28 < blockstream_bot> Once youre on board you dont need to wait ever again to have funds settled with finality in your account 10:30 < blockstream_bot> [Daniel Williams, Blockstream] ^ 10:37 -!- spinza [~spin@155.93.246.187] has joined #c-lightning 11:54 < blockstream_bot> [Glenn Willen, Blockstream] one thing that can help is 'walletless' channel opens -- instead of having to move funds to a lightning wallet and then separately open a channel, with SIGHASH_NOINPUT you could start a channel open and then send funds directly into the channel from an outside wallet, without the extra step 11:55 < blockstream_bot> [Glenn Willen, Blockstream] there was some mailing list discussion about it 14:01 -!- spinza [~spin@155.93.246.187] has quit [Quit: Coyote finally caught up with me...] 14:16 -!- spinza [~spin@155.93.246.187] has joined #c-lightning 15:32 -!- ken2812221 [~ken281222@110.50.135.219] has joined #c-lightning 15:52 -!- ken2812221 [~ken281222@110.50.135.219] has quit [Ping timeout: 268 seconds] 18:04 -!- grubles [~grubles@unaffiliated/grubles] has quit [Remote host closed the connection] 18:15 -!- grubles [~grubles@unaffiliated/grubles] has joined #c-lightning 19:36 -!- justanotheruser [~justanoth@unaffiliated/justanotheruser] has quit [Ping timeout: 244 seconds] 19:38 -!- justanotheruser [~justanoth@unaffiliated/justanotheruser] has joined #c-lightning 19:55 -!- justanotheruser [~justanoth@unaffiliated/justanotheruser] has quit [Ping timeout: 246 seconds] 20:01 -!- rusty [~rusty@pdpc/supporter/bronze/rusty] has joined #c-lightning 20:04 -!- mn3monic [jsz@unaffiliated/mn3monic] has quit [Excess Flood] 20:04 -!- justanotheruser [~justanoth@unaffiliated/justanotheruser] has joined #c-lightning 20:05 -!- mn3monic [jsz@unaffiliated/mn3monic] has joined #c-lightning 20:08 -!- rusty [~rusty@pdpc/supporter/bronze/rusty] has quit [Ping timeout: 268 seconds] 20:11 -!- justanotheruser [~justanoth@unaffiliated/justanotheruser] has quit [Ping timeout: 252 seconds] 20:39 -!- booyah [~bb@193.25.1.157] has quit [Read error: Connection reset by peer] 20:40 -!- booyah [~bb@193.25.1.157] has joined #c-lightning 20:46 -!- spinza [~spin@155.93.246.187] has quit [Quit: Coyote finally caught up with me...] 20:56 -!- spinza [~spin@155.93.246.187] has joined #c-lightning 21:59 -!- blockstream_bot [blockstrea@gateway/shell/sameroom/x-rellmfrflzdhuffb] has left #c-lightning [] 21:59 -!- blockstream_bot [blockstrea@gateway/shell/sameroom/x-rellmfrflzdhuffb] has joined #c-lightning 22:30 -!- ken2812221 [~ken281222@110.50.135.219] has joined #c-lightning 23:15 -!- grubles [~grubles@unaffiliated/grubles] has quit [Remote host closed the connection] 23:16 -!- grubles [~grubles@unaffiliated/grubles] has joined #c-lightning --- Log closed Sun Nov 11 00:00:18 2018