March Progress Report
Repos worked on
- LumeWeb/helios: A fast, secure, and portable light client for Ethereum - helios - Lume Web Git Service
- LumeWeb/hyperswarm-web: Extends the Hypercore DHT to perform node discovery though Skynet via pubkeys - hyperswarm-web - Lume Web Git Service
- LumeWeb/kernel-dns-client: DNS client interface to @lumeweb/kernel-dns module - kernel-dns-client - Lume Web Git Service
- LumeWeb/kernel-eth-client - kernel-eth-client - Lume Web Git Service
- LumeWeb/kernel-handshake-node - kernel-handshake-node - Lume Web Git Service
- LumeWeb/kernel-ipfs-client: IPFS client interface to @lumeweb/kernel-ipfs module - kernel-ipfs-client - Lume Web Git Service
- LumeWeb/kernel-swarm: Skynet kernel module for DHT requests using the @lumeweb/dht-rpc-client package - kernel-swarm - Lume Web Git Service
- LumeWeb/kernel-swarm-client: DHT client interface to @lumeweb/kernel-swarm module - kernel-swarm-client - Lume Web Git Service
- LumeWeb/libhyperproxy - libhyperproxy - Lume Web Git Service
- LumeWeb/libkernel-universal - libkernel-universal - Lume Web Git Service
- LumeWeb/relay-plugin-eth - relay-plugin-eth - Lume Web Git Service
- LumeWeb/relay-plugin-ipfs: IPFS gateway plugin for @lumeweb/relay - relay-plugin-ipfs - Lume Web Git Service
- LumeWeb/resolver-module-eth - resolver-module-eth - Lume Web Git Service
- LumeWeb/rpc-client: A client library that uses hypercore and the @lumeweb/relay server along with Skynet for web, to perform "Wisdom of the crowd" RPC requests. - rpc-client - Lume Web Git Service
Progress:
Development
This month has been focused on getting IPFS completed, getting IPNS support, getting ETH support, as well as getting the supporting libraries updated. I have also been focused on marketing/branding and website design tasks.
IPFS is working and currently uses both delegated routing and DHT. It uses the relay as an outbound socks proxy, and since libp2p encrypts with noise as does hyper, it is a black box and you cannot see what is being requested.
IPFS has over 40 bootstrap peers to mitigate issues with finding content outside the delegated routing nodes by IPFS.
IPNS was much simpler to implement and uses DHT to operate. It has its quirks though that will get ironed out later.
IPFS also stores the data to indexeddb in the browser, so when you fetch something, it can become instant afterward.
Next, ENS. This turned out to be a very hard issue to deal with, especially since I wanted to use the helios client in rust and hit MANY roadblocks. rust and wasm still have a lot of maturity to do with interacting with JS.
So my concerns about ETH taking 1-2 weeks turned out to be a reality.
Even after going through all of that, I ended up forking the code into a new branch and using a TS (TypeScript) client called kevlar. I took a bunch of its components and ended up creating a custom light client implementation between the relay and the browser. I also ran into issues with slow RPC and had to hop providers a few times after realizing that it was not the code.
After this, I created a new ETH DNS resolver and client library, which should be able to function as an ethers.js provider in the future. The ETH module and the DNS resolver are separate kernel modules.
Design, Marketing, and Websites
This month has been spent on designing lumeweb.com
, and web3extension.io
. web3relay.io
is being designed as well but will be getting re-prioritized based on the upcoming tasks.
The project has, however, gotten its new branding finished to go with the new sites. They have been designed together and I am excited to see the new image of Lume launched soon.
The files of all branding (SVG) will be published on the GIT server by the time the sites launch, including the site code too, of course (and figma files). The project discord server was involved in the whole process of the design work and gave feedback. A Twitter poll was created too, to pick the final logo. I also invited the Sia community to come and look.
Next:
April is going to be a busy month:
- I have started working on the extension code again
- UX design of the extension will start this month, and hopefully, finish, but work may drag on into May. The UX is a large unknown on where things will go, and what engineering will be required to support the UX.
- Development of the sites will start this month and hopefully, most will get finished based on the designs.
- Relay development work is needed as is some possible DevOps work, but this might get pushed to May as well.
This concludes my report