I'm building an app that consists of two services, one service will run on the edge and the other in the cloud. Obviously, I want the service on the edge to be lightweight since It will run on embedded devices later, so I'm trying to just use the c++ std lib and no third-party libs for that service.
Here is an overview: EDGE_SERVICE(c++) ---> API(js) ---> EOSIO_SMART_CONTRACT
Up to this moment, I'm just sending unsigned transactions from EDGE_SERVICE to API and the API (which uses eosjs) is responsible for signing these and then call the smart contract action. I'm also storing the private keys in the API for now, which is ok for a first MVP.
Now, my goal is to sign transactions in the EDGE_SERVICE and then send the already signed transactions to the API, which will send it forward (or call) the smart contract action. So the private keys need to be stored in EDGE_SERVICE now and used to sign transactions there. So how do I solve this problem?
Please notice that I want to keep the EDGE_SERVICE as minimal as possible. I noticed that maybe I can use/include the eosio c++ library and use the sign function that I found in the cleos implementation here, but this lib depends also on boost so its size is at least > 2GB and I don't want that. I tried to search for alternatives to eosjs in c++, but I didn't find any.
I appreciate any help.