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.
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.
To test at this stage, follow the steps below.
Visit the miner test page.
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.
Check that you’re receiving rewards correctly.
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
VPool: 0xCd85e3E918F1A36F939281d3ca707EE262a364c6
test DAO multisig: 0xfB474a7FeCDaFBD412ebF0d60A0C32794F82d3dD
PantherVerifier: 0xeeAfce13506847a19141A4513718df17383f4f7b
PantherPool: 0xfDfD920F2152565E9D7b589e4e9faeE6699AD4bd
Vault: 0x9619bd59411a8387a4119e548017C5b86c7bCec5
FXPortalBridge: 0x542c2c3e6BBfD5979E5FEC6708764B93Ba210c51