We apply for the two bounties of Golem Network
Inspiration
Originally, the contract address generation when the contract is deployed with the original CREATE opcode is computed by hashing sender address and nonce, which makes deploying a contract with the same address across networks complicated. Creating vanity addresses requires the mining of the sender address which isn't efficient. That's why other methods to compute contract addresses like CREATE2 and CREATE3 emerged. They utilize salts instead of nonces simplifying the proccess of generating deterministic addresses used for gas optimization or branding. The new createX factory (createx.rocks) allows you to deploy the contracts with all the 3 possible methods however you still need computing power to generate the salt. Renting and properly setting up a powerful rig takes both time and experience and we decided this process can be simplified. By abstracting away the computation of the salts to the Golem Network providers we allow anyone to deploy contracts with deterministic vanity addresses without the need for downloading and setting programs on expensive GPU machines. Instead, just interact with our dApp frontend or plugin on Remix (popular smart contract development frameworks).
What it does
AdressForge utilizes a fork of createXcrunch (https://github.com/HrikB/createXcrunch) to harness the power of a GPU for efficiently generating specific Ethereum addresses. It leverages the computational capabilities of the Golem Network to forge deterministic vanity smart contract addresses. A unique feature of AddressForge is its ability to create addresses with leading zeros or a specific pattern. This makes the addresses more aesthetically pleasing or significantly reduces the cost of gas when deploying and interacting with these smart contracts. It employs a user-friendly interface. The app is optimized to find the desired address with minimal effort. Using the Golem Network allows for the decentralization of the app, at the same time handling the complex computations behind the scenes.
How we built it
We deployed a rest API with bun and elysia that is called by the frontend and requests the computation of the vanity adress on Golem Network. We created a custom docker image and uploaded it to the Golem registry. Besides this, we created frontend for the dApp and Remix plugin that connects with the backend.
Challenges we ran into
We had trouble running the createXcrunch image on the Golem Network. We deployed identical containers to other GPU machines and they run without any problems. For now, we are running a mock createXcrunch version that doesn't connect with GPUs, because of lack of documentation and proper testing. It sets the potential avenues for Golem developers to improve the current GPU computational stack that is sill in development. Right now, yagna backend sponsors the transactions for the users. With current yagna version it is not possible to charge the users directly from their wallets. We were informed that the allowance model is currently being developed and should be implemented after its release. In our end-version of dApp the user will be charged directly from his wallet.
Accomplishments that we're proud of
-We designed user friendly interface -We created own Remix plugin -We created functioning frontend -We encountered many problems connecting to Golem and running the createXcrunch image. We learned a lot about connecting docker to Golem. We talked with Golem developers and potentially helped them improve the GPU stack on Golem.
What's next for AdressForge
AdressForge can be easily used by developers who want to create unique, customizable addresses. It is ready-to-release product. Users would pay GLM to compute the addresses and a small maintenance fee to the developers. In the future, we can deploy AdressForge on other computing power provider networks to increase user choice, consequently achieving more decentralization.
Built With
- dockerfile
- figma
- golem
- javascript
- oplencl
- react
- remix
- rust
- shell
- typescript
- wagmi
Log in or sign up for Devpost to join the conversation.