Unverified Commit fbd5f230 authored by kladko's avatar kladko

SKALE-3751-enable-zeromq

parent fc332edc
...@@ -59,6 +59,8 @@ ZMQServer::ZMQServer(bool _checkSignature, const string &_caCertFile) ...@@ -59,6 +59,8 @@ ZMQServer::ZMQServer(bool _checkSignature, const string &_caCertFile)
} }
int linger = 0; int linger = 0;
zmq_setsockopt(*frontend, ZMQ_LINGER, &linger, sizeof(linger)); zmq_setsockopt(*frontend, ZMQ_LINGER, &linger, sizeof(linger));
zmq_setsockopt(*backend, ZMQ_LINGER, &linger, sizeof(linger)); zmq_setsockopt(*backend, ZMQ_LINGER, &linger, sizeof(linger));
...@@ -72,6 +74,7 @@ void ZMQServer::run() { ...@@ -72,6 +74,7 @@ void ZMQServer::run() {
spdlog::info("Starting zmq server on port {} ...", port); spdlog::info("Starting zmq server on port {} ...", port);
try { try {
CHECK_STATE(frontend);
frontend->bind("tcp://*:" + to_string(port)); frontend->bind("tcp://*:" + to_string(port));
} catch (...) { } catch (...) {
spdlog::error("Server task could not bind to port:{}", port); spdlog::error("Server task could not bind to port:{}", port);
...@@ -81,6 +84,7 @@ void ZMQServer::run() { ...@@ -81,6 +84,7 @@ void ZMQServer::run() {
spdlog::info("Bound port ..."); spdlog::info("Bound port ...");
try { try {
CHECK_STATE(backend);
backend->bind("inproc://backend"); backend->bind("inproc://backend");
} catch (exception &e) { } catch (exception &e) {
spdlog::error("Could not bind to zmq backend: {}", e.what()); spdlog::error("Could not bind to zmq backend: {}", e.what());
...@@ -146,6 +150,7 @@ void ZMQServer::exitWorkers() { ...@@ -146,6 +150,7 @@ void ZMQServer::exitWorkers() {
worker_threads.empty(); worker_threads.empty();
spdlog::info("Deleting workers ..."); spdlog::info("Deleting workers ...");
workers.clear(); workers.clear();
spdlog::info("Deleted workers ..."); spdlog::info("Deleted workers ...");
...@@ -169,11 +174,7 @@ void ZMQServer::exitZMQServer() { ...@@ -169,11 +174,7 @@ void ZMQServer::exitZMQServer() {
spdlog::info("Exiting zmq server workers ..."); spdlog::info("Exiting zmq server workers ...");
zmqServer->exitWorkers(); zmqServer->exitWorkers();
spdlog::info("Exited zmq server ..."); spdlog::info("Exited zmq server workers ...");
spdlog::info("Joining server thread");
ZMQServer::serverThread->join();
spdlog::info("Joined server thread");
spdlog::info("deleting zmq server"); spdlog::info("deleting zmq server");
zmqServer = nullptr; zmqServer = nullptr;
...@@ -198,6 +199,7 @@ void ZMQServer::initZMQServer(bool _checkSignature) { ...@@ -198,6 +199,7 @@ void ZMQServer::initZMQServer(bool _checkSignature) {
zmqServer = make_shared<ZMQServer>(_checkSignature, rootCAPath); zmqServer = make_shared<ZMQServer>(_checkSignature, rootCAPath);
serverThread = make_shared<thread>(std::bind(&ZMQServer::run, ZMQServer::zmqServer)); serverThread = make_shared<thread>(std::bind(&ZMQServer::run, ZMQServer::zmqServer));
serverThread->detach();
spdlog::info("Inited zmq server ..."); spdlog::info("Inited zmq server ...");
} }
......
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="BuildoutUnresolvedPartInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyArgumentListInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyAssignmentToLoopOrWithParameterInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyAsyncCallInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyAttributeOutsideInitInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyBroadExceptionInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyByteLiteralInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyCallByClassInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyCallingNonCallableInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyDataclassInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyDefaultArgumentInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyDeprecationInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyDictCreationInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyDictDuplicateKeysInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyDocstringTypesInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyDunderSlotsInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyExceptClausesOrderInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyExceptionInheritInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyFinalInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyFromFutureImportInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyGlobalUndefinedInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyInconsistentIndentationInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyIncorrectDocstringInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyInitNewSignatureInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyInterpreterInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyListCreationInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyMandatoryEncodingInspection" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="PyMethodFirstArgAssignmentInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyMethodMayBeStaticInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyMethodOverridingInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyMethodParametersInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyMissingConstructorInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyMissingOrEmptyDocstringInspection" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="PyMissingTypeHintsInspection" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="PyNamedTupleInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyNestedDecoratorsInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyNonAsciiCharInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyNoneFunctionAssignmentInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyOldStyleClassesInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyOverloadsInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="ERROR" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="6">
<item index="0" class="java.lang.String" itemvalue="Mesa" />
<item index="1" class="java.lang.String" itemvalue="jupyter" />
<item index="2" class="java.lang.String" itemvalue="matplotlib" />
<item index="3" class="java.lang.String" itemvalue="multilevel_mesa" />
<item index="4" class="java.lang.String" itemvalue="transitions" />
<item index="5" class="java.lang.String" itemvalue="NetworkX" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPep8Inspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyPropertyAccessInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyPropertyDefinitionInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyProtocolInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyRedeclarationInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyRedundantParenthesesInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyReturnFromInitInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PySetFunctionToLiteralInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyShadowingBuiltinsInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyShadowingNamesInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PySimplifyBooleanCheckInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PySingleQuotedDocstringInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyStatementEffectInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyStringFormatInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyStubPackagesAdvertiser" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyStubPackagesCompatibilityInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PySuperArgumentsInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyTrailingSemicolonInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyTupleAssignmentBalanceInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyTupleItemAssignmentInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyTypeCheckerInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyTypeHintsInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyTypedDictInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyUnboundLocalVariableInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyUnnecessaryBackslashInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyUnreachableCodeInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyUnusedLocalInspection" enabled="true" level="ERROR" enabled_by_default="true" />
</profile>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/scripts.iml" filepath="$PROJECT_DIR$/.idea/scripts.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="9a202b98-34bc-46b5-903d-c60020aefbc1" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/../linux-sgx-driver" beforeDir="false" afterPath="$PROJECT_DIR$/../linux-sgx-driver" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../sgx-gmp" beforeDir="false" afterPath="$PROJECT_DIR$/../sgx-gmp" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
</component>
<component name="ProjectId" id="1lO1g5pIwbHNYI5MgBxox8GFFjt" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../skale-manager" />
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="9a202b98-34bc-46b5-903d-c60020aefbc1" name="Default Changelist" comment="" />
<created>1607453432221</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1607453432221</updated>
</task>
<servers />
</component>
<component name="WindowStateProjectService">
<state x="2610" y="253" width="530" height="598" key="FileChooserDialogImpl" timestamp="1611047963531">
<screen x="1920" y="0" width="1920" height="1080" />
</state>
<state x="2610" y="253" width="530" height="598" key="FileChooserDialogImpl/1920.0.1920.1080/67.27.1853.1053@1920.0.1920.1080" timestamp="1611047963531" />
</component>
</project>
\ No newline at end of file
secp256k1-sgx @ 5f235e8e
Subproject commit 5f235e8e9e821cd972c4a57afdfe47a7fe83acd0
No preview for this file type
...@@ -121,6 +121,7 @@ public: ...@@ -121,6 +121,7 @@ public:
} }
~TestFixtureNoResetFromBackup() { ~TestFixtureNoResetFromBackup() {
sleep(3);
ZMQServer::exitZMQServer(); ZMQServer::exitZMQServer();
TestUtils::destroyEnclave(); TestUtils::destroyEnclave();
} }
...@@ -303,7 +304,8 @@ TEST_CASE_METHOD(TestFixture, "ECDSA key gen API", "[ecdsa-key-gen-api]") { ...@@ -303,7 +304,8 @@ TEST_CASE_METHOD(TestFixture, "ECDSA key gen API", "[ecdsa-key-gen-api]") {
TEST_CASE_METHOD(TestFixture, "BLS key encrypt", "[bls-key-encrypt]") { TEST_CASE_METHOD(TestFixture, "BLS key encrypt", "[bls-key-encrypt]") {
auto key = TestUtils::encryptTestKey(); auto key = TestUtils::encryptTestKey();
REQUIRE(key != nullptr); REQUIRE(key);
sleep(3);
} }
...@@ -573,18 +575,21 @@ TEST_CASE_METHOD(TestFixture, "Backup Key", "[backup-key]") { ...@@ -573,18 +575,21 @@ TEST_CASE_METHOD(TestFixture, "Backup Key", "[backup-key]") {
sek_file >> sek; sek_file >> sek;
REQUIRE(sek.size() == 32); REQUIRE(sek.size() == 32);
sleep(3);
} }
TEST_CASE_METHOD(TestFixture, "Get ServerStatus", "[get-server-status]") { TEST_CASE_METHOD(TestFixture, "Get ServerStatus", "[get-server-status]") {
HttpClient client(RPC_ENDPOINT); HttpClient client(RPC_ENDPOINT);
StubClient c(client, JSONRPC_CLIENT_V2); StubClient c(client, JSONRPC_CLIENT_V2);
REQUIRE(c.getServerStatus()["status"] == 0); REQUIRE(c.getServerStatus()["status"] == 0);
sleep(3);
} }
TEST_CASE_METHOD(TestFixture, "Get ServerVersion", "[get-server-version]") { TEST_CASE_METHOD(TestFixture, "Get ServerVersion", "[get-server-version]") {
HttpClient client(RPC_ENDPOINT); HttpClient client(RPC_ENDPOINT);
StubClient c(client, JSONRPC_CLIENT_V2); StubClient c(client, JSONRPC_CLIENT_V2);
REQUIRE(c.getServerVersion()["version"] == SGXWalletServer::getVersion()); REQUIRE(c.getServerVersion()["version"] == SGXWalletServer::getVersion());
sleep(3);
} }
...@@ -888,6 +893,7 @@ TEST_CASE_METHOD(TestFixture, "AES encrypt/decrypt", "[aes-encrypt-decrypt]") { ...@@ -888,6 +893,7 @@ TEST_CASE_METHOD(TestFixture, "AES encrypt/decrypt", "[aes-encrypt-decrypt]") {
REQUIRE(status == 0); REQUIRE(status == 0);
REQUIRE(key.compare(decr_key.data()) == 0); REQUIRE(key.compare(decr_key.data()) == 0);
REQUIRE(errStatus == 0); REQUIRE(errStatus == 0);
sleep(3);
} }
......
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