Comment on page
This testing stage (and activity in production) is directed towards miners, a key role in the Panther ecosystem, as opposed to DeFi users. It started in July 10th, 2023, and is projected to last for two weeks.
In this Stage, we’re launching the Panther Miner, a specialized miner designed to interact with a blockchain network.
Within Panther, Miners are responsible for running a piece of code that fetches the pending mining queue. They then compute updates to the Merkle trees needed to append the UTXOs of the queue to the trees, create a SNARK-proof that proves the correctness of the updates, and submit these updates to be written on-chain together with the proof to smart contracts. As such, the Panther Miner software acts as the “Bus operator” for the Bus Tree (see Shielded Pools) on behalf of a user. In this implementation, the algorithm to reward miners is fairly simple. Eventually, the Panther community may want to implement a more sophisticated algorithm after some initial usage statistics are collected.
To test at this stage, follow the steps below.
Note: This option was active during the first rounds of Stage 0, but it has since been turned off. Starting from August 30th, 2023, only docker mining (see below) will work.
- 1.Visit the miner test page at the latest updated link (June 15th, 2023):
- 2.Fill in the following three variables:
- Interval (in seconds): the designated pause between iterations produced automatically by the miner. An iteration includes:
1) Checking the BusTree contract for a queue expecting processing and selecting the most profitable one to process.
2) Generating a zk-proof by processing the chosen queue.
3) Submitting the zk-proof to the blockchain.
- Private Key: the private key of the wallet used to sign batch transactions and receive rewards.
There are two options for this field:
- 2.Generate a new key pair. Click “Generate private key using MetaMask” and get a new private key inserted into the corresponding field. You can add the new address to your MetaMask (click “Show Private Key” to unveil and copy the data) afterward.
A new public key (address) will be reflected as soon as you start mining. Find it in the “Mining statistics” section.
- RPC URL: use any RPC you prefer, as long as it’s valid for the Mumbai network.
4. (Optional) Add the tZKP token to your wallet using the following contract address 0x4004C49aBb96B11D89A52DeCCa2D1522da7f3089 (it is reflected within the “Mining Statistics section”/”Reward” field). You will see your ZKP balance increasing as soon as you start mining queues. Your reward balance is also available on the UI (see below).
5. Click the “Start Mining” button to start the process.
6. Check that the “Logs” section is updating.
7. Check that the “Mining Statistics” section is updating.
- The “Generated Proof” amount can be bigger than “Submitted Proof,” meaning other miners submitted a generated proof earlier than you.
- “Mining Success” = “Submitted Proof”(s).
- Your Balance (of MATIC) will decline over time because the miner client generates UTXOs to let you interact with them to test the functionality. Submitting UTXOs incurs a cost.
- “Reward” ($ZKP balance) will grow over time if your mining activity is successful. Rewards are distributed as soon as data is processed.
8. Check that you’re receiving rewards correctly.
9. Stop mining. (Note: the miner will finish the ongoing iteration before entirely stopping).
For users interested in running the Panther Miner themselves instead of using a browser version, the dockerized version has the same functionalities and logic outlined above. Here’s the link to the docker image page: https://hub.docker.com/r/pantherprotocol/miner-client Smart contract details (on Mumbai)
- BusTree: 0x678D34aA4fc546bA806287a8289FfdAA84681a03
- tZKP Token (test token on Mumbai, replica of Polygon version of ZKP): 0x4004C49aBb96B11D89A52DeCCa2D1522da7f3089
- VPool: 0xCd85e3E918F1A36F939281d3ca707EE262a364c6
- test DAO multisig: 0xfB474a7FeCDaFBD412ebF0d60A0C32794F82d3dD
- PantherVerifier: 0xeeAfce13506847a19141A4513718df17383f4f7b
- PantherPool: 0xfDfD920F2152565E9D7b589e4e9faeE6699AD4bd
- Vault: 0x9619bd59411a8387a4119e548017C5b86c7bCec5
- FXPortalBridge: 0x542c2c3e6BBfD5979E5FEC6708764B93Ba210c51
- Test ZKP Token (replica of ZKP on Ethereum Mainnet for e2e simulation purposes): 0xfD466eF2c700E2f66b2d05D92896b95d541e66e5