Skip to content

Grant Announcement for CDK Rollup Development - Testnet #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
creepas opened this issue Apr 8, 2024 · 56 comments
Open

Grant Announcement for CDK Rollup Development - Testnet #8

creepas opened this issue Apr 8, 2024 · 56 comments
Assignees

Comments

@creepas
Copy link
Contributor

creepas commented Apr 8, 2024

Grant Announcement for CDK Rollup Development - Testnet

Overview

We are excited to offer a grant opportunity for innovative developers or teams to create a CDK (Consensus Development Kit) rollup on the Polygon blockchain using the FUMA gas token. The Polygon Chain Development Kit (CDK) is a flexible, open-source toolkit designed to empower blockchain developers to initiate new L2 chains )utilizing zero-knowledge proofs (zkEVM, with an optional validium) on Ethereum.

This grant aims to support the development and deployment of a testnet that demonstrates the practical applications and efficiency of a CDK rollup. We are particularly interested in proposals that explore creative uses of the FUMA gas token to optimize transaction costs and scalability. (https://callisto.network/fushuma-tokenomics/)

This is just first phase of the road as the next is deployment of Type 1. (https://docs.polygon.technology/cdk/architecture/type-1-prover/intro-t1-prover/)

But deployment of Type 1 will be separate grant so don't include any budget for the other grant.

Eligibility and Project Scope

  • Eligibility: Applicants can be individual developers or teams with experience in blockchain development, especially with Ethereum, Polygon and L2 solutions.
  • Project Focus: The project should focus on building a fully functional CDK rollup testnet that integrates zkEVM or validium technologies.
  • Proposal Requirements: Proposals should include a detailed plan for utilizing the FUMA gas token within the rollup environment to enhance performance and reduce costs.

Application Process

  1. Proposal Submission: Submit a detailed proposal outlining your project plan, timeline, team background, and budget.
  2. Deadline: Proposals should be submitted on this GitHub repo by 19.4. 2024..
  3. Submission Guidelines: All submissions must comply with the guidelines and documentation provided by Polygon, available in the following resources:

Funding Details

  • Development Funding: The selected project(s) will receive funding to cover development costs, including developer fees, infrastructure, and related expenses.
  • Funding Disbursement: Grant amounts and funding disbursements will be discussed with the winning applicant(s) based on the scope and needs of the proposed project.

Evaluation Criteria

Price and speed.

We look forward to receiving your innovative proposals and to supporting the development of advanced blockchain technologies on the Fushuma Network.

@hrasekj
Copy link

hrasekj commented Apr 15, 2024

I've explored the options for implementation and I'm ready to start ASAP. My offer includes a scope ranging from 12 to 15 man-days and compensation ranging from 6k to 8k USD.

@creepas
Copy link
Contributor Author

creepas commented Apr 15, 2024

Hello, we were hoping to get somewhere between 4-6 k USD.

Can we agree on payment of 50 percent in USDT and 50 percent in FUMA?

Thanks cReepas

@creepas creepas self-assigned this Apr 15, 2024
@hrasekj
Copy link

hrasekj commented Apr 15, 2024

Thanks for your reply. I propose 7k USD, with 70% in USD and 30% in FUMA. If we agree on these terms, I can start tomorrow.

@spatialiste
Copy link

Hey @hrasekj, OK that's fair, so let's do it on your terms, but we'd like to have the testnet before April 24. Is that okay with you?

@hrasekj
Copy link

hrasekj commented Apr 15, 2024

Unfortunately, I won't be able to fulfill the request by the deadline of April 24th. While the scope of the project is within the range of 12 to 15 man-days, I need time until April 30th to ensure thorough completion.

@creepas
Copy link
Contributor Author

creepas commented Apr 16, 2024

Hello, you can start working, guys will post some additional comments to you.

@spatialiste
Copy link

Hi @hrasekj, We had a chat with @creepas and Dr. ZS, and below is what is expected for this grant. Does this work for you?

  • Creation of a testnet based on Polygon SDK with customized Tokenomics.
  • Deployment on Fushuma servers.
  • Testnet Explorer.
  • Support for Testnet deployment.
  • 2 months support for customization.

@hrasekj
Copy link

hrasekj commented Apr 17, 2024

Hi @spatialiste, this is ok for me. There is one question about the Testnet explorer. You mean that would be possible to see transaction in some existing explorers, like polygonscan?

@spatialiste
Copy link

Hi, team. Nice to meet you here. Sorry for my late reply. I was introduced to you by cReepass. (this is my contract: https://t.me/thomster_web3) after checking your grants, I am really interested in your project as a full-stack and web3 developer. I would like to receive around 6K USD per month for the amount of work I do. And I am ready to start working immediately. Let me know.

Hello, @RealToma, thank you for your interest in Fushuma.
Please note that we are not offering a full-time position. This is a grant and we need to discuss the conditions of each party. We have also described the tasks to be performed and we would like to know the timeline you propose as well as the cost.

Please make a proposal.

@spatialiste
Copy link

spatialiste commented Apr 17, 2024

Hi @spatialiste, this is ok for me. There is one question about the Testnet explorer. You mean that would be possible to see transaction in some existing explorers, like polygonscan?

Hey @hrasekj. We should deploy a testnet explorer based on an open-source solution so everyone can track transactions easily.

@hrasekj
Copy link

hrasekj commented Apr 22, 2024

Some progress info here. I managed to start zkevm without custom token. I'm looking into custom token solution, via Kurtosis CDK from polygon. It's bit complicated, because, there is more services involved and Smart Contract needs to be deployed on L1.

@spatialiste About the explorer. I did not found any reliable solution in open-source. I hope it's because a bad search.

@creepas
Copy link
Contributor Author

creepas commented Apr 22, 2024 via email

@creepas
Copy link
Contributor Author

creepas commented Apr 22, 2024

Do you need token on ETH or polygon

@creepas
Copy link
Contributor Author

creepas commented Apr 22, 2024

@hrasekj
Copy link

hrasekj commented Apr 25, 2024

@creepas Do you have genesis.json file for this?

What i learned so far is that i need this genesis.json file as part of zkEVM config. As far as i know, it is the only part missing.

@creepas
Copy link
Contributor Author

creepas commented Apr 25, 2024

@yuriy77k can you provide the json?

@yuriy77k
Copy link
Collaborator

@yuriy77k can you provide the json?

I'm not familiar with it.
I know only two parameters that we can provide:
chainId - unique chain Id which we should choose
gasLimit - a maximum gas per block (I don't know how much Fushuma wants to use. For example, ETH has 30M Gas per block (0x01C9C380)

@hrasekj
Copy link

hrasekj commented Apr 26, 2024

Hi @yuriy77k, ok looks like the genesis is only needed for zkevm to deploy.

For now I'm tryting to figure out how to work with that genesis and everything what i need to deploy to L1 chain to utilize the smart contract in zkevm node.

Besides contract with gast token i need to deploy few more contracts, like ProxyAdmin, RollupManager, etc. This is something i'm working at right now. These contracts are part of 0xPolygonHermez/zkevm-contracts repository. It's not something i'm able to do on first try, there are small catches i need to deal with. When i successfully deploy these it should be possible to have zkevm rollup ready for final testnet deploy as we agreed to.

Also, is it possible to supply me with some SepoliaETH? I'm able to get only 0.5 per 24 hours via Alchemy faucet. And i need this amount for each try.

@yuriy77k
Copy link
Collaborator

Also, is it possible to supply me with some SepoliaETH? I'm able to get only 0.5 per 24 hours via Alchemy faucet. And i need this amount for each try.

Unfortunately I don't have Sepolia ETH, I received only 0.05 ETH from faucet.

@creepas
Copy link
Contributor Author

creepas commented Apr 27, 2024 via email

@hrasekj
Copy link

hrasekj commented Apr 27, 2024

@creepas Can't do, Alchemy is only working fouced i found and they check phone number on sign up.

@creepas
Copy link
Contributor Author

creepas commented Apr 27, 2024 via email

@creepas
Copy link
Contributor Author

creepas commented Apr 29, 2024

https://www.infura.io/faucet/sepolia this cant be used? I created account with email and its fine. Tell me what wallet to use.

@hrasekj
Copy link

hrasekj commented Apr 29, 2024

As far as i know they have bug there. Every time it ends up with error, that i have to have activity on mainnet with that adress. And i have that activity. Alchemy have same security measures and im able to get SepoliaETH there.

https://www.alchemy.com/faucets/ethereum-sepolia

@tamilselvam412
Copy link

Please share address where you need sepolia ETH

@spatialiste
Copy link

Some progress info here. I managed to start zkevm without custom token. I'm looking into custom token solution, via Kurtosis CDK from polygon. It's bit complicated, because, there is more services involved and Smart Contract needs to be deployed on L1.

@spatialiste About the explorer. I did not found any reliable solution in open-source. I hope it's because a bad search.

Hello @hrasekj, if we can't find an open-source solution for the explorer, can you build it? This is a significant part of this grant, so we must figure it out.

@yuriy77k
Copy link
Collaborator

yuriy77k commented May 1, 2024

@hrasekj why you can't use Blockscout (as we had on Callisto Network)? It's open source https://github.com/blockscout/blockscout

@hrasekj
Copy link

hrasekj commented May 2, 2024

@yuriy77k This looks good, i will use that. My search was for zkevm explorer so i missed this one. Thank you

@spatialiste For your question. I will use blockscout/blockscout as explorer.

@tamilselvam412 I use this address for funding my deployment accouts:
0xdC2fb1181c3381d8d6F371bCb2556e560aaf6aE6

Also i have found package Snapchain/zkValidium-quickstart. It contains whole deployment example of zkevm validium and as part of it's configuration is blockscout lib. This is something i work on now. And hope this is will be final solution.

I'm struggling with deployment with smart contracts on L1. I managed to deploy whole stack of contracts to L1, but zkevm node did not work with them. My guess is i mixed wrongly version of zkevm contracts and node. I expect, when deploy shlould be successfull i need to generate new set of addressess and use them for deployment of smart cotracts to L1. Then generate genesis file and use that file as config for zkevm-node.

One last thing. In final, there will be deployed smart contracts on L1 (sepolia) and run new L2 chain, with its own chainId. Am I correct?

@hrasekj
Copy link

hrasekj commented May 4, 2024

@yuriy77k @spatialiste @tamilselvam412 @creepas Guys i need your help with funds.

It's not simple to get SepoliaETH from faucet, but i now khow to get them. So here is what i know so far:

Alchemy faucet

  • gives 0.5 SepoliaETH per 24 hours, per address, per account
  • address on mainnet must have at least 0.01 ETH
  • you must be logged in to alchemy account

Infura faucet

  • gives up to 0.5 SepoliaETH per 24 hours, per address, per account
  • address on mainnet must have at least 0.1 ETH, but to get 0.5 SepoliaETH, the address must have at least 0.5 ETH
  • you must be logged in to infura account

That means to get maximum, we need for each account one address with mainnet activity.

I lost my PK for address on mainnet, so now have to wait for my bank to sent money to exchange and then I could buy the ETH 😮‍💨

So please, if you have address on mainnet with ETH i would like to ask you to, send me SepoliaETH from faucets to this address:
0xdC2fb1181c3381d8d6F371bCb2556e560aaf6aE6

@hrasekj
Copy link

hrasekj commented May 7, 2024

I have question about fees on ethereum. I hope this is only problem on Sepolia, but i must ask. Is it possible for some transactions to have bigger fees just because of type of transaction? Or fees depends only on network traffic?

When you look at this address, those fees just jumping. Yesterdays deployment of smart contrats failed, when i had to pay fee of 0.4eth :/

@hrasekj
Copy link

hrasekj commented May 7, 2024

Also i need those SepETH, as far a i know i need at least 1.2 SepETH for deployment of full set of smart contracts, with gas token involved. Also Whole deployment process must be on first try i can't afford any hickups :/ I think i able to go thru wole process of deployment, but i have to wait for funds.

@hrasekj
Copy link

hrasekj commented May 9, 2024

Hi everyone, today i finally started the rollup node and now we should talk about next steps in deployment to server with FUMA token involved. Also i would like to show you what i have and need you to confirm, that this is what you expect.

Server on which i'm running the whole thing will be deleted in few days, so we should schedule meeting for tomorrow.

@spatialiste
Copy link

spatialiste commented May 9, 2024

Hi everyone, today i finally started the rollup node and now we should talk about next steps in deployment to server with FUMA token involved. Also i would like to show you what i have and need you to confirm, that this is what you expect.

Server on which i'm running the whole thing will be deleted in few days, so we should schedule meeting for tomorrow.

Hey @hrasekj, would tomorrow at 10 am (Prague time) work for you? I've checked with the team and everyone is available at that time. If you agree, let me know your email so I can send you the invitation to the call.

@hrasekj
Copy link

hrasekj commented May 9, 2024

@spatialiste Yes, i will be there. You can send me invitation via this email: ltxuptqw4@mozmail.com

@spatialiste
Copy link

@hrasekj Great, I sent you the invitation, looking forward to talk tomorrow.

@creepas
Copy link
Contributor Author

creepas commented May 15, 2024

Hello, any updates?

@hrasekj
Copy link

hrasekj commented May 15, 2024

Here is a summary of, i hope, all stuff i did in prevous weeks. I do not cover struggle i had with zkevm-contracts or kurtosis-cdk, this is just output.

At first i successfully deployed zkEVM contracts on Sepolia testnet. And run zkEVM Rollup trusted node. But since the fees for sending batch transactions on L1 were high, I switched to another solution. I will mention the details later in the text.

Here is a summary of the used addresses from Sepolia deployment for preview:

I also have docker-compose.yml and all the contrat output files, like jsons and keystores, so this deployment can run again if needed.

Explanation of addresses needed for CDK deployment

  • admin:
    • here should be neccessary funds for whole deployment to pay transaction fees or fund some accounts if needed
    • all smart contracts will be deployed from here
  • sequencer:
    • via this address sequencer service will be sending transaction baches to L1
    • in case of Validium, sequencer will be sending transaction batches to DAC service
  • aggregator:
    • this is used address is used in aggregator service for verfying batches, via prover and L1
  • timelock:
    • base smart contract here for more info
    • for testnet deployment is used admin address as timelock, some explanation why is here
  • claim tx manger:
    • what i understand, this address is used only for bridging
    • see here - there is not address used directly, but it's keystore
    • also see here

Above addresses are used in both consesus scenarios.

For Validium consensus there are some more addresses needed:

  • agglayer:
    • used inside agglayer service
    • see here and here
  • dac:
    • aka data availability comittee
    • used inside DAC service
    • sequencer comunicates with DAC service in Validium consensus scenario, instead of with L1
  • proofsigner:
    • should be used inside agglayer service, don't know much more
    • see here

Special tokens

  • gas token
    • I still don't know exactly what it is for, the name suggests that this token will be used to pay fees on the L2 layer, but I don't have more details
    • the only thing I understood is that it must be moved to the L2 layer using the bridge. Unfortunately, I didn't succeed to do so
    • How to use native token
  • pol token
    • in the configuration files it is called pol token, but the token name can be anything, e.g. TFUMA
    • this token which will be primarily used by all addresses on L2

To deploy those tokens, the same ERC20 contract is used in kurtosis-cdk and zkevm-contracts

Polygon CDK Kurtosis Package

I used the Kurtosis-CDK for demo purposes. And deployed the L1 node as well as all smart contracts and put the entire infrastructure into operation through this package.

  • 0xPolygon/kurtosis-cdk
  • it is only suitable for testing and understanding how the whole stack works
  • it is not suitable for this stack to run long term
    • all data are enclosed in docker containers, i.e. it is very easy to lose them if the service restarts
    • when the settings are changed, the containers are deleted and created again, and the ports exposed to the outside are also changed
    • Kurtosis includes a log aggregator service. The service collects all logs from all containers and gradually grows, it needs to be deleted regularly. I haven't found any settings that automate this process. It is necessary to delete logs directly inside the container.

What is running on server now

When you look at this diagram, you can see section "Trusted / Central environment" and "L1 blockchain", these two blocks from diagram now running on the server.
Architecture Diagram
https://github.com/0xPolygon/kurtosis-cdk#getting-started

Now you can use these services on the server.

Current server will be available until May 18. Until then you can check how everything works and we can discuss another deployment for longer run.

@Dr-ZS
Copy link

Dr-ZS commented May 16, 2024

The gas token is the token used to pay for the transaction fees. This will be the FUMA token which will be deployed on L1 and will be used as a gas token in L2.
Hence, the token is first deployed on L1, and is transfered through the bridge to L2 where it can be used as a gas token on L2. My question here is if we can define our own logic on next testnet the gas that it will be required for the transaction and how it will be used (for example burn a percentage).

Also I dont know if this is the issue you faced but here
https://github.com/0xPolygon/kurtosis-cdk/blob/8c75b2443a2c38e0b3cb0bb733b42d3a6a410978/docs/how-to/use-native-token.md it is claimed " !!! warning - As of 2024-03-27, there might be a small bug in the bridge UI which causes the transaction not to be claimable on L1 with the UI".

@hrasekj
Copy link

hrasekj commented May 17, 2024

@Dr-ZS Yes, the bridge UI is main problem, I'm unable to move gas token to L2. There is also a bash script for this, but it did not work for me either.

You can see the script here: scripts/bridge-manual-claim.sh

So if i understands correctly, you are ok, with use of POL token on L2, but FUMA token must be used as gas?

@Dr-ZS
Copy link

Dr-ZS commented May 17, 2024

The native coin is the one created in L1 as a token. This will be used as the main coin and for gas payments.

@hrasekj
Copy link

hrasekj commented May 17, 2024

@Dr-ZS i also have this answer from polygon about gas token vs pol token. Do i understand correctly, that those addresses should be different?

the pol token address is different from the gas token. This is an ERC token that uses within the protocol. When the sequencer send batches to L1, it pays a fee in Pol Token. That fee is like a collateral which is paid back when the proof is verified on l1

@Dr-ZS
Copy link

Dr-ZS commented May 17, 2024

@hrasekj What you describe as POL is the native token upgrade for Polygon 2.0. Please read more here https://polygon.technology/blog/polygon-2-0-implementation-officially-begins-the-first-set-of-pips-polygon-improvement-proposals-released

@creepas
Copy link
Contributor Author

creepas commented May 23, 2024

Sended invite for the call to 1615 to review progress and to discuss future steps.

@hrasekj
Copy link

hrasekj commented May 23, 2024

As we discussed, i wil try to deploy whole zkevm rollup using callisto network as L1 for testing. I will inform you, when it's ready.

Also i'm using this address for funding: 0x53879F7ed5D9c3b9759D8C24e2A65f6C444F6C22

The main problem what im facing, when deploying to real L1 network is, that L2 bridge address is not funded via genesis.json, which leads broken bridge due to fact, that it does not deploy smart contract to L2 bridge address. Let's see if i can fix this.

@hrasekj
Copy link

hrasekj commented Jun 3, 2024

Ok guys, new update.

@yuriy77k helped me downgrade smart contracts to version 0.8.19 and i was able to deploy them on callisto network. You can check zkEVM rollup on these URLs now.

In top accounts section in explorer, you can see 3 addresses:

  • 0x27E80f135cF8b70fAa0fe129F84a6dCBd8DB984E - this address is deployer, and this address have all initial funds on L2 (POL in this case)
  • 0x53879F7ed5D9c3b9759D8C24e2A65f6C444F6C22 - my own address to which i sent some tokens
  • 0x64e484ed8E7E9476Ddabe31B1e05F8E16E1f92a5 - sequencer address, this address will receive all fees from transaction on L2

Also, i'm a little bit confused about sequencer address on L1, first i thought it needs to be well funded, so the batches can be send there. But i don't see much activity on that address 🤔

I will send you private key for deployer address, so you can test out sending tokens between addresses.

You should also check these settings for sequencer. They influence how often batches a send to L1 and how often new txs are checked. Good source is here.

  • LoadPoolTxsCheckInterval
  • ForcedBatchesTimeout
  • NewTxsWaitInterval

I made repository, where i have whole setup prepared with README how to deploy smart contracts and whole rollup. I would like to finalize this. This is all i can give you.

@creepas
Copy link
Contributor Author

creepas commented Jun 19, 2024

Hello,

i made some tests and we need to deploy tool to test L1 to L2 communication. The L2 to L2 is working, but is really slow in publishing the transaction to memory pool. Maybe its because its still synchronizing L1, hope it will be faster in few hours after it will sync.

https://youtu.be/1yhlkBppbAo

cReepas

@creepas
Copy link
Contributor Author

creepas commented Jun 24, 2024

Hello, so the testing shows really slow transaction propagation. We need to tackle it so its faster.

cReepas

@yogitym
Copy link

yogitym commented Jun 24, 2024

Hello, I'm Yogesh from Zeeve. We're official implementation partners of Polygon for CDK implementation.

We can help you build the testnet as well as mainnet.

@spatialiste
Copy link

Hello, I'm Yogesh from Zeeve. We're official implementation partners of Polygon for CDK implementation.

We can help you build the testnet as well as mainnet.

Hello Yogesh, could you make us a proposal? We definitely need to speed up the process.

@yogitym
Copy link

yogitym commented Jul 8, 2024

Hello Spatialiste, sure. Here's our proposal.

  • The implementation will be done in two phases by Zeeve:
    • Phase-1: The CDK-based zkRollup mainnet will be implemented on the customer’s bare-metal machines except for the Block Explorer and NativeBridge that will be running on the company’s cloud account.
    • Phase-2: The Block Explorer and the Native Bridge will be migrated to the customer’s bare-metal machines.

b) Payment Terms:

  • One-time Implementation Costs
    • 50% to be paid after the Implementation of the Phase-1
    • Balance 50% to be paid after the Implementation of the Phase-2

Timeline: 1 Week

@spatialiste
Copy link

Hi @yogitym, your proposal is accepted.

Please note that the budget for this grant is 5000 USDT and 2000 USD equivalent in FUMA tokens, which will be distributed 7 days after the start of trading.

@spatialiste
Copy link

After a discussion with Zeeve, approximately 50% of the blockchain development has been completed, so we have proceeded with the initial payment.

Transaction link: https://etherscan.io/tx/0x42a09f9a7caf787197d39bc8e143504858ef52687caf754b4def6d44f4fc8551

@spatialiste
Copy link

Update - November 6, 2024

Yesterday, we had a discussion with our tech partners at Zeeve to review the progress of Fushuma blockchain's development, and... the momentum is exciting!

While we can't share all the details yet, we can report that the Fushuma and Zeeve's tech teams are optimistic about what's coming. A more in-depth update will come from Zeeve by the end of the next week, so keep an eye on this space.

Big steps are just around the corner!

@gnv-zeeve
Copy link

gnv-zeeve commented Dec 4, 2024

Mainnet Preparations, Update - December 4, 2024

Hi Everyone, Apologies in the delay on this report, the complexity of stack is keeping us heads down with preparations. Sharing a few updates as we get closer to the main net launch. Zeeve has been working to test the latest Polygon release all through for last several weeks, here are the results:

  • We are able to test the latest release with the Pessimistic Proofs which is the latest offering from Polygon on CDK networks.
  • We also tested the mock prover on the latest release.
  • We also, this week have performed the test on the latest release with FEP (Full Execution zk Proofs) and we have had it run with ETH Sepolia public testnet.
  • We could also test deployment of smart contracts and test the zk Proof generations for the sequenced transactions.
  • We also tested the DAC ( Data availability committee) with the zkProver on the latest release.
  • We could also check the Unified Bridge the latest element of AggLayer using which the L1-L2 bridging will be achieved. Its the upgrade from LxLy bridge module of the past.

Next up is the final preparations for the Final Mainnet launch, and will share more as soon we we start setting up the core components of the network. More soon....

@spatialiste
Copy link

Update - February 26, 2025

Zeeve successfully deployed the blockchain on January 30th, and it is operating stably.

RPC: rpc.fushuma.com
Explorer: explorer.fushuma.com

This grant is now complete, and the payment has been finalized (View the transaction on Etherscan). We will keep it open for maintenance or improvement discussions.

Note: The network monthly costs of $4,994, are covered by the Fushuma treasury.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants