Do you run your own Qubic miner? Now you can connect your own miner to the QLI Pools.
The Distribution of your solutions is handled automatically.
Pool Connect uses a lightweight Stratum-like protocol.
The Pool Connect is PPS+ based.
Note
Connect your miner to the pool through a secure web socket wss://wps.qubic.li/stratum
The protocol is JSON based and runs through secure websockets.
Every packet exchanged between client and server uses same base structure:
{
"Method": "StratumLogin", // the method you want to call / or received by the server
"MessageVersion": 0 // default 0; defines the version of the message; reserved for future use
// followed by specific fields per request/response
}StratumLogin => Authenticate/Login
StratumSubmit => Submit a Solution
StratumJob => A job description
- Connect to the RPC Service
wss://wps.qubic.li/stratum - Authenticate yourself
- Submit Solutions
Send a StratumLogin. Make sure you use either AccessToken OR Wallet. Both are not allowed!
** Request **
{
"Method": "StratumLogin", // the method you call
"AccessToken": "", // the QLI Access Token (your user account)
"Wallet": "", // a qubic wallet address
"Worker":"test", // the name of your worker
"Os": "Linux" // OPTIONAL: the OS you run your miner
}example:
{
"Method": "StratumLogin",
"AccessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6ImQzNzMyODc2LTY5ZDctNGI1OC1hNmUzLWM2MzZkMGQ4ZDE0NiIsIk1pbmluZyI6IiIsIm5iZiI6MTcyNTM3NjkyOSwiZXhwIjoxNzU2OTEyOTI5LCJpYXQiOjE3MjUzNzY5MjksImlzcyI6Imh0dHBzOi8vcXViaWMubGkvIiwiYXVkIjoiaHR0cHM6Ly9xdWJpYy5saS8ifQ.sregOyk2PEyXv8ssdQDBtTps1JFBLghcJCzDFvaD6hWoVA_T-crfQZbiV0E_atqd6sxNHYKGmeVCOoU9crLU4mnojZdF1vyp3VttB3ZIqo3qIgr0R4jWnwZ95bGN1c6NE3zb9y7ZWor5-4ttLkR_5moxiZZvaKG2WWSxFJ-7kk6SVSw7z8iaYyVpPX1Tdu6pBWxDStYYaoVvgNzx6RShU_r2AVCB1JGfv16vKvAIGmPcluvS-ayKwfgOpY1uEbsH6Lswd_KGbB1aJC7g8AI1CUoYiUUl_CJUBZfG0FbBgtGDRhfPUcYM5z8BEyIrm6bfKhMHuJmIF86NJYydRUHgow",
"Worker":"test",
"Os": "Linux"
}if your login was successful you receive a job message and the connection stays alive. If there was an error the connection is closed.
When your miner is connected it will receive jobs automatically as StraumJob packet.
All binary data is HEX encoded.
Note
Jobs are broadcasted after authenticateion, solution submit or in an interval of ~30 seconds.
Response
{
"Epoch": 170, // active epoch
"RandomSeed": "", // HEX encoded random seed
"PublicKey": "", // HEX encoded publicKey (target to mine to)
"Difficulty": 316, // the actual active difficulty for the pool
"Method": "StratumJob", // defines that this is a job
"MessageType": 501 // id of the message type = StratumJob
}example job to work on:
{
"Epoch": 170,
"RandomSeed": "A030176C55672400F4C6472076C1C15AB2BC0EFC16B6B6481578C3F3FF54D561",
"PublicKey": "B43D85DF69E4E9C92938A214C5C20634D90768C0E98A94575FEB9AE53D3C60F8",
"Difficulty": 316,
"Method": "StratumJob",
"MessageType": 501
}Important
During the Qubic idle phase. Your miner will receive empty/idle jobs and should stop mining.
example job during idle (your miner can do other work but not working on Qubic):
{
"Epoch": 170,
"RandomSeed": "0000000000000000000000000000000000000000000000000000000000000000",
"PublicKey": "0000000000000000000000000000000000000000000000000000000000000000",
"Difficulty": 316,
"Method": "StratumJob",
"MessageType": 501
}If your miner has found a solution, you can use StratumSubmit.
All binary data is HEX encoded.
Request
{
"Method": "StratumSubmit", // the method you call
"Epoch":170, // the epoch; derived from StratumJob
"RandomSeed": "A030176C55672400A4C6472076C1C15AB2BC0EFC16B6B6481578C3F3FF54D561", // the random seed; derived from StratumJob
"PublicKey": "C83634426BC99DAA83D16EF2BAF7CA3116C196559EA3CB888CE63CDFE910A271", // the public key; derived from StratumJob
"Nonce": "C83634426BC99DAA83D16EF2BAF7CA3116C196559EA3CB888CE63CDFE910A271" // the nonce; derived from StratumJob
}example:
{
"Method": "StratumSubmit",
"Epoch":170,
"RandomSeed": "A030176C55672400A4C6472076C1C15AB2BC0EFC16B6B6481578C3F3FF54D561",
"PublicKey": "C83634426BC99DAA83D16EF2BAF7CA3116C196559EA3CB888CE63CDFE910A271",
"Nonce": "C83634426BC99DAA83D16EF2BAF7CA3116C196559EA3CB888CE63CDFE910A271"
}Important
Solutions/Shares are validated async. When your miner sends a solution you will get a message which indicates if the solution was accepted for validation or it was rejected. An accepted solution may be not valid and not count toward your account.
Response
{
"Success": false, // indicates if your solution was accepted for validation or not
"Message": "Obsolete MiningSeed", // message from the server;
"RandomSeed": "", // HEX encoded randomSeed for your reference
"PublicKey": "", // HEX encoded publicKey for your reference
"Nonce": "", // HEX encoded nonce for your reference
"Method": "StratumSubmit",
"MessageType": 502
}example:
{
"Success": false,
"Message": "Obsolete MiningSeed",
"RandomSeed": "A030176C55672400A4C6472076C1C15AB2BC0EFC16B6B6481578C3F3FF54D561",
"PublicKey": "C83634426BC99DAA83D16EF2BAF7CA3116C196559EA3CB888CE63CDFE910A271",
"Nonce": "C83634426BC99DAA83D16EF2BAF7CA3116C196559EA3CB888CE63CDFE910A271",
"Method": "StratumSubmit",
"MessageType": 502
}