This commit relocates the explorer code from the research directory to `bin/explorer` to include it as part of future releases.
### Summary of Updates:
#### Darkfi Project
- Updated `Cargo.toml` to include `bin/explorer/explorerd` as a workspace member
- Updated `Cargo.lock` to include the `explorerd` package
- Updated the `Makefile` to include `explorerd` in the build process
#### Explorer Daemon
- Renamed the project directory from `blockchain-explorer` to `explorer`
- Moved the explorer daemon source code to `bin/explorer/explorerd`
- Updated the cargo package name to `explorerd`
- Updated log statement targets from `blockchain-explorer::` to `explorerd::`
- Renamed the explorer configuration file to `explorerd_config.toml`
- Removed Halo2 patches as they are now included in the root package
- Changed default db_path to use explorerd instead of blockchain-explorer in the path
- Changed binary crate Arg structopt name from blockchain-explorer to explorerd
#### Explorer Site
- Moved the explorer site source code to `bin/explorer/site`
- Updated README.md to include new build instructions for explorerd
* Fixed for broken "make install" following recent refactorings. A mixture of typos and irregular nesting for genev executables.
* Same change required for tau-cli and taud.
* Fixed accidental "echo" prefix which I had been debugging with. This PR will need squashing, of course.
Notable changes:
* Rewritten transport protocols into Dialer and Listener (Nym is TODO)
This simplifies using the transports a lot, as can be seen for example
in src/rpc, and generally around the p2p library. It also defines features
for each transport (all of which are enabled by default). We drop the
socks client for Tor and Nym and use first-class support with the Arti Tor
library, and nym-sphinx/nym-websockets (to be used with nym-client).
* Outbound session healing
The outbound session will now poll and try to fill all the requested
slots more efficiently, and if needed, will activate peer discovery to
find more peers if we can't connect to any known ones. Also if we're
unable to connect to any, we shall drop them from our set.
Additionally, transport mixing is enabled by default, so when we're
allowing transport mixing, and we use Tor, we will also be able to connect
to other transports that Tor can connect to (e.g. tcp://).
* Unix socket transport dropped
We haven't been using this, and it seems we're not going down this path,
so the code has been obsoleted and removed.
* TLS session verification
We fully verify server and client TLS certificates upon connection so
we're able to perform TLS1.3 with forward secrecy.
* lilith pruning
lilith now periodically prunes known peers from its sets if it's unable
to connect to them.