From: Keagan McClelland <keagan.mcclelland@gmail.com>
To: Braydon Fuller <braydon@purse.io>
Cc: Bitcoin Protocol Discussion
<bitcoin-dev@lists.linuxfoundation.org>,
"lightning-dev\\\\@lists.linuxfoundation.org"
<lightning-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] [Lightning-dev] On the scalability issues of onboarding millions of LN mobile clients
Date: Fri, 8 May 2020 14:01:40 -0600 [thread overview]
Message-ID: <CALeFGL0vRM5o21oD0mrtPFnRCdRTUkyEv_nry3SQ4nvgyShGdA@mail.gmail.com> (raw)
In-Reply-To: <ecce23db-2622-b257-5a05-22a40aafd1e3@purse.io>
[-- Attachment #1: Type: text/plain, Size: 2907 bytes --]
> The RPC interface in Bitcoin Core, and others, is not great for this
> because it exposes a lot of functionality that isn't necessary and
> introduces risks.
This is actually somewhat my point. If the RPC interface was good for this
and *didn't* introduce risks, we could just use that and be done with it.
But I'm finding there are many use cases that you want to have low cost
ways to serve peer services to people whom you have given explicit
permission, but they shouldn't have full ability to administrate the node.
Perhaps I wasn't explicit in my previous note but what I mean is that there
seems to be a demand for something *in between* a peer interface, and an
owner interface. I have little opinion as to whether this belongs in core
or not, I think there are much more experienced folks who can weight in on
that, but without something like this, you cannot limit your exposure for
serving something like bip157 filters without removing your own ability to
make use of some of those same services.
Keagan
On Fri, May 8, 2020 at 1:51 PM Braydon Fuller <braydon@purse.io> wrote:
> On 5/6/20 9:07 PM, Keagan McClelland wrote:
>
> > I think that one of the solutions here is to have light clients choose
> > their full node tethers explicitly. Even if you think it is unrealistic
> to
> > have everyone run their own node (fwiw, I don’t), there is still a trust
> > model where you can pick your trusted source.
> >
> > This way you could have many light clients working off of a family node,
> > and the peer services could be limited to some sort of “authenticated”
> > peers. Perhaps this is better accomplished over the RPC interface in
> Core,
> > but the idea is to have some sort of peer service model between “full
> > public” and “owner only”. This limits the amount of costs that can be
> > properly externalized, without exposing risk of consensus capture by
> > economically weighty institutions.
>
> The RPC interface in Bitcoin Core, and others, is not great for this
> because it exposes a lot of functionality that isn't necessary and
> introduces risks. For example the `gettxoutsetinfo` can start a very
> intensive CPU and disk I/O task. There are several others, for example:
> `stop`, `addnode`, `clearbanned`, `setban`, and etc. Furthermore reading
> full raw blocks isn't very efficient with JSON. Electrum servers (e.g
> electrs) for example read blocks from disk instead and use the RPC
> interface to sync headers. Though, Electrum servers also have a risk of
> DoS with addresses that have many transactions, see the `--txid-limit`
> option [2].
>
> [1]:
>
> https://github.com/bitcoin/bitcoin/blob/5b24f6084ede92d0f493ff416b4726245140b2c1/src/rpc/blockchain.cpp#L954-L956
> [2]:
>
> https://github.com/romanz/electrs/blob/f0a7a325af495ecbc152c0866550dc300011779b/src/query.rs#L284-L289
>
>
>
[-- Attachment #2: Type: text/html, Size: 3707 bytes --]
next prev parent reply other threads:[~2020-05-08 20:02 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-05 10:17 [bitcoin-dev] On the scalability issues of onboarding millions of LN mobile clients Antoine Riard
2020-05-05 13:00 ` Luke Dashjr
2020-05-05 13:49 ` [bitcoin-dev] [Lightning-dev] " ZmnSCPxj
2020-05-05 17:09 ` John Newbery
2020-05-06 9:21 ` Antoine Riard
2020-05-05 15:16 ` [bitcoin-dev] " Lloyd Fournier
2020-05-12 21:05 ` Chris Belcher
2020-05-13 19:51 ` [bitcoin-dev] [Lightning-dev] " Antoine Riard
2020-05-14 4:02 ` ZmnSCPxj
[not found] ` <45FD4FF1-1E09-4748-8B05-478DEF6C1966@ed.ac.uk>
2020-05-14 15:25 ` Keagan McClelland
2020-05-17 9:11 ` Christopher Allen
2020-05-14 15:27 ` William Casarin
2020-05-17 3:37 ` Antoine Riard
2020-05-06 9:06 ` [bitcoin-dev] " Antoine Riard
2020-05-06 16:00 ` [bitcoin-dev] [Lightning-dev] " Keagan McClelland
2020-05-07 3:56 ` Antoine Riard
2020-05-07 4:07 ` Keagan McClelland
2020-05-08 19:51 ` Braydon Fuller
2020-05-08 20:01 ` Keagan McClelland [this message]
2020-05-08 20:22 ` Braydon Fuller
2020-05-08 21:29 ` Christopher Allen
2020-05-09 7:48 ` Antoine Riard
2020-05-06 0:31 ` Olaoluwa Osuntokun
2020-05-06 9:40 ` Antoine Riard
[not found] ` <CACJVCgL4fAs7-F2O+T-gvTbpjsHhgBrU73FaC=EUHG5iTi2m2Q@mail.gmail.com>
2020-05-11 5:44 ` ZmnSCPxj
2020-05-12 10:09 ` Richard Myers
2020-05-12 15:48 ` ZmnSCPxj
2020-05-08 19:33 ` Braydon Fuller
[not found] ` <CAGKT+VcZsMW_5jOqT2jxtbYTEPZU-NL8v3gZ8VJAP-bMe7iLSg@mail.gmail.com>
2020-05-06 8:27 ` Antoine Riard
2020-05-07 16:40 ` Igor Cota
2020-05-09 7:22 ` Antoine Riard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALeFGL0vRM5o21oD0mrtPFnRCdRTUkyEv_nry3SQ4nvgyShGdA@mail.gmail.com \
--to=keagan.mcclelland@gmail.com \
--cc=bitcoin-dev@lists.linuxfoundation.org \
--cc=braydon@purse.io \
--cc=lightning-dev@lists.linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox