Here is a conversation with nopara73, waxwing, aruk and I.
@belcher There is something I don't understand. Why not just run an Electrum server on your own machine and point the Electrum client to localhost?
ill write an FAQ with that since that question has come up a few times
I get it that pruning and stuff doesn't work like that.
the answer is because a normal electrum server needs lots of disk space and memory
yeah thats it
an regular electrum server has a database of every bitcoin address that was ever used
this gateway thing only has your own addresses, and they are stored in bitcoin core's wallet.dat
However instead of building a completely new system, for me it seems like the first reasonable approach would be try to tweak the existing system into being more space effective.
theres tweaking and then theres trying different approaches
storing every address ever used is inherently not scalable, storing only your own addresses is better for some things
the tradeoff is you have to -rescan if you import addresses that have historical transactions
I see, makes sense.
thats why this probably wont be added to electrum itself because it has "instant on" as one important value
this isnt "instant on", it trades away that in return for full node verification and less resource usage
Oh, there's something else in my mind.
What do you think of the future of on-chain transactions?
It seems like they are going to the roof.
And the situation will not get better.
they'll be limited
my view is basically the same as bitcoin cores/UASFs
block space is a scarce resource and we'll have to learn to use it efficently
This may comes with a trend of people who are using Bitcoin on-chain will also be easily able to afford to run a fullnode.
for privacy specifically i wrote this
https://www.reddit.com/r/joinmarket/comments/7m422w/some_updates_on_joinmarketclientserver/drtzm84/ privacy will have to happen off-chain, because buying lots of block space with coinjoin/whatever will be expensive
reading it again now, i should put chaumian ecash servers as another off-chain tech and link your blog post
Recently I was wondering if building a nice UI on top of fully validating Core is a strategically smarter decision than trying to tweak with light clients.
yes i think so, i really like electrum's UI so my gateway idea is about having both electrum's nice UI and core's full verification
in your bitcointalk reply you say "Building a nice UI would be less of an effort then building this gateway." which is... not true... building a nice UI means re-doing all the work that the electrum devs have done
yes agreed, it's not really even quite "nice UI" that electrum client has got so right, it's feature-richness imo.
anyway if its okay with you id like to copypaste this conversation into that bitcointalk thread
feel free to repeat anything i said.
@belcher My point was building a UI is just putting one thing on top of another, while building a gateway requires actual engineering and logic. Maybe building a UI would be more work, but it would be an easier work, where you don't have to be anxious about if your algo fails, people can lose money.
@nopara73 that's true, but he doesn't want to change the UI, he wants to change how easily you can replicate the electrum server functionality backend as a single user with one node
you can do it now but it's too expensive (txindex and so on)
Ok, but that's just a personal engineering boner, not an actual, "what's the most effective way to fix that problem I have: decision:)
you think so? i don't. if you scroll up you'll see i made the same point as you about reusing existing arch; but he intends to create a far lighter-weight version of it, which would address a specific need: to use electrum UI without a heavyweight server backend, for a single user.
Indeed. I didn't understand what you were talking about, because when I read your comments I didn't yet read the bitcointalk post.
It would actually be very useful as using electrum server with your full node is basically the only way to validate your hardware wallet transactions with a full node
I wonder why this is not a more wanted feature
aruk yes that is one big motivation, i realized we talk up hardware wallets as a great way to store privkeys, but bitcoin security also requires using a full node wallet and hardware wallets dont work well with those (yet)
for engineering vs UI, i dont like UI that much (personally)
it does but it's extremely cumbersome
i actually liked reading cs textbooks with all those graphs and heaps and tree diagrams
creating UI i mean

using it is obviously nice
only thing is, like with JM, if you go with a non-indexed approach, you have problems in recovery.
yep, tradeoffs :\
its required for scalability i think, transactions come in blocks, you have to scan them
@waxwing My point is you get the same result if you replicate the Electrum GUI for, Core, or let's say @jonasschnellis fullspv PR here:
https://github.com/bitcoin/bitcoin/pull/9483 then it's an easier way to get to where he wants to get, than writing the gateway.
you could make a database of every address every used... but that will be big and probably centralized because of that (i.e. people will use bc.i's API instead of scanning their own blocks)
nopara73 jonasschnellis PR doesnt support (for example) mnemonic phrases
or any other of electrum's nice features
yeah it isn't just GUI, like i said above, it's feature-richness.
yes, UI is the wrong word
HW wallet integration mentioned above is a very good point too.
several other things, but i don't want to be unfair to Core's GUI since i never used it :laughing:
features are a part of UI i guess... /me looks up how "UI" is actually defined
What? Why doesn't it? I support it in HiddenWallet. It's just the user must specify a date when the wallet was created.
At recovery
if you want consensus to be enforced, you need people validating high value transactions. Nobody is doing it because they all use a hw wallet that does not depend on a local node
Core's GUI doesnt support lots of stuff, i think most core developers are interested in the super-important scalability stuff
there's a huge amount of work gone into scalability in bitcoin core, without which bitcoin would likely die
IMO the best application in Core is bitcoind not bitcoin-qt
the way i run things is an old always-on laptop with bitcoind running (and other stuff like joinmarket and irc)