Unverified Commit d09a4f4c authored by kladko's avatar kladko

bug/SKALE-3751-enable-zeromq

parent 7483a230
......@@ -42,6 +42,11 @@ shared_ptr <ZMQMessage> ZMQClient::doRequestReply(Json::Value &_req) {
string ZMQClient::doZmqRequestReply(string &_req) {
stringstream request;
if (!clientSocket)
reconnect();
CHECK_STATE(clientSocket);
s_send(*clientSocket, _req);
while (true) {
......
......@@ -48,6 +48,7 @@ string ZMQMessage::getStringRapid(const char *_name) {
shared_ptr <ZMQMessage> ZMQMessage::parse(vector <uint8_t> &_msg, bool _isRequest) {
return parse((const char *) _msg.data(), _msg.size(), _isRequest);
}
......@@ -62,15 +63,21 @@ shared_ptr <ZMQMessage> ZMQMessage::parse(const char* _msg,
auto d = make_shared<rapidjson::Document>();
d->Parse(_msg);
CHECK_STATE(!d->HasParseError());
CHECK_STATE(d->IsObject())
CHECK_STATE(d->HasMember("type"));
CHECK_STATE((*d)["type"].IsString());
string type = (*d)["type"].GetString();
shared_ptr <ZMQMessage> result;
if (_isRequest) {
......
......@@ -43,7 +43,7 @@ void ZMQServer::run() {
spdlog::info("Starting zmq server ...");
try {
frontend_.bind("tcp://*:" + to_string(BASE_PORT + 4));
frontend_.bind("tcp://*:" + to_string(BASE_PORT + 5));
} catch (...) {
spdlog::error("Server task could not bind to port:{}", port);
exit(-100);
......
......@@ -57,6 +57,7 @@
#include "SGXRegistrationServer.h"
#include "SGXWalletServer.h"
#include "ZMQClient.h"
#include "sgxwallet.h"
#include "TestUtils.h"
#include "testw.h"
......@@ -1123,5 +1124,38 @@ TEST_CASE_METHOD(TestFixtureNoReset, "Second run", "[second-run]") {
}
TEST_CASE_METHOD(TestFixtureNoReset, "ZMQ-ecdsa", "[zmq-ecdsa-run]") {
HttpClient htp(RPC_ENDPOINT);
StubClient c(htp, JSONRPC_CLIENT_V2);
string ip = ZMQ_IP;
ZMQClient client(ip, ZMQ_PORT);
string keyName = "";
try {
PRINT_SRC_LINE
keyName = genECDSAKeyAPI(c);
PRINT_SRC_LINE
} catch (Exception & e)
{
cerr << e.what() << endl;
throw;
}
try {
PRINT_SRC_LINE
auto sig = client.ecdsaSignMessageHash(16, keyName, SAMPLE_HASH);
REQUIRE(sig.size() > 10);
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
throw;
}
}
TEST_CASE_METHOD(TestFixtureNoResetFromBackup, "Backup restore", "[backup-restore]") {
}
......@@ -33,6 +33,9 @@
#define SAMPLE_POLY_NAME "POLY:SCHAIN_ID:1:NODE_ID:1:DKG_ID:1"
#define RPC_ENDPOINT "http://localhost:1029"
#define ZMQ_IP "127.0.0.1"
#define ZMQ_PORT 1031
#define SAMPLE_PUBLIC_KEY_B "c0152c48bf640449236036075d65898fded1e242c00acb45519ad5f788ea7cbf9a5df1559e7fc87932eee5478b1b9023de19df654395574a690843988c3ff475"
#define SAMPLE_DKG_PUB_KEY_1 "505f55a38f9c064da744f217d1cb993a17705e9839801958cda7c884e08ab4dad7fd8d22953d3ac7f0913de24fd67d7ed36741141b8a3da152d7ba954b0f14e2"
......
......@@ -28,7 +28,8 @@ username = getpass.getuser()
topDir = os.getcwd() + "/sgxwallet"
print("Top directory is:" + topDir)
testList = ["[first-run]",
testList = [ "[zmq-ecdsa-run]",
"[first-run]",
"[second-run]",
"[many-threads-crypto]",
"[many-threads-crypto-v2]",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment