Stage 0

For the current dApp, see the entrypoint. Note that, each stage's entrypoint is deprecated in favor of the next stage.

Status: Complete (but the docker Panther Miner is still working!)

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.

To see the original announcement, along with explanations of the components tested, click here.

Testing scope

Stage 0 launches the Panther Miner, a specialized miner designed to interact with a blockchain network.

Within Panther, Ecosystem Operators run an Oshiya node — code that fetches the pending mining queue. Oshiya then computes 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.

How to test

To test at this stage, follow the steps below.

Test in app

  1. Visit the miner test page.

  2. Understand the following three variables:

2.1 Interval (in seconds): the designated pause between iterations produced automatically by the miner. You may reduce this down if your system and the RPC provider handles the load, or you may increase this to lengthen the space between iterations.

An iteration includes:

a) Checking the BusTree contract for a queue expecting processing and selecting the most profitable one to process.

b) Generating a ZK proof by processing the chosen queue.

c) Submitting the ZK proof to the blockchain.

2.2 Private Key: the private key of the wallet used to sign batch transactions and receive rewards.

There are two options for this field:

2.2.a Use an existing key, e.g. exported from your MetaMask; or 2.2.b 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.

2.3 RPC URL*: use any RPC you prefer, as long as it’s valid for the Mumbai network.

3. Ensure you have a positive balance of MATIC in your wallet to interact with the product. You can visit faucet_1 or faucet_2 to get test MATIC tokens.

4. Click the “Start Mining” button to start the process.

5. Check that the “Logs” section is updating.

6. Check that the “Mining Statistics” section is updating.

Please, note:

  • 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.

  1. Check that you’re receiving rewards correctly.

  2. Stop mining. (Note: the miner will finish the ongoing iteration before entirely stopping).

Using a Docker image

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: Smart contract details (on Mumbai)

  • BusTree: 0x678D34aA4fc546bA806287a8289FfdAA84681a03

  • VPool: 0xCd85e3E918F1A36F939281d3ca707EE262a364c6

  • test DAO multisig: 0xfB474a7FeCDaFBD412ebF0d60A0C32794F82d3dD

  • PantherVerifier: 0xeeAfce13506847a19141A4513718df17383f4f7b

  • PantherPool: 0xfDfD920F2152565E9D7b589e4e9faeE6699AD4bd

  • Vault: 0x9619bd59411a8387a4119e548017C5b86c7bCec5

  • FXPortalBridge: 0x542c2c3e6BBfD5979E5FEC6708764B93Ba210c51

Last updated