It’s always fun to hear about new grants as they’re awarded, but what happens after the announcement? In this series, we review projects that are underway, or already on the finish line. Read on for some recent recipient milestones and accomplishments!
Cloud for fluffy portal client and Development of Portal Networks
Cloud is best known to most people as a beacon chain client, notable for its low resource requirements with just ~750MB memory needed to run a full consensus node. But outside of the spotlight of The Merge, the talented team behind Nimbus (a part of the state organization) is doing much more to make participation in the Ethereum network accessible to anyone, on any device. He portal network is an ongoing cross-team initiative to redefine how resource-constrained devices participate in the Ethereum network, and the Nimbus team has been instrumental in bringing it to life.
Thin client efforts have been ongoing for years and have focused on designing clients to use minimal resources. Many clients now offer some type of thin client; Nimbus recently added a standalone thin client, which provides the information to follow the beacon chain header without the need for full synchronization. However, the potential of Ethereum thin clients is ultimately limited by the design of the network itself. He current thin client network it is based on a client/server architecture: thin clients download block headers and other data as needed, but do not contribute anything. Thin clients rely on full nodes to provide the data they need, but not many full nodes choose to serve this data, making them a limited and unreliable resource.
Recognizing that different applications require access to different data and functionality, Portal Network is designed to be flexible. Instead of bundling all the functions together, it combines several sub-protocols, each dedicated to a specific function. Portal clients can connect to all of the subprotocols, or just a subset, depending on their needs. Just as important, a device running a portal client can contribute whatever resources are available to it (for example, storing a small amount of state or relaying messages between peers). In other words, each client is also a server, capable of accessing the information it needs while adding capacity to the network according to its capabilities. More customers online means a stronger network, not zero-sum competition for limited resources.
The Nimbus team has been an integral part of the design and development of the Portal Network. They have been the first to implement most of the network functions by developing Spongy, a Nimbus implementation designed specifically for the Portal Network, and one of three clients anticipated to be available when the Portal Network comes online (two others are being developed by teams at the Ethereum Foundation). Fluffy was the first client capable of storing and serving content and acted as the backbone of the initial test networks, helping to inform necessary changes to the network specifications as issues arose during implementation.
The team aims to make Fluffy lightweight enough to run from inside a wallet and ultimately integrate it into the Status Mobile App. The prospect of running an entire client from a wallet or dapp has huge implications, not only for network health, but also for decentralization and privacy, as it reduces reliance on the centralized infrastructure that most wallets use. currently to access Ethereum data.
If this busy team gets away with it, you’ll have an Ethereum client in your back pocket before you know it! Regular updates on the development of Fluffy and the Portal Network are posted on HackMD and the nimbus Blog. You can also follow Nimbus on Twitter @ethnimbus; to watch Github for progress on the Fluffy and Nimbus clients (did we mention they’re also working on a run client?), or connect to the computer via Discord, Condition either grid.
pablo miller for Ethereum-Cryptography improvements
Ethereum-Cryptography is one of the most widely used Ethereum libraries, containing essential cryptographic primitives used to develop Ethereum applications in JavaScript and TypeScript. Was thrown out in 2020 by Nomic Foundation to improve the Ethereum developer experience by packaging Ethereum-specific cryptographic dependencies into a library, eliminating the need for the often problematic node-gyp-based dependencies previously relied on by developers.
Bringing these common cryptographic tools under one roof alleviated some pain points for developers; but Paul Miller saw room for further improvement by reducing both the number of dependencies and the overall size of the code base. It’s no surprise that Paul was eager to take this on – he has a long history of building tools to help developers build more efficiently and securely, including chokidar, a cross-platform file viewing service; Y noble-secp256k1a JS implementation of the secp256k1 elliptic curve.
When Paul started working on ethereum-cryptography, the installation package included 38 dependencies and 3.46 megabytes of source code. Not all of this code ends up in production, but an end user of a dapp built with this library kept downloading up to 793kb, roughly 24,000 lines of code. Paul set out to build a more compact and secure library that offered the same functionality, rewriting many of the cryptographic implementations and subjecting the new version to a formal audit. This revision resulted in some important increases in efficiency and security:
- External dependencies reduced from 38 to 5
- Directory size reduced from 10.2 MB to 650 KB
- Source code reduced from 23,799 lines to 5,225 lines
- NPM traffic dropped from 3.6MB to 324KB without caching
- Audit interpreted by cure53 and all vulnerabilities addressed
For more information, please refer to v1.0.0 post postor delve into some of the technical knowledge that arose during reconstruction. You can delve into ethereum-cryptography on Github; keep up with the Nomic Foundation on Twitter or take a look at their Blog; and follow Pablo on Twitter @paulmillr or your staff Github.
Are you working on something that you think could change Ethereum for the better? go to our website to learn more about the Ecosystem Support Program and apply for support.