Ik ben bezig met een Stratum client voor een cryptocoin miner. Stratum is een simpel line-based TCP protocol met JSON-encoded messages. De mining client connect met een stratum server die dan periodiek nieuw werk naar de miner stuurt.
Ik werk met boost::asio async writes en reads.
Ik ben nu zover dat ik kan connecten met de server en de eerste call ("mining.subscribe") kan plaatsen en de return kan lezen. Daarna volgt nog een call ("mining.authorize"). En wat daarna komt zie ik dan wel weer. Het probleem zit hem in de tweede call. Daarvan wordt de callback alleen getriggerd als ik m'n debugger break vlak voor aanvang van de call. Als ik de code gewoon laat lopen werkt alleen de eerste.
Ik heb het idee dat ik structureel iets verkeerd doe met boost::asio, maar ik weet niet wat. Ik heb het vermoeden dat m'n io_service::run() ermee stopt als ik niet break, maar ik weet niet hoe ik die aan de gang moet houden.
De code staat hier: https://github.com/Genoil...m/tree/stratum/libstratum
Ik werk met boost::asio async writes en reads.
Ik ben nu zover dat ik kan connecten met de server en de eerste call ("mining.subscribe") kan plaatsen en de return kan lezen. Daarna volgt nog een call ("mining.authorize"). En wat daarna komt zie ik dan wel weer. Het probleem zit hem in de tweede call. Daarvan wordt de callback alleen getriggerd als ik m'n debugger break vlak voor aanvang van de call. Als ik de code gewoon laat lopen werkt alleen de eerste.
Ik heb het idee dat ik structureel iets verkeerd doe met boost::asio, maar ik weet niet wat. Ik heb het vermoeden dat m'n io_service::run() ermee stopt als ik niet break, maar ik weet niet hoe ik die aan de gang moet houden.
De code staat hier: https://github.com/Genoil...m/tree/stratum/libstratum