Everybody, thanks for waiting,
sorry, but there was a lot to digest first, and I'm far from finished...
But lets dive in.
So here are some of the news about the new upcoming wallet, called
Spreadwallet that will introduce a few changes.
I will have to split the info over a few posts, so consider this a first preview of what to expect.
I will give a short overview of the function and explain in the next post why I think it's a good idea to advance the wallet this way.
First of all, the spreadwallet is now
a multicoin multiwallet that can operate in SPV and Fullnode mode. In short, what you'll get is:
- decentralized UTXO blockexplorer that works with the nodes you host locally (on your main computer or spread over your local network)
- multihost capabilities that allow you to run multiple nodes in your local network, remote controlling them with your spreadwallet.
- easy setup and control through SSH of all the raspberry pis in your local network.
- multiwallet support for many coins, immediate use of all those coins in SPV mode.
- support for many different styles of wallets (deterministic, non-deterministic, TREZOR and paperwallets)
- update of the spreadcoin daemon to newest bitcoin core codebase
In more detail:
You can see the main sections in this screen.
We have an explorer, based on the blockexplorer I've been working on for a while now.
It uses my own database engine called spreadDB for fast access to UTXO datastructures.
The explorer only works with full nodes you operate in your local network, be it on the same machine as your wallet, or e.g. a raspberry pi in your local network.
Above that we have a reserved section that will show all the wallets that you load/create,
and in the top right corner we have the section where all the nodes will be listed that the wallet is currently operating and connected to.
(Those can be Fullnodes or representations of SPV-Connections the wallet has with certain coins)
Once you "register" and "setup" a full node (or SPV-Connection) with the spreadwallet the explorer will start "exploring" the blockchain data and build the database that will allow you to quickly search for addresses, hashes, etc..
You will have to wait for the sync process to finish before the explorer can kick in. Although I am working on a mode where the explorer builds its database even while the blockchain is synching.
The explorer doesn't work with data it gets only through SPV-Connections.
BTW as you see in the top right corner the Nodes always inform you about how many connections they have and what percentage they are synched and explored.
Basically what was at the bottom of the old wallet (the statusbar) has now disappeared and all info about Nodes will be visualized directly in the respective Node-Box.
The "SPV nodes" look a little different than the Full Nodes to make them easily distinguishable.
When it's finished, the "Chains" sidebar menu will give you general information of all the chains/coins you are connected to.
This will list a few coin parameters a difficulty graph and a hashrate graph. Similar to what the old wallet shows in the overview screen of the mining menu.
This chain-list will include SPV connections, since all this data can be derived from header data alone, so that's good!
So how exactly will you add Nodes?
Remember that Genesis-Extractor experiment we started some time ago?
Here's the link to refresh your memory:
http://spreadcointalk.org/index.php?board=21.0We will continue to build on this information to provide useable data for the spreadwallet, so that we have all the necessary information to handle multiple coins.
I will start with a list of a few coins that I will personally test, we can then continue from there and add coins as the community sees fit.
But generally speaking ... you can customize this list anyway you want since it will be comprised of external files that are human readable.
Furthermore, some coins will not work with the wallet rightaway, so we will have to find different solutions later.
For example, AFAIK etherium doesn't use UTXO format, so it can't be scanned by the current version of the blockexplorer.
But coins that are very similar to spreadcoin will work rightaway.
So based on this external coinlist the Spreadwallet will present to you a few coins that you can activate/deactivate.
The three states of "coin connection" (or "Node state" if you will) are
Off
SPV
FullOnce a node is in SPV mode, you can basically use it rightaway. The Spreadwallet does everything automatically. It's like a multi-headed SPV-Monster.
If you put a node in Full mode, you will need to set it up first. (More about it later in more detail). This means you have to download the official daemon from the coins site and tell spreadwallet where you installed it, etc...
Now, there are 2 cool things about the way you can run full nodes here:
1) you can quickly setup raspberry pi's that will act as 24/7 full nodes that communicate with the spreadwallet over SSH. Everything is done through the wallet.
(Just to emphasize: I'm currently running my spreadwallet with only a raspberry pi as main full spreadcoin node.
And, as you would expect, the raspberry node keeps on running 24/7, even if I shut down my main computer!
)
2) you can quickly switch between Full and SPV mode depending on your needs. (ever waited for a full bitcoin node to synch to make a quick payment? Well, you can choose to temporarily switch to a SPV connection for BTC and afterwards switch back)
You will be able to scan your local network and figure out which computers and raspberries are available, and what IP they have, etc...
There are still many things missing here, I will inform you about progress.
I'm currently using a few Raspberry Pi 3, but am also exploring if it would be possible to use earlier versions of Raspberry Pi to do "some kind" of other non-node work. I do have a few ideas....
Next screen:
The spreadwallet does not contain a full node in its code, instead you will connect with a spreadcoin deamon that will be included in the package.
I repeat: Spreadwallet and spreadcoin daemon/CLI (based on newest bitcoin CORE) are now two different repositories.
Ok, continuing: The spreadwallet will be centered around ... well.... WALLETS! what else.
The details here are pretty extensive and there are lots of things I am still fleshing out, so I will have to inform you over the next days how the internals of the multi-wallet behaviour will look like and operate.
Here's another screen, with multiple coins simultaneously
BTW, it's entirely possible to run the wallet offline, just to create wallets (especially paperwallets) in a more secure fashion.
And vice versa, you can run Spreadwallet without having any wallet imported, just hosting a few full nodes to operate the blockexplorer.
Fully customizable.
You can even run spreadwallet completely without spreadcoin if you want!
I don't care, the user decides! But that's how you create standards everyone likes to use.
So, to sum it up, this is the progress about the first of the three main things that keep me occupied right now:
1) Spreadwallet
2) Spreadminer (more info soon)
3) Servicenodes (more info about P2P and overlay research soon)