<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated></updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1l3sj8amnurgf3cu3p2hhcaham90khafc4vgsmymqdnn0k3kanulsghwq5p.rss" />
  <link href="https://nostr.ae/npub1l3sj8amnurgf3cu3p2hhcaham90khafc4vgsmymqdnn0k3kanulsghwq5p" />
  <id>https://nostr.ae/npub1l3sj8amnurgf3cu3p2hhcaham90khafc4vgsmymqdnn0k3kanulsghwq5p</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsyjggtkuheg3pq90yvk3jy2whw3v5h73d62jd09zw6q9jg3nfyt5gzyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7jyrnuk</id>
    
      <title type="html">📅 Original date posted:2015-06-16 📝 Original message:Just ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyjggtkuheg3pq90yvk3jy2whw3v5h73d62jd09zw6q9jg3nfyt5gzyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7jyrnuk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdwl2ztq7ngxxjjqydpvquz74mvr3ghee3xyh7e9c9djupx25mhtsyjf5fl&#39;&gt;nevent1q…f5fl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-16&lt;br/&gt;📝 Original message:Just thinking off the top of my head here:&lt;br/&gt;&lt;br/&gt;What if SPV wallets were exempt from the fee? Only full nodes would pay&lt;br/&gt;other full nodes when initially sync&amp;#39;ing the blockchain. Then as long as&lt;br/&gt;you keep your full node running for a long period of time, you&amp;#39;ll&lt;br/&gt;eventually make back the cost you paid to sync initially. This at least&lt;br/&gt;incentives full node operators to keep their node running for as long as&lt;br/&gt;possible once started.&lt;br/&gt;&lt;br/&gt;This still imposes a worse UX on casual users who want full node security,&lt;br/&gt;but don&amp;#39;t want to run a server 24/7 (or perhaps simply aren&amp;#39;t aware that&lt;br/&gt;they have to). These users will watch their balance wither away each time&lt;br/&gt;they open their wallet, but it would be very difficult to explain to them&lt;br/&gt;why that is happening. It would just be frustrating and confusing.&lt;br/&gt;&lt;br/&gt;Also, what happens when a user runs Bitcoin-QT for the first time after&lt;br/&gt;downloading it to try it out? They wouldn&amp;#39;t be able to sync the blockchain.&lt;br/&gt;Even if the wallet has a balance, how would the wallet be able to see that&lt;br/&gt;it has UTXO&amp;#39;s without the ability to sync with the network for free?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Mon, Jun 15, 2015 at 8:49 PM, Kevin Greene &amp;lt;kgreenek at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Mon, Jun 15, 2015 at 8:41 PM, Luke Dashjr &amp;lt;luke at dashjr.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Tuesday, June 16, 2015 3:30:44 AM Kevin Greene wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Would SPV wallets have to pay to connect to the network too? From the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; user&amp;#39;s perspective, it would be somewhat upsetting (and confusing) to&lt;br/&gt;&amp;gt;&amp;gt; see&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; your balance slowly draining every time you open your wallet app. It&lt;br/&gt;&amp;gt;&amp;gt; would&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; also tie up outputs every time you open up your wallet. You may go to&lt;br/&gt;&amp;gt;&amp;gt; pay&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; for something in a coffee shop, only to find that you can&amp;#39;t spend your&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bitcoin because the wallet had to create a transaction to pay to sync&lt;br/&gt;&amp;gt;&amp;gt; with&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; the network.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Also, users of centralized wallet services like Coinbase would not have&lt;br/&gt;&amp;gt;&amp;gt; to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; pay that fee; but users of native wallets like breadwallet would have no&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; such option. This incentivizes users to use centralized wallets.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; So this is kind of imposing a worse user experience on users who want to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; use bitcoin the &amp;#34;right&amp;#34; way. That doesn&amp;#39;t seem like a good thing to me&lt;br/&gt;&amp;gt;&amp;gt; :/&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; SPV isn&amp;#39;t the &amp;#34;right&amp;#34; way either ;)&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ​Hah, fair enough, there is no such thing as the &amp;#34;right&amp;#34; way to do&lt;br/&gt;&amp;gt; anything. But I still think punishing users who use SPV wallets is ​a&lt;br/&gt;&amp;gt; less-than-ideal way to incentive people to run full nodes. Right now SPV is&lt;br/&gt;&amp;gt; the best way that exists for mobile phones to participate in the network in&lt;br/&gt;&amp;gt; a decentralized way. This proposal makes the user experience for mobile&lt;br/&gt;&amp;gt; wallets a little more confusing and annoying.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; If you&amp;#39;re running a full node (the real &amp;#34;right way&amp;#34;), you should be able&lt;br/&gt;&amp;gt;&amp;gt; to&lt;br/&gt;&amp;gt;&amp;gt; earn more bitcoins than you pay out.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Luke&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150615/6dfa5428/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150615/6dfa5428/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:38:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdwl2ztq7ngxxjjqydpvquz74mvr3ghee3xyh7e9c9djupx25mhtszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n79gg8gn</id>
    
      <title type="html">📅 Original date posted:2015-06-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdwl2ztq7ngxxjjqydpvquz74mvr3ghee3xyh7e9c9djupx25mhtszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n79gg8gn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst57369dhdmnu7zcp24d3ug4uqpyce45vn8qc92rsrmnzw42npf9s3vp2xd&#39;&gt;nevent1q…p2xd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-16&lt;br/&gt;📝 Original message:On Mon, Jun 15, 2015 at 8:41 PM, Luke Dashjr &amp;lt;luke at dashjr.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Tuesday, June 16, 2015 3:30:44 AM Kevin Greene wrote:&lt;br/&gt;&amp;gt; &amp;gt; Would SPV wallets have to pay to connect to the network too? From the&lt;br/&gt;&amp;gt; &amp;gt; user&amp;#39;s perspective, it would be somewhat upsetting (and confusing) to see&lt;br/&gt;&amp;gt; &amp;gt; your balance slowly draining every time you open your wallet app. It&lt;br/&gt;&amp;gt; would&lt;br/&gt;&amp;gt; &amp;gt; also tie up outputs every time you open up your wallet. You may go to pay&lt;br/&gt;&amp;gt; &amp;gt; for something in a coffee shop, only to find that you can&amp;#39;t spend your&lt;br/&gt;&amp;gt; &amp;gt; bitcoin because the wallet had to create a transaction to pay to sync&lt;br/&gt;&amp;gt; with&lt;br/&gt;&amp;gt; &amp;gt; the network.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Also, users of centralized wallet services like Coinbase would not have&lt;br/&gt;&amp;gt; to&lt;br/&gt;&amp;gt; &amp;gt; pay that fee; but users of native wallets like breadwallet would have no&lt;br/&gt;&amp;gt; &amp;gt; such option. This incentivizes users to use centralized wallets.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; So this is kind of imposing a worse user experience on users who want to&lt;br/&gt;&amp;gt; &amp;gt; use bitcoin the &amp;#34;right&amp;#34; way. That doesn&amp;#39;t seem like a good thing to me :/&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; SPV isn&amp;#39;t the &amp;#34;right&amp;#34; way either ;)&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;​Hah, fair enough, there is no such thing as the &amp;#34;right&amp;#34; way to do&lt;br/&gt;anything. But I still think punishing users who use SPV wallets is ​a&lt;br/&gt;less-than-ideal way to incentive people to run full nodes. Right now SPV is&lt;br/&gt;the best way that exists for mobile phones to participate in the network in&lt;br/&gt;a decentralized way. This proposal makes the user experience for mobile&lt;br/&gt;wallets a little more confusing and annoying.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If you&amp;#39;re running a full node (the real &amp;#34;right way&amp;#34;), you should be able to&lt;br/&gt;&amp;gt; earn more bitcoins than you pay out.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Luke&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150615/08c20ffe/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150615/08c20ffe/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:38:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2cx0j98452ajjgaz04h049w4w68y7emq9g5sqz7mr62mn29ulm5czyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7ghtqqh</id>
    
      <title type="html">📅 Original date posted:2015-06-16 📝 Original message:Would ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2cx0j98452ajjgaz04h049w4w68y7emq9g5sqz7mr62mn29ulm5czyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7ghtqqh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9z8zq0qkcqqnlc3n0pew8cnfdc4h9p2ylme8nl5pd90zndzghe7sde3chs&#39;&gt;nevent1q…3chs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-16&lt;br/&gt;📝 Original message:Would SPV wallets have to pay to connect to the network too? From the&lt;br/&gt;user&amp;#39;s perspective, it would be somewhat upsetting (and confusing) to see&lt;br/&gt;your balance slowly draining every time you open your wallet app. It would&lt;br/&gt;also tie up outputs every time you open up your wallet. You may go to pay&lt;br/&gt;for something in a coffee shop, only to find that you can&amp;#39;t spend your&lt;br/&gt;bitcoin because the wallet had to create a transaction to pay to sync with&lt;br/&gt;the network.&lt;br/&gt;&lt;br/&gt;Also, users of centralized wallet services like Coinbase would not have to&lt;br/&gt;pay that fee; but users of native wallets like breadwallet would have no&lt;br/&gt;such option. This incentivizes users to use centralized wallets.&lt;br/&gt;&lt;br/&gt;So this is kind of imposing a worse user experience on users who want to&lt;br/&gt;use bitcoin the &amp;#34;right&amp;#34; way. That doesn&amp;#39;t seem like a good thing to me :/&lt;br/&gt;&lt;br/&gt;On Mon, Jun 15, 2015 at 1:12 PM, sickpig at gmail.com &amp;lt;sickpig at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi Raystonn&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Mon, Jun 15, 2015 at 9:36 PM, Raystonn . &amp;lt;raystonn at hotmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I am only partially through the content at the below link, and I am very&lt;br/&gt;&amp;gt; impressed.  Has Justus Ranvier began work on implementation of the ideas&lt;br/&gt;&amp;gt; contained therein?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I don&amp;#39;t know if he or someone else has begun writing code to implement&lt;br/&gt;&amp;gt; what was described in the liked post, but I&amp;#39;m sure he will reply to&lt;br/&gt;&amp;gt; you since he&amp;#39;s subscribed to this mailing list.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; From: sickpig at gmail.com&lt;br/&gt;&amp;gt; &amp;gt; Sent: Monday, June 15, 2015 12:18 PM&lt;br/&gt;&amp;gt; &amp;gt; To: Raystonn .&lt;br/&gt;&amp;gt; &amp;gt; Cc: Bitcoin Dev&lt;br/&gt;&amp;gt; &amp;gt; Subject: Re: [Bitcoin-development] The Bitcoin Node Market&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Sorry for top posting and the brevity but I&amp;#39;m typing from my phone&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; You shoud be interested in this post by Justus Ranvier then:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://bitcoinism.liberty.me/economic-fallacies-and-the-block-size-limit-part-2-price-discovery/&#34;&gt;https://bitcoinism.liberty.me/economic-fallacies-and-the-block-size-limit-part-2-price-discovery/&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Jun 15, 2015 8:57 PM, &amp;#34;Raystonn .&amp;#34; &amp;lt;raystonn at hotmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; I have been toying with an idea and figured I&amp;#39;d run it by everyone here&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; before investing further time in it.  The goal here is to make it&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; sustainable, and perhaps profitable, to run full nodes on the Bitcoin&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Network in the long term.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; - Nodes can participate in a market wherein they are paid by nodes,&lt;br/&gt;&amp;gt; wallets,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; and other services to supply Bitcoin Network data.  Payment should be&lt;br/&gt;&amp;gt; based&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; on the cost imposed on the Node to do the work and send the data, but&lt;br/&gt;&amp;gt; can be&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; set in any way the node operator desires.  It&amp;#39;s a free market.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; - Nodes that are mostly leeching data from the Bitcoin Network, such as&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; those that do not receive inbound connections to port 8333, will send&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; payments to the nodes they connect to, but will likely receive no&lt;br/&gt;&amp;gt; payments&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; from other nodes, wallets, and other services.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; - Nodes that are providing balanced full service to the Bitcoin Network&lt;br/&gt;&amp;gt; will&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; tend to have a balance of payments coming in and going out with regards&lt;br/&gt;&amp;gt; to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; other balanced full service nodes, leaving them revenue neutral there.&lt;br/&gt;&amp;gt; But&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; they will receive payments from leech nodes, wallets, and other&lt;br/&gt;&amp;gt; services.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The net effect here is that the cost to run nodes will be shared by&lt;br/&gt;&amp;gt; those&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; who are using the Bitcoin network but not contributing by running a full&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; node.  A market will develop for fees to connect to the Bitcoin Network&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; which should help cover the cost of running the Network.  It&amp;#39;s still&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; possible to continue offering access to your node for free as there is&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; nothing forcing you to charge a fee.  But this isn&amp;#39;t very sustainable&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; long-run.  Market efficiencies should eventually mean nodes take in only&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; what is required to keep the Network operational.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Raystonn&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150615/3915b397/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150615/3915b397/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:38:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdwwmcvkegfm8hrrlhap4ksy7drsw93agxld7x8c02zhs5wwg0h2gzyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n79883jj</id>
    
      <title type="html">📅 Original date posted:2015-05-26 📝 Original message:This ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdwwmcvkegfm8hrrlhap4ksy7drsw93agxld7x8c02zhs5wwg0h2gzyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n79883jj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxs3vasqv8zw50205zjyfk9079sq2gf4dlq0a52zysdpmrtug8ngs94qhnh&#39;&gt;nevent1q…qhnh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-05-26&lt;br/&gt;📝 Original message:This is true, but the device doesn&amp;#39;t know if the LAN it&amp;#39;s on is a safe&lt;br/&gt;network or a hotel wifi, for example. So there would be a tricky UX there.&lt;br/&gt;You&amp;#39;d have to ask the user during set up if this is a trusted LAN or not;&lt;br/&gt;or something like that. That may not be an issue though depending on the&lt;br/&gt;nature of the product. For example, Chromecast doesn&amp;#39;t need any security&lt;br/&gt;protections against trolls on the same LAN. I guess it just depends on what&lt;br/&gt;you&amp;#39;re planning to build.&lt;br/&gt;&lt;br/&gt;On Mon, May 25, 2015 at 9:56 PM, Matt Whitlock &amp;lt;bip at mattwhitlock.name&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Who would be performing a Sybil attack against themselves? We&amp;#39;re talking&lt;br/&gt;&amp;gt; about a LAN here. All the nodes would be under the control of the same&lt;br/&gt;&amp;gt; entity. In that case, you actually want them all connecting solely to a&lt;br/&gt;&amp;gt; central hub node on the LAN, and the hub node should connect to &amp;#34;diverse&lt;br/&gt;&amp;gt; and unpredictable&amp;#34; other nodes on the Bitcoin network.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Monday, 25 May 2015, at 9:46 pm, Kevin Greene wrote:&lt;br/&gt;&amp;gt; &amp;gt; This is something you actually don&amp;#39;t want. In order to make it as&lt;br/&gt;&amp;gt; difficult&lt;br/&gt;&amp;gt; &amp;gt; as possible for an attacker to perform a sybil attack, you want to&lt;br/&gt;&amp;gt; choose a&lt;br/&gt;&amp;gt; &amp;gt; set of peers that is as diverse, and unpredictable as possible.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Mon, May 25, 2015 at 9:37 PM, Matt Whitlock &amp;lt;bip at mattwhitlock.name&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; This is very simple to do. Just ping the &amp;#34;all nodes&amp;#34; address (ff02::1)&lt;br/&gt;&amp;gt; and&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; try connecting to TCP port 8333 of each node that responds. Shouldn&amp;#39;t&lt;br/&gt;&amp;gt; take&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; but more than a few milliseconds on any but the most densely populated&lt;br/&gt;&amp;gt; LANs.&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; On Monday, 25 May 2015, at 11:06 pm, Jim Phillips wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; Is there any work being done on using some kind of zero-conf service&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; discovery protocol so that lightweight clients can find a full node&lt;br/&gt;&amp;gt; on&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; same LAN to peer with rather than having to tie up WAN bandwidth?&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; I envision a future where lightweight devices within a home use SPV&lt;br/&gt;&amp;gt; over&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; WiFi to connect with a home server which in turn relays the&lt;br/&gt;&amp;gt; transactions&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; they create out to the larger and faster relays on the Internet.&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; In a situation where there are hundreds or thousands of small SPV&lt;br/&gt;&amp;gt; devices&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; in a single home (if 21, Inc. is successful) monitoring the&lt;br/&gt;&amp;gt; blockchain,&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; this could result in lower traffic across the slow WAN connection.&lt;br/&gt;&amp;gt; And&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; yes, I realize it could potentially take a LOT of these devices&lt;br/&gt;&amp;gt; before&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; total bandwidth is greater than downloading a full copy of the&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; blockchain,&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; but there&amp;#39;s other reasons to host your own full node -- trust being&lt;br/&gt;&amp;gt; one.&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; *James G. Phillips IV*&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;lt;&lt;a href=&#34;https://plus.google.com/u/0/113107039501292625391/posts&amp;gt&#34;&gt;https://plus.google.com/u/0/113107039501292625391/posts&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;lt;&lt;a href=&#34;http://www.linkedin.com/in/ergophobe&amp;gt&#34;&gt;http://www.linkedin.com/in/ergophobe&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; *&amp;#34;Don&amp;#39;t bunt. Aim out of the ball park. Aim for the company of&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; immortals.&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; -- David Ogilvy*&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt;  *This message was created with 100% recycled electrons. Please think&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; twice&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; before printing.*&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; One dashboard for servers and applications across&lt;br/&gt;&amp;gt; Physical-Virtual-Cloud&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Widest out-of-the-box monitoring support with 50&#43; applications&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Performance metrics, stats and reports that give you Actionable&lt;br/&gt;&amp;gt; Insights&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Deep dive visibility with transaction tracing using APM Insight.&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &lt;a href=&#34;http://ad.doubleclick.net/ddm/clk/290420510;117567292;y&#34;&gt;http://ad.doubleclick.net/ddm/clk/290420510;117567292;y&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150525/05bd344b/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150525/05bd344b/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:35:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz4uvz4fgf8540xn8dpfpnhy2tz7myc0808mmty04kz0t7fsq095qzyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7nwwy5h</id>
    
      <title type="html">📅 Original date posted:2015-05-26 📝 Original message:This ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz4uvz4fgf8540xn8dpfpnhy2tz7myc0808mmty04kz0t7fsq095qzyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7nwwy5h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswghkkqpsrhk9gg0h3z5827xp3kr9kuh8fnk6qmvengvtry5ezyycn9g2d4&#39;&gt;nevent1q…g2d4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-05-26&lt;br/&gt;📝 Original message:This is something you actually don&amp;#39;t want. In order to make it as difficult&lt;br/&gt;as possible for an attacker to perform a sybil attack, you want to choose a&lt;br/&gt;set of peers that is as diverse, and unpredictable as possible.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Mon, May 25, 2015 at 9:37 PM, Matt Whitlock &amp;lt;bip at mattwhitlock.name&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; This is very simple to do. Just ping the &amp;#34;all nodes&amp;#34; address (ff02::1) and&lt;br/&gt;&amp;gt; try connecting to TCP port 8333 of each node that responds. Shouldn&amp;#39;t take&lt;br/&gt;&amp;gt; but more than a few milliseconds on any but the most densely populated LANs.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Monday, 25 May 2015, at 11:06 pm, Jim Phillips wrote:&lt;br/&gt;&amp;gt; &amp;gt; Is there any work being done on using some kind of zero-conf service&lt;br/&gt;&amp;gt; &amp;gt; discovery protocol so that lightweight clients can find a full node on&lt;br/&gt;&amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; same LAN to peer with rather than having to tie up WAN bandwidth?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I envision a future where lightweight devices within a home use SPV over&lt;br/&gt;&amp;gt; &amp;gt; WiFi to connect with a home server which in turn relays the transactions&lt;br/&gt;&amp;gt; &amp;gt; they create out to the larger and faster relays on the Internet.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; In a situation where there are hundreds or thousands of small SPV devices&lt;br/&gt;&amp;gt; &amp;gt; in a single home (if 21, Inc. is successful) monitoring the blockchain,&lt;br/&gt;&amp;gt; &amp;gt; this could result in lower traffic across the slow WAN connection.  And&lt;br/&gt;&amp;gt; &amp;gt; yes, I realize it could potentially take a LOT of these devices before&lt;br/&gt;&amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; total bandwidth is greater than downloading a full copy of the&lt;br/&gt;&amp;gt; blockchain,&lt;br/&gt;&amp;gt; &amp;gt; but there&amp;#39;s other reasons to host your own full node -- trust being one.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt; &amp;gt; *James G. Phillips IV*&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&#34;https://plus.google.com/u/0/113107039501292625391/posts&amp;gt&#34;&gt;https://plus.google.com/u/0/113107039501292625391/posts&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&#34;http://www.linkedin.com/in/ergophobe&amp;gt&#34;&gt;http://www.linkedin.com/in/ergophobe&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; *&amp;#34;Don&amp;#39;t bunt. Aim out of the ball park. Aim for the company of&lt;br/&gt;&amp;gt; immortals.&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt; -- David Ogilvy*&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;  *This message was created with 100% recycled electrons. Please think&lt;br/&gt;&amp;gt; twice&lt;br/&gt;&amp;gt; &amp;gt; before printing.*&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; One dashboard for servers and applications across Physical-Virtual-Cloud&lt;br/&gt;&amp;gt; Widest out-of-the-box monitoring support with 50&#43; applications&lt;br/&gt;&amp;gt; Performance metrics, stats and reports that give you Actionable Insights&lt;br/&gt;&amp;gt; Deep dive visibility with transaction tracing using APM Insight.&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://ad.doubleclick.net/ddm/clk/290420510;117567292;y&#34;&gt;http://ad.doubleclick.net/ddm/clk/290420510;117567292;y&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150525/1324d033/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150525/1324d033/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:35:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2z88qux5wlv9t9r3c5tljhcs74vk4ul5eymd2hsjvm62xw0234rszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n778mf6y</id>
    
      <title type="html">📅 Original date posted:2015-03-05 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2z88qux5wlv9t9r3c5tljhcs74vk4ul5eymd2hsjvm62xw0234rszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n778mf6y" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvtjzkngj6q4ustaxzuaelyh886uzkdl8kdlr8p98v0vkaalhe4vcv38nrs&#39;&gt;nevent1q…8nrs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-03-05&lt;br/&gt;📝 Original message:Bitcoind protects against this by storing the addresses it has learned&lt;br/&gt;about in buckets. The bucket an address is stored in is chosen based on the&lt;br/&gt;IP of the peer that advertised the addr message, and the address in the&lt;br/&gt;addr message itself. The idea is that the bucketing is done in a randomized&lt;br/&gt;way so that no attacker should be able to fill your database with his or&lt;br/&gt;her own nodes.&lt;br/&gt;&lt;br/&gt;&amp;gt;From addrman.h&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/master/src/addrman.h&amp;gt&#34;&gt;https://github.com/bitcoin/bitcoin/blob/master/src/addrman.h&amp;gt&lt;/a&gt;;:&lt;br/&gt;&lt;br/&gt;/** Stochastic address manager&lt;br/&gt; *&lt;br/&gt; * Design goals:&lt;br/&gt; *  * Keep the address tables in-memory, and asynchronously dump the entire&lt;br/&gt;to able in peers.dat.&lt;br/&gt; *  * Make sure no (localized) attacker can fill the entire table with his&lt;br/&gt;nodes/addresses.&lt;br/&gt; *&lt;br/&gt; * To that end:&lt;br/&gt; *  * Addresses are organized into buckets.&lt;br/&gt; *    * Address that have not yet been tried go into 256 &amp;#34;new&amp;#34; buckets.&lt;br/&gt; *      * Based on the address range (/16 for IPv4) of source of the&lt;br/&gt;information, 32 buckets are selected at random&lt;br/&gt; *      * The actual bucket is chosen from one of these, based on the range&lt;br/&gt;the address itself is located.&lt;br/&gt; *      * One single address can occur in up to 4 different buckets, to&lt;br/&gt;increase selection chances for addresses that&lt;br/&gt; *        are seen frequently. The chance for increasing this multiplicity&lt;br/&gt;decreases exponentially.&lt;br/&gt; *      * When adding a new address to a full bucket, a randomly chosen&lt;br/&gt;entry (with a bias favoring less recently seen&lt;br/&gt; *        ones) is removed from it first.&lt;br/&gt; *    * Addresses of nodes that are known to be accessible go into 64&lt;br/&gt;&amp;#34;tried&amp;#34; buckets.&lt;br/&gt; *      * Each address range selects at random 4 of these buckets.&lt;br/&gt; *      * The actual bucket is chosen from one of these, based on the full&lt;br/&gt;address.&lt;br/&gt; *      * When adding a new good address to a full bucket, a randomly&lt;br/&gt;chosen entry (with a bias favoring less recently&lt;br/&gt; *        tried ones) is evicted from it, back to the &amp;#34;new&amp;#34; buckets.&lt;br/&gt; *    * Bucket selection is based on cryptographic hashing, using a&lt;br/&gt;randomly-generated 256-bit key, which should not&lt;br/&gt; *      be observable by adversaries.&lt;br/&gt; *    * Several indexes are kept for high performance. Defining&lt;br/&gt;DEBUG_ADDRMAN will introduce frequent (and expensive)&lt;br/&gt; *      consistency checks for the entire data structure.&lt;br/&gt; */&lt;br/&gt;&lt;br/&gt;On Wed, Mar 4, 2015 at 5:40 PM, Thy Shizzle &amp;lt;thashiznets at yahoo.com.au&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi, so just a thought as my node relays addresses etc. If I wanted to&lt;br/&gt;&amp;gt; really slow down communication over the P2P network, what&amp;#39;s stopping me&lt;br/&gt;&amp;gt; from popping up a heap of dummy nodes that do nothing more than exchange&lt;br/&gt;&amp;gt; version and relay addresses, except I send addr messages with all 1000&lt;br/&gt;&amp;gt; addresses pointing to my useless nodes that never send invs or respond to&lt;br/&gt;&amp;gt; getdata etc so clients connect to my dumb nodes instead of legit ones. I&amp;#39;m&lt;br/&gt;&amp;gt; thinking that if I fill up their address pool with enough addresses to dumb&lt;br/&gt;&amp;gt; nodes and keep them really fresh time wise, it could have a bit of an&lt;br/&gt;&amp;gt; impact especially if all 8 outbound connections are used up by my dumb&lt;br/&gt;&amp;gt; nodes right?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I don&amp;#39;t want to do this obviously, I&amp;#39;m just thinking about it as I&amp;#39;m&lt;br/&gt;&amp;gt; building my node, what is there to stop this happening?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; Dive into the World of Parallel Programming The Go Parallel Website,&lt;br/&gt;&amp;gt; sponsored&lt;br/&gt;&amp;gt; by Intel and developed in partnership with Slashdot Media, is your hub for&lt;br/&gt;&amp;gt; all&lt;br/&gt;&amp;gt; things parallel software development, from weekly thought leadership blogs&lt;br/&gt;&amp;gt; to&lt;br/&gt;&amp;gt; news, videos, case studies, tutorials and more. Take a look and join the&lt;br/&gt;&amp;gt; conversation now. &lt;a href=&#34;http://goparallel.sourceforge.net/&#34;&gt;http://goparallel.sourceforge.net/&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150304/536a50fe/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150304/536a50fe/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:31:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2ag42h79evusulw7w3llj4m28v8h8e0vgts35v9kvz77csjss7uszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7p0dllz</id>
    
      <title type="html">📅 Original date posted:2014-02-12 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2ag42h79evusulw7w3llj4m28v8h8e0vgts35v9kvz77csjss7uszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7p0dllz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvkf3fetgfxn5drw58flck84934u9n9vgnhsmjlsqqlgggwa4n7zcxl8a8l&#39;&gt;nevent1q…8a8l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-02-12&lt;br/&gt;📝 Original message:Sending this again and truncating since apparently the message body was too&lt;br/&gt;long.&lt;br/&gt;&lt;br/&gt;Thanks for humoring my questions!&lt;br/&gt;&lt;br/&gt;&amp;gt;I think reporting such errors to the wallet would make complete sense.&lt;br/&gt;However i am not clear why we would a separate url for that?&lt;br/&gt;&lt;br/&gt;Hmm, thinking about this more, adding a simple status_code in&lt;br/&gt;PaymentRequest would be a much easier way to achieve this. However,&lt;br/&gt;continuing to think about this even more, maybe the simple memo field along&lt;br/&gt;with an empty set of outputs is enough already.&lt;br/&gt;&lt;br/&gt;In bitcoinj, right now the code will throw a&lt;br/&gt;PaymentRequestException.InvalidOutputs exception if the set of outputs is&lt;br/&gt;empty with a message of &amp;#34;No Outputs&amp;#34;. Because of that, there isn&amp;#39;t a good&lt;br/&gt;way to tell the difference between a payment request that had no outputs&lt;br/&gt;and a payment request that had some invalid output(s).&lt;br/&gt;&lt;br/&gt;*Question to everyone:*&lt;br/&gt;How does bitcoin-qt handle a PaymentRequest with no outputs?&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140211/e0972311/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140211/e0972311/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:13:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvanq7xwrf29x8tqjfk24mzx6y7t20pxn2x6xe3up8fu3n7agtw8szyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n74qhjkd</id>
    
      <title type="html">📅 Original date posted:2014-02-12 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvanq7xwrf29x8tqjfk24mzx6y7t20pxn2x6xe3up8fu3n7agtw8szyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n74qhjkd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2hk24rxp6j2q79jpm5wnn8fz9pnw8qq3pj55ffrn2rm9v9jacs8ssymxjl&#39;&gt;nevent1q…mxjl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-02-12&lt;br/&gt;📝 Original message:Thanks for humoring my questions!&lt;br/&gt;&lt;br/&gt;&amp;gt;I think reporting such errors to the wallet would make complete sense.&lt;br/&gt;However i am not clear why we would a separate url for that?&lt;br/&gt;&lt;br/&gt;Hmm, thinking about this more, adding a simple status_code in&lt;br/&gt;PaymentRequest would be a much easier way to achieve this. However,&lt;br/&gt;continuing to think about this even more, maybe the simple memo field along&lt;br/&gt;with an empty set of outputs is enough already.&lt;br/&gt;&lt;br/&gt;In bitcoinj, right now the code will throw a&lt;br/&gt;PaymentRequestException.InvalidOutputs exception if the set of outputs is&lt;br/&gt;empty with a message of &amp;#34;No Outputs&amp;#34;. There isn&amp;#39;t a good way to tell the&lt;br/&gt;difference between a payment request that had no outputs and a payment&lt;br/&gt;request that had some invalid output(s).&lt;br/&gt;&lt;br/&gt;*Question to everyone:*&lt;br/&gt;How does bitcoin-qt handle a PaymentRequest with no outputs?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Feb 11, 2014 at 10:01 AM, Stephane Brossier&lt;br/&gt;&amp;lt;stephane at kill-bill.org&amp;gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi Kevin,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Feb 11, 2014, at 2:00 AM, Kevin Greene &amp;lt;kgreenek at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Figured I would have a crack at reviewing this since Mike is out for a&lt;br/&gt;&amp;gt; bit. It was great running into you guys at the bitcoin fair in SF! Small&lt;br/&gt;&amp;gt; world :)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Indeed! It was great meeting you! It&amp;#39;s always nice to meet people in&lt;br/&gt;&amp;gt; person...&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I like how simple this is. You just give it an url to fetch the next&lt;br/&gt;&amp;gt; payment request and a date to fetch it.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; What should happen if the client tries to fetch the PaymentRequest early&lt;br/&gt;&amp;gt; or late?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If the client tries to fetch too early, then  the merchant will return a&lt;br/&gt;&amp;gt; PaymentRequest with no output (there is nothing to pay yet). If it fetches&lt;br/&gt;&amp;gt; too late, this is merchant specific. It could be that the service got&lt;br/&gt;&amp;gt; discontinued -- extreme case -- or that there are now multiple&lt;br/&gt;&amp;gt; PaymentRequest pending or that the merchant decided to aggregate those into&lt;br/&gt;&amp;gt; one. In that scenario, it could lead to a case where the amount to pay goes&lt;br/&gt;&amp;gt; beyond the contract and the wallet would refuse to make the recurring&lt;br/&gt;&amp;gt; payment.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Does it become valid after some date and stay valid for some length of&lt;br/&gt;&amp;gt; time?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The protocol we sketched does not include (yet) an expiration date. At&lt;br/&gt;&amp;gt; this point the contract is fairly minimal, and we could envision adding&lt;br/&gt;&amp;gt; more parameters such as expiration date. So at this point the behavior&lt;br/&gt;&amp;gt; would be dictated by the merchant.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Also, what should happen if the client tries to consume the same&lt;br/&gt;&amp;gt; PaymentRequest twice (or multiple times) during the same period?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The merchant initiates the PaymentRequest and is in charge to make sure&lt;br/&gt;&amp;gt; they match the invoices that the client should pay. On the client side, the&lt;br/&gt;&amp;gt; wallet is responsible to verify that the contract is respected, so if a&lt;br/&gt;&amp;gt; merchant were to issue multiple times the same PaymentRequest, the wallet&lt;br/&gt;&amp;gt; would detect it goes beyond the bonds defined in the contract and would&lt;br/&gt;&amp;gt; refuse to make the additional Payments.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I do not think daily/weekly/monthly is flexible enough. What do you think&lt;br/&gt;&amp;gt; about having a concrete start time and end time when the next&lt;br/&gt;&amp;gt; PaymentRequest will be valid?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I agree that daily/weekly/monthly may not be flexible enough. However&lt;br/&gt;&amp;gt; specifying a fixed date may be very tricky because in some cases a monthly&lt;br/&gt;&amp;gt; subscription may start on a 31st of a month, and depending on the month,&lt;br/&gt;&amp;gt; the due date will vary -- could be 30th, 28th, 29th, ... Also note that the&lt;br/&gt;&amp;gt; frequency (daily/weekly/monthly) is not used as a polling interval, but is&lt;br/&gt;&amp;gt; only used to verify the contract is respected.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There are multiple viable options to specify that contract and ideally we&lt;br/&gt;&amp;gt; could/should support multiple schemes; different merchants could use&lt;br/&gt;&amp;gt; different schemes, and the client would decide wether or not he is ready to&lt;br/&gt;&amp;gt; accept the terms that will later be enforced by the wallet. But of course&lt;br/&gt;&amp;gt; all this flexibility goes against simplicity and so this is tradeoff...&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This also prevents the wallet from having to remember when it last sent a&lt;br/&gt;&amp;gt; payment and getting skewed over time.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Today, our current prototype is polling every day -- which is the lowest&lt;br/&gt;&amp;gt; granularity we introduced -- and so there is no risk of getting skewed.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; When a wallet hits the polling_url to download the next PaymentRequest, it&lt;br/&gt;&amp;gt; seems we need a way to communicate an error code to the wallet, for example&lt;br/&gt;&amp;gt; if the server canceled the contract without the wallet knowing. Perhaps a&lt;br/&gt;&amp;gt; separate polling_status_url, with a corresponding ACK message to indicate&lt;br/&gt;&amp;gt; if the PaymentRequest is available. What do you think of that idea?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think reporting such errors to the wallet would make complete sense.&lt;br/&gt;&amp;gt; However i am not clear why we would a separate url for that?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;  One high-level comment -- the wallet in this design doesn&amp;#39;t have any way&lt;br/&gt;&amp;gt; of knowing when the payments are supposed to end. I feel this is important&lt;br/&gt;&amp;gt; to show to the user before they start their wallet polling infinitely.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Subscriptions are non ending by definition, but at any time the client&lt;br/&gt;&amp;gt; (through the wallet) or the merchant can decide to terminate the&lt;br/&gt;&amp;gt; subscriptions -- we did not yet implement cancellation in that prototype&lt;br/&gt;&amp;gt; but we are planning to add it later this week. Think of your Netflix&lt;br/&gt;&amp;gt; subscriptions, this is never ending (evergreen) until you decide to&lt;br/&gt;&amp;gt; terminate it or Netflix does it (abuse, bills not paid,...)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Thanks for taking a look!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Sat, Feb 8, 2014 at 6:48 PM, Stephane Brossier &amp;lt;stephane at kill-bill.org&amp;gt;wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Mike, Gavin,&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; We started to work on the merchant side to test the integration of our&lt;br/&gt;&amp;gt;&amp;gt; prototype for the recurring payments. We modified the &amp;#39;Payment Request&lt;br/&gt;&amp;gt;&amp;gt; Generator&amp;#39; from Gavin to include a new check box &amp;#39;set recurring&amp;#39;. We forked&lt;br/&gt;&amp;gt;&amp;gt; the code and checked in our modification here:&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://github.com/killbill/paymentrequest/commit/e530f6ec528266aacfd076d7c3154ad39267c3f3&#34;&gt;https://github.com/killbill/paymentrequest/commit/e530f6ec528266aacfd076d7c3154ad39267c3f3&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; We also found a few issues with the code diff that we sent yesterday for&lt;br/&gt;&amp;gt;&amp;gt; bitcoinj and checked in the bug fixes  in our fork-- so the diff sent&lt;br/&gt;&amp;gt;&amp;gt; yesterday is slightly outdated.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; So at this point we have a working prototype for bitcoinj and we are&lt;br/&gt;&amp;gt;&amp;gt; waiting for your feedbacks. We also started to look at integrating the&lt;br/&gt;&amp;gt;&amp;gt; protocol in Kill Bill to check that what is proposed supports indeed the&lt;br/&gt;&amp;gt;&amp;gt; business cases of a full recurring billing platform.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Hope to hear from you guys soon!&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Feb 7, 2014, at 6:57 PM, Stephane Brossier &amp;lt;stephane at kill-bill.org&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Mike and all,&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Pierre and I just committed a prototype implementation of the recurring&lt;br/&gt;&amp;gt;&amp;gt; payment protocol using bitcoinj. You can find the diff on our fork:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://github.com/killbill/bitcoinj/commit/40c657c4191498f12539c60316116aa68af368a7&#34;&gt;https://github.com/killbill/bitcoinj/commit/40c657c4191498f12539c60316116aa68af368a7&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; We did not write the server (merchant side), but wanted to have some&lt;br/&gt;&amp;gt;&amp;gt; feedback before going deeper (merchant implementation and tests). We did&lt;br/&gt;&amp;gt;&amp;gt; our best to build it on top of the existing BIP-0070 protocol-- only a few&lt;br/&gt;&amp;gt;&amp;gt; additions in the messages, but no new calls and no new uri scheme. We&lt;br/&gt;&amp;gt;&amp;gt; created a new package &amp;#39;recurring&amp;#39; where most of the new code lives.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; At a high level:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; 1. Creation of the subscription:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The initial handshake for creating the subscription is exactly similar to&lt;br/&gt;&amp;gt;&amp;gt; the one for the payment protocol (PaymentRequest is used to provide the&lt;br/&gt;&amp;gt;&amp;gt; contract)&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; 2. Wallet can decide to poll the merchants for its active subscriptions.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Here the flow is exactly similar to the payment protocol but the wallet&lt;br/&gt;&amp;gt;&amp;gt; receives a callback to verify the payment matches the contract and should&lt;br/&gt;&amp;gt;&amp;gt; go through.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Please give us some feedback whenever you have the chance. In the&lt;br/&gt;&amp;gt;&amp;gt; meantime we will start implementing the merchant side and test the code.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Cheers!&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Jan 31, 2014, at 10:13 AM, Mike Hearn &amp;lt;mike at plan99.net&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; That looks OK at a very high level. Things you probably want to think&lt;br/&gt;&amp;gt;&amp;gt; about:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;    - How to trigger it off the existing payment protocol (no new top&lt;br/&gt;&amp;gt;&amp;gt;    level messages or mime types or uri extensions please)&lt;br/&gt;&amp;gt;&amp;gt;    - Data structures to define the payment schedule&lt;br/&gt;&amp;gt;&amp;gt;    - Do you allow pre-submission of time locked transactions or not?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I think as you prototype these things will become clearer.  You could try&lt;br/&gt;&amp;gt;&amp;gt; prototyping either in Bitcoin Core (C&#43;&#43;) or bitcoinj (java, look at the&lt;br/&gt;&amp;gt;&amp;gt; PaymentSession class).&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Wed, Jan 29, 2014 at 3:47 AM, Stephane Brossier &amp;lt;&lt;br/&gt;&amp;gt;&amp;gt; stephane at kill-bill.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; *From what I have seen so far, there seems to be an agreement that this&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; is a nice feature to add. We are pretty new to that community and so we&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; don&amp;#39;t know exactly what the process is, and in particular how we reach&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; consensus via email. I am certainly open to follow &amp;#39;the way&amp;#39; if there is&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; one, but one solution would be to follow Mike&amp;#39;s suggestion on providing a&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; (prototype) implementation first and then defining/refining the BIP. Odinn&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; also suggested a possible retribution for our time through crowd-sourcing&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; which I am interested to pursue if that makes sense. We have quite some&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; experience on the subscription side of things and while we are growing our&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; knowledge on the Bitcoin technology (and ecosystem at large) we would&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; benefit from: * some feedbacks on the high level proposal * additional&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; requirements we might have missed So, below is a high level description of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; what we have in mind. If this sounds reasonable, we could start working on&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; an implementation. I. Abstract --------------- This describes a protocol to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; enable recurring payments in bitcoins and can be seen as an extension of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; BIP-0070. The main goal here is to have the customer subscribe to a service&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; of some kind (that is, agreeing on the terms of that subscription&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; contract), and then have the wallet make recurring payments without any&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; intervention from the customer as long as the payments match what the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; customer agreed on paying. An example of such service would be an online&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; streaming website, to which a user pays a fixed recurring monthly fee to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; access videos (a.k.a. resources). Note that there is also usage based&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; billing: for example, the user may need to purchase additional access for&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; premium videos (overage charges). This type of billing is more complicated&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; and there are many variations to it used in the industry (pre-paid, ...). For&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; the sake of discussion, we&amp;#39;ll focus on fixed recurring payments only, but&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; we will keep usage in mind to make sure the protocol will be able to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; support it as well. II. Motivation ------------------ Subscription based&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; services have been growing in the past few years and so the intent it to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; make it possible for customers to pay in bitcoins. Bitcoin&amp;#39;s push model&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; presents new advantages for the customer compared to traditional payment&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; methods: the user has control over the subscription (for example, there is&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; no need to call the merchant to explicitly cancel the credit card&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; payments). It also opens the door to subscription management tools in&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; wallets (e.g. Hive apps), which would give user an overview of what they&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; are paying each month. III. Flow of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; Operations----------------------------------------*&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; * Creation of the subscription: - - - - - - - - - - - - - - - - - - - -&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; - - 1. The customer clicks &amp;#39;subscribe&amp;#39; -&amp;gt; A message is sent to the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; merchant. 2. The merchant sends back a message to the wallet with the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; details of the subscription such as the amount to be paid. In reality,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; there will be more information but for the purpose of the prototype&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; implementation this is sufficient. 3. The wallet prompts the customer for&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; authorization. 4. The customer authorizes (or denies) it. 5. The wallet&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; sends the confirmation to the merchant. 6. The merchant confirms the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; subscription was created. Ongoing payments: *&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; *- - - - - - - - - - - - - - - - *&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; * From that time on and since Bitcoin is a &amp;#39;push&amp;#39; model, the wallet is&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; responsible to poll the merchant for due payments associated with that&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; subscription. Note that the merchant could specify hints to the wallet on&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; when to poll (specific dates) or not during the registration of the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; subscription. Note that we can&amp;#39;t simply have the wallet push X bitcoins&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; every month: the user account on the merchant side may have gotten credits,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; invoice adjustments, etc. since the last invoice, so the amount to pay for&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; a given billing period may be lower than the regular amount. It could even&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; be zero if the user decides to make a one-time payment to the merchant&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; directly using a different wallet. Hence, the wallet needs to get the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; latest invoice balance to make sure how much it should pay. This also opens&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; the door for the support of overage charges. Quick note on the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; implementation on the merchant side: an entitlement system is a piece of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; logic on the merchant side which grants the user access to certain&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; resources depending on the account status (unpaid invoices, etc.). This&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; goes often hand in hand with a dunning system, which progressively&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; restricts access as the user&amp;#39;s account is more and more overdue. Since&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; wallets can be offline for an extended period of time, payments may be&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; missed and lead to an overdue state (e.g. extra fees, service degraded). It&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; is the responsibility of the customer to ensure the wallet is up often&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; enough for payments to happen. In that recurring phase where the wallet&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; polls the merchant, the wallet is responsible to check that payments match&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; the subscription contract; that is, the amount, frequency of payments, ...&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; match what the customer agreed on. If so, the payment is made without&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; asking for explicit approval from customer, and the flow is similar to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; BIP-0070: The message is sent to the merchant, and in parallel, a&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; transaction is sent to the btcnet. The merchant sends an ACK to the wallet&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; and of course checks the states of the transactions on the btcnet to mark&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; that payment as successful. Subscription change (optional): *&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; *- - - - - - - - - - - - - - - - - - - - - - - - *&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; * Optionally we could implement a change in the ongoing subscription to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; address the upgrade/downgrade scenarios. Of course, we could also simply&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; support a cancellation followed by a creation of a new subscription, but&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; having that as a one atomic message is probably better. The steps are very&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; similar to the initial registration. 1. The customer clicks &amp;#39;upgrade&amp;#39;,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;#39;downgrade&amp;#39;, ... -&amp;gt; A msg is sent to the merchant. 2. The merchant sends back&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; a msg to the wallet with the detail of the NEW subscription. 3. The wallet&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; prompts the customer for authorization. 4. The customer authorizes (or&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; denies) it. 5. The wallet sends the confirmation to the merchant. 6. The&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; merchant confirms the change in the subscription. Cancellation of the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; subscription: *&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; *- - - - - - - - - - - - - - - - - - - - - - - - - *&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; * The cancellation is initiated from the customer: 1. The customer&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; clicks &amp;#39;cancel&amp;#39; -&amp;gt; The wallet is informed that it  should not accept any&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; new payment associated to that subscription. 2. The wallet sends a message&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; to the merchant to inform about the cancellation. 3. The merchant confirms&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; the subscription was cancelled. *&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140211/2b958bf7/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140211/2b958bf7/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:13:07Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv4n5twtm08cadrp2kp7kmqmy0ceq7dudyy4t92g57vah8vsqcnaszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7gtg7cg</id>
    
      <title type="html">📅 Original date posted:2014-02-11 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv4n5twtm08cadrp2kp7kmqmy0ceq7dudyy4t92g57vah8vsqcnaszyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7gtg7cg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvl92hrzdag3md2ag2k0l5jwcrwm5f68xkqpmm7x7tytgnmsf3mwcmhwd0c&#39;&gt;nevent1q…wd0c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-02-11&lt;br/&gt;📝 Original message:Figured I would have a crack at reviewing this since Mike is out for a bit.&lt;br/&gt;It was great running into you guys at the bitcoin fair in SF! Small world :)&lt;br/&gt;&lt;br/&gt;I like how simple this is. You just give it an url to fetch the next&lt;br/&gt;payment request and a date to fetch it.&lt;br/&gt;&lt;br/&gt;What should happen if the client tries to fetch the PaymentRequest early or&lt;br/&gt;late? Does it become valid after some date and stay valid for some length&lt;br/&gt;of time? Also, what should happen if the client tries to consume the same&lt;br/&gt;PaymentRequest twice (or multiple times) during the same period?&lt;br/&gt;&lt;br/&gt;I do not think daily/weekly/monthly is flexible enough. What do you think&lt;br/&gt;about having a concrete start time and end time when the next&lt;br/&gt;PaymentRequest will be valid? This also prevents the wallet from having to&lt;br/&gt;remember when it last sent a payment and getting skewed over time.&lt;br/&gt;&lt;br/&gt;When a wallet hits the polling_url to download the next PaymentRequest, it&lt;br/&gt;seems we need a way to communicate an error code to the wallet, for example&lt;br/&gt;if the server canceled the contract without the wallet knowing. Perhaps a&lt;br/&gt;separate polling_status_url, with a corresponding ACK message to indicate&lt;br/&gt;if the PaymentRequest is available. What do you think of that idea?&lt;br/&gt;&lt;br/&gt;One high-level comment -- the wallet in this design doesn&amp;#39;t have any way of&lt;br/&gt;knowing when the payments are supposed to end. I feel this is important to&lt;br/&gt;show to the user before they start their wallet polling infinitely.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Sat, Feb 8, 2014 at 6:48 PM, Stephane Brossier &amp;lt;stephane at kill-bill.org&amp;gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Mike, Gavin,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We started to work on the merchant side to test the integration of our&lt;br/&gt;&amp;gt; prototype for the recurring payments. We modified the &amp;#39;Payment Request&lt;br/&gt;&amp;gt; Generator&amp;#39; from Gavin to include a new check box &amp;#39;set recurring&amp;#39;. We forked&lt;br/&gt;&amp;gt; the code and checked in our modification here:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/killbill/paymentrequest/commit/e530f6ec528266aacfd076d7c3154ad39267c3f3&#34;&gt;https://github.com/killbill/paymentrequest/commit/e530f6ec528266aacfd076d7c3154ad39267c3f3&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We also found a few issues with the code diff that we sent yesterday for&lt;br/&gt;&amp;gt; bitcoinj and checked in the bug fixes  in our fork-- so the diff sent&lt;br/&gt;&amp;gt; yesterday is slightly outdated.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So at this point we have a working prototype for bitcoinj and we are&lt;br/&gt;&amp;gt; waiting for your feedbacks. We also started to look at integrating the&lt;br/&gt;&amp;gt; protocol in Kill Bill to check that what is proposed supports indeed the&lt;br/&gt;&amp;gt; business cases of a full recurring billing platform.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hope to hear from you guys soon!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Feb 7, 2014, at 6:57 PM, Stephane Brossier &amp;lt;stephane at kill-bill.org&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Mike and all,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Pierre and I just committed a prototype implementation of the recurring&lt;br/&gt;&amp;gt; payment protocol using bitcoinj. You can find the diff on our fork:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/killbill/bitcoinj/commit/40c657c4191498f12539c60316116aa68af368a7&#34;&gt;https://github.com/killbill/bitcoinj/commit/40c657c4191498f12539c60316116aa68af368a7&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We did not write the server (merchant side), but wanted to have some&lt;br/&gt;&amp;gt; feedback before going deeper (merchant implementation and tests). We did&lt;br/&gt;&amp;gt; our best to build it on top of the existing BIP-0070 protocol-- only a few&lt;br/&gt;&amp;gt; additions in the messages, but no new calls and no new uri scheme. We&lt;br/&gt;&amp;gt; created a new package &amp;#39;recurring&amp;#39; where most of the new code lives.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; At a high level:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. Creation of the subscription:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The initial handshake for creating the subscription is exactly similar to&lt;br/&gt;&amp;gt; the one for the payment protocol (PaymentRequest is used to provide the&lt;br/&gt;&amp;gt; contract)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2. Wallet can decide to poll the merchants for its active subscriptions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Here the flow is exactly similar to the payment protocol but the wallet&lt;br/&gt;&amp;gt; receives a callback to verify the payment matches the contract and should&lt;br/&gt;&amp;gt; go through.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Please give us some feedback whenever you have the chance. In the meantime&lt;br/&gt;&amp;gt; we will start implementing the merchant side and test the code.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Cheers!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Jan 31, 2014, at 10:13 AM, Mike Hearn &amp;lt;mike at plan99.net&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That looks OK at a very high level. Things you probably want to think&lt;br/&gt;&amp;gt; about:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;    - How to trigger it off the existing payment protocol (no new top&lt;br/&gt;&amp;gt;    level messages or mime types or uri extensions please)&lt;br/&gt;&amp;gt;    - Data structures to define the payment schedule&lt;br/&gt;&amp;gt;    - Do you allow pre-submission of time locked transactions or not?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think as you prototype these things will become clearer.  You could try&lt;br/&gt;&amp;gt; prototyping either in Bitcoin Core (C&#43;&#43;) or bitcoinj (java, look at the&lt;br/&gt;&amp;gt; PaymentSession class).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jan 29, 2014 at 3:47 AM, Stephane Brossier &amp;lt;stephane at kill-bill.org&lt;br/&gt;&amp;gt; &amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; *From what I have seen so far, there seems to be an agreement that this&lt;br/&gt;&amp;gt;&amp;gt; is a nice feature to add. We are pretty new to that community and so we&lt;br/&gt;&amp;gt;&amp;gt; don&amp;#39;t know exactly what the process is, and in particular how we reach&lt;br/&gt;&amp;gt;&amp;gt; consensus via email. I am certainly open to follow &amp;#39;the way&amp;#39; if there is&lt;br/&gt;&amp;gt;&amp;gt; one, but one solution would be to follow Mike&amp;#39;s suggestion on providing a&lt;br/&gt;&amp;gt;&amp;gt; (prototype) implementation first and then defining/refining the BIP. Odinn&lt;br/&gt;&amp;gt;&amp;gt; also suggested a possible retribution for our time through crowd-sourcing&lt;br/&gt;&amp;gt;&amp;gt; which I am interested to pursue if that makes sense. We have quite some&lt;br/&gt;&amp;gt;&amp;gt; experience on the subscription side of things and while we are growing our&lt;br/&gt;&amp;gt;&amp;gt; knowledge on the Bitcoin technology (and ecosystem at large) we would&lt;br/&gt;&amp;gt;&amp;gt; benefit from: * some feedbacks on the high level proposal * additional&lt;br/&gt;&amp;gt;&amp;gt; requirements we might have missed So, below is a high level description of&lt;br/&gt;&amp;gt;&amp;gt; what we have in mind. If this sounds reasonable, we could start working on&lt;br/&gt;&amp;gt;&amp;gt; an implementation. I. Abstract --------------- This describes a protocol to&lt;br/&gt;&amp;gt;&amp;gt; enable recurring payments in bitcoins and can be seen as an extension of&lt;br/&gt;&amp;gt;&amp;gt; BIP-0070. The main goal here is to have the customer subscribe to a service&lt;br/&gt;&amp;gt;&amp;gt; of some kind (that is, agreeing on the terms of that subscription&lt;br/&gt;&amp;gt;&amp;gt; contract), and then have the wallet make recurring payments without any&lt;br/&gt;&amp;gt;&amp;gt; intervention from the customer as long as the payments match what the&lt;br/&gt;&amp;gt;&amp;gt; customer agreed on paying. An example of such service would be an online&lt;br/&gt;&amp;gt;&amp;gt; streaming website, to which a user pays a fixed recurring monthly fee to&lt;br/&gt;&amp;gt;&amp;gt; access videos (a.k.a. resources). Note that there is also usage based&lt;br/&gt;&amp;gt;&amp;gt; billing: for example, the user may need to purchase additional access for&lt;br/&gt;&amp;gt;&amp;gt; premium videos (overage charges). This type of billing is more complicated&lt;br/&gt;&amp;gt;&amp;gt; and there are many variations to it used in the industry (pre-paid, ...). For&lt;br/&gt;&amp;gt;&amp;gt; the sake of discussion, we&amp;#39;ll focus on fixed recurring payments only, but&lt;br/&gt;&amp;gt;&amp;gt; we will keep usage in mind to make sure the protocol will be able to&lt;br/&gt;&amp;gt;&amp;gt; support it as well. II. Motivation ------------------ Subscription based&lt;br/&gt;&amp;gt;&amp;gt; services have been growing in the past few years and so the intent it to&lt;br/&gt;&amp;gt;&amp;gt; make it possible for customers to pay in bitcoins. Bitcoin&amp;#39;s push model&lt;br/&gt;&amp;gt;&amp;gt; presents new advantages for the customer compared to traditional payment&lt;br/&gt;&amp;gt;&amp;gt; methods: the user has control over the subscription (for example, there is&lt;br/&gt;&amp;gt;&amp;gt; no need to call the merchant to explicitly cancel the credit card&lt;br/&gt;&amp;gt;&amp;gt; payments). It also opens the door to subscription management tools in&lt;br/&gt;&amp;gt;&amp;gt; wallets (e.g. Hive apps), which would give user an overview of what they&lt;br/&gt;&amp;gt;&amp;gt; are paying each month. III. Flow of&lt;br/&gt;&amp;gt;&amp;gt; Operations----------------------------------------*&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; * Creation of the subscription: - - - - - - - - - - - - - - - - - - - - -&lt;br/&gt;&amp;gt;&amp;gt; - 1. The customer clicks &amp;#39;subscribe&amp;#39; -&amp;gt; A message is sent to the merchant.&lt;br/&gt;&amp;gt;&amp;gt; 2. The merchant sends back a message to the wallet with the details of the&lt;br/&gt;&amp;gt;&amp;gt; subscription such as the amount to be paid. In reality, there will be more&lt;br/&gt;&amp;gt;&amp;gt; information but for the purpose of the prototype implementation this is&lt;br/&gt;&amp;gt;&amp;gt; sufficient. 3. The wallet prompts the customer for authorization. 4. The&lt;br/&gt;&amp;gt;&amp;gt; customer authorizes (or denies) it. 5. The wallet sends the confirmation to&lt;br/&gt;&amp;gt;&amp;gt; the merchant. 6. The merchant confirms the subscription was created.&lt;br/&gt;&amp;gt;&amp;gt; Ongoing payments: *&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; *- - - - - - - - - - - - - - - - *&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; * From that time on and since Bitcoin is a &amp;#39;push&amp;#39; model, the wallet is&lt;br/&gt;&amp;gt;&amp;gt; responsible to poll the merchant for due payments associated with that&lt;br/&gt;&amp;gt;&amp;gt; subscription. Note that the merchant could specify hints to the wallet on&lt;br/&gt;&amp;gt;&amp;gt; when to poll (specific dates) or not during the registration of the&lt;br/&gt;&amp;gt;&amp;gt; subscription. Note that we can&amp;#39;t simply have the wallet push X bitcoins&lt;br/&gt;&amp;gt;&amp;gt; every month: the user account on the merchant side may have gotten credits,&lt;br/&gt;&amp;gt;&amp;gt; invoice adjustments, etc. since the last invoice, so the amount to pay for&lt;br/&gt;&amp;gt;&amp;gt; a given billing period may be lower than the regular amount. It could even&lt;br/&gt;&amp;gt;&amp;gt; be zero if the user decides to make a one-time payment to the merchant&lt;br/&gt;&amp;gt;&amp;gt; directly using a different wallet. Hence, the wallet needs to get the&lt;br/&gt;&amp;gt;&amp;gt; latest invoice balance to make sure how much it should pay. This also opens&lt;br/&gt;&amp;gt;&amp;gt; the door for the support of overage charges. Quick note on the&lt;br/&gt;&amp;gt;&amp;gt; implementation on the merchant side: an entitlement system is a piece of&lt;br/&gt;&amp;gt;&amp;gt; logic on the merchant side which grants the user access to certain&lt;br/&gt;&amp;gt;&amp;gt; resources depending on the account status (unpaid invoices, etc.). This&lt;br/&gt;&amp;gt;&amp;gt; goes often hand in hand with a dunning system, which progressively&lt;br/&gt;&amp;gt;&amp;gt; restricts access as the user&amp;#39;s account is more and more overdue. Since&lt;br/&gt;&amp;gt;&amp;gt; wallets can be offline for an extended period of time, payments may be&lt;br/&gt;&amp;gt;&amp;gt; missed and lead to an overdue state (e.g. extra fees, service degraded). It&lt;br/&gt;&amp;gt;&amp;gt; is the responsibility of the customer to ensure the wallet is up often&lt;br/&gt;&amp;gt;&amp;gt; enough for payments to happen. In that recurring phase where the wallet&lt;br/&gt;&amp;gt;&amp;gt; polls the merchant, the wallet is responsible to check that payments match&lt;br/&gt;&amp;gt;&amp;gt; the subscription contract; that is, the amount, frequency of payments, ...&lt;br/&gt;&amp;gt;&amp;gt; match what the customer agreed on. If so, the payment is made without&lt;br/&gt;&amp;gt;&amp;gt; asking for explicit approval from customer, and the flow is similar to&lt;br/&gt;&amp;gt;&amp;gt; BIP-0070: The message is sent to the merchant, and in parallel, a&lt;br/&gt;&amp;gt;&amp;gt; transaction is sent to the btcnet. The merchant sends an ACK to the wallet&lt;br/&gt;&amp;gt;&amp;gt; and of course checks the states of the transactions on the btcnet to mark&lt;br/&gt;&amp;gt;&amp;gt; that payment as successful. Subscription change (optional): *&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; *- - - - - - - - - - - - - - - - - - - - - - - - *&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; * Optionally we could implement a change in the ongoing subscription to&lt;br/&gt;&amp;gt;&amp;gt; address the upgrade/downgrade scenarios. Of course, we could also simply&lt;br/&gt;&amp;gt;&amp;gt; support a cancellation followed by a creation of a new subscription, but&lt;br/&gt;&amp;gt;&amp;gt; having that as a one atomic message is probably better. The steps are very&lt;br/&gt;&amp;gt;&amp;gt; similar to the initial registration. 1. The customer clicks &amp;#39;upgrade&amp;#39;,&lt;br/&gt;&amp;gt;&amp;gt; &amp;#39;downgrade&amp;#39;, ... -&amp;gt; A msg is sent to the merchant. 2. The merchant sends back&lt;br/&gt;&amp;gt;&amp;gt; a msg to the wallet with the detail of the NEW subscription. 3. The wallet&lt;br/&gt;&amp;gt;&amp;gt; prompts the customer for authorization. 4. The customer authorizes (or&lt;br/&gt;&amp;gt;&amp;gt; denies) it. 5. The wallet sends the confirmation to the merchant. 6. The&lt;br/&gt;&amp;gt;&amp;gt; merchant confirms the change in the subscription. Cancellation of the&lt;br/&gt;&amp;gt;&amp;gt; subscription: *&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; *- - - - - - - - - - - - - - - - - - - - - - - - - *&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; * The cancellation is initiated from the customer: 1. The customer clicks&lt;br/&gt;&amp;gt;&amp;gt; &amp;#39;cancel&amp;#39; -&amp;gt; The wallet is informed that it  should not accept any new&lt;br/&gt;&amp;gt;&amp;gt; payment associated to that subscription. 2. The wallet sends a message to&lt;br/&gt;&amp;gt;&amp;gt; the merchant to inform about the cancellation. 3. The merchant confirms the&lt;br/&gt;&amp;gt;&amp;gt; subscription was cancelled. *&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140211/6c0620d6/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140211/6c0620d6/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:13:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsznyze2t0ttk2pveganj0uvpde92whvh2n2s6dpll6cpd88cv9yjczyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7c9mmpr</id>
    
      <title type="html">📅 Original date posted:2014-01-28 📝 Original message:&#43;1 to ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsznyze2t0ttk2pveganj0uvpde92whvh2n2s6dpll6cpd88cv9yjczyr7xzglhw0sdpx8rjy927lrklhv476l48z43zrvnvpkwd76xmk0n7c9mmpr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdpv2tsecr5avxfcey6gx98m883k6w94gjrys7xkd6k4lnf4krjxsuem54z&#39;&gt;nevent1q…m54z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-28&lt;br/&gt;📝 Original message:&#43;1 to the idea of recurring payment requests.&lt;br/&gt;&lt;br/&gt;Perhaps one way to realize this would be to add an optional URL to the&lt;br/&gt;PaymentRequest object where the next PaymentRequest can be fetched and the&lt;br/&gt;date at which the merchant expects the next payment.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Mon, Jan 27, 2014 at 6:36 PM, Stephane Brossier&lt;br/&gt;&amp;lt;stephane at kill-bill.org&amp;gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [I sent this email 2 days ago prior my registration to the mailing list;&lt;br/&gt;&amp;gt; please forgive me if this is a duplicate]&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I would like to propose an extension to the Payment Protocol (bip-0070) to&lt;br/&gt;&amp;gt; address the case of recurring payments in Bitcoin -- new bip or&lt;br/&gt;&amp;gt; modification of bip-0070.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There has been a lot of growth in the last few years in the &amp;#39;subscription&lt;br/&gt;&amp;gt; economy&amp;#39; with many new companies embracing that model -- online video,&lt;br/&gt;&amp;gt; gaming, groceries, newspapers,... In parallel, Bitcoin is growing into a&lt;br/&gt;&amp;gt; mainstream currency (hence bip-0070), and so the next logical step would be&lt;br/&gt;&amp;gt; to define a protocol to address that need.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We have been working in the past few years on an open-source billing&lt;br/&gt;&amp;gt; platform (&lt;a href=&#34;http://kill-bill.org/&#34;&gt;http://kill-bill.org/&lt;/a&gt;), and recently came with a prototype to&lt;br/&gt;&amp;gt; do recurring billing in Bitcoin (see&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://thekillbillstory.wordpress.com/2014/01/20/bitcoin-plugin/&#34;&gt;http://thekillbillstory.wordpress.com/2014/01/20/bitcoin-plugin/&lt;/a&gt; and&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://thekillbillstory.wordpress.com/2014/01/11/coinbase-integration-experiment/&#34;&gt;http://thekillbillstory.wordpress.com/2014/01/11/coinbase-integration-experiment/&lt;/a&gt;&lt;br/&gt;&amp;gt; ).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The work flow would look similar to the one from bip-0070. There would&lt;br/&gt;&amp;gt; need to be some additions; the flow could be summarized as follow:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 0. Click: &amp;#39;Subscribe Now&amp;#39;&lt;br/&gt;&amp;gt; 1. Wallet would get  a RecurringPaymentRequestAuth which describes the&lt;br/&gt;&amp;gt; nature of the future recurring payments&lt;br/&gt;&amp;gt; 2. The Customer would get prompted from the wallet to authorize it.&lt;br/&gt;&amp;gt; 3. The wallet would then poll the Merchant server (startup time, and/or&lt;br/&gt;&amp;gt; well defined frequency) and potentially merchant would start issuing a&lt;br/&gt;&amp;gt; PaymentRequest); the role of the wallet is to ensure that PaymentRequest is&lt;br/&gt;&amp;gt; within the bounds of what was accepted by the customer-- amount,&lt;br/&gt;&amp;gt; frequency,.. If it is, then it would make the Payment the same way it works&lt;br/&gt;&amp;gt; for bip-0070&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Is that something that the community would be interested in? We could&lt;br/&gt;&amp;gt; provide more details about the protocol we have in mind (messages and&lt;br/&gt;&amp;gt; flow), and also provide an implementation with bitcoinj as a wallet and&lt;br/&gt;&amp;gt; Kill Bill as a merchant server.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Le me know what you think.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Stéphane&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; WatchGuard Dimension instantly turns raw network data into actionable&lt;br/&gt;&amp;gt; security intelligence. It gives you real-time visual feedback on key&lt;br/&gt;&amp;gt; security issues and trends.  Skip the complicated setup - simply import&lt;br/&gt;&amp;gt; a virtual appliance and go from zero to informed in seconds.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://pubads.g.doubleclick.net/gampad/clk?id=123612991&amp;amp;iu=/4140/ostg.clktrk&#34;&gt;http://pubads.g.doubleclick.net/gampad/clk?id=123612991&amp;amp;iu=/4140/ostg.clktrk&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140127/f154809e/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140127/f154809e/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:12:45Z</updated>
  </entry>

</feed>