From b6daf0bfb25b24aeee4488d75c8b97d0de61a6db Mon Sep 17 00:00:00 2001 From: Maxim Samsonov Date: Sun, 14 Apr 2024 04:31:23 +0300 Subject: [PATCH] Increased sync timeout, relaxed validity threshold (#4) --- dkgNode/Services/DkgNodeServer.cs | 14 +++++++------- docker-compose-ghrc.yml | 13 +++++++------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/dkgNode/Services/DkgNodeServer.cs b/dkgNode/Services/DkgNodeServer.cs index b51d6ed..8718e9f 100644 --- a/dkgNode/Services/DkgNodeServer.cs +++ b/dkgNode/Services/DkgNodeServer.cs @@ -221,14 +221,14 @@ public void RunDkg() } // Таймаут, который используется в точках синхронизации вместо синхронизации - int syncTimeout = Math.Max(1000, Configs.Length * 500); + int syncTimeout = Math.Max(10000, Configs.Length * 1000); PublicKeys = new IPoint[Configs.Length]; // Пороговое значение для верификации ключа, то есть сколько нужно валидных commitment'ов // Алгоритм Шамира допускает минимальное значение = N/2+1, где N - количество участников, но мы // cделаем N-1, так чтобы 1 неадекватная нода позволяла расшифровать сообщение, а две - нет. - int threshold = PublicKeys.Length - 1; + int threshold = PublicKeys.Length/2 + 1; // 1. Собираем публичные ключи со всех участников // Тут, конечно, упрощение. Предполагается, что все ответят без ошибкт @@ -260,7 +260,7 @@ public void RunDkg() } // Здесь будут distributed deals (не знаю, как перевести), предложенные этим узлом другим узлам - // <индекс другого узла> --> наш deal для другого узла + // <индекс другого узла> --> наш deal для другого узла Dictionary deals = []; if (ContinueDkg) @@ -282,7 +282,7 @@ public void RunDkg() deals = DkgNodeSrv.Dkg.GetDistDeals() ?? throw new Exception($"Could not get a list of deals"); } - // Исключение может быть явно созданное выше, а может "выпасть" из DistKeyGenerator + // Исключение может быть явно созданное выше, а может "выпасть" из DistKeyGenerator // Ошибки здесь все фатальны catch (Exception ex) { @@ -295,7 +295,7 @@ public void RunDkg() IPoint? distrPublicKey = null; // 3. Разошkём наши "предложения" другим узлам - // В ответ мы ожидаем distributed response, который мы для начала сохраним + // В ответ мы ожидаем distributed response, который мы для начала сохраним if (ContinueDkg) { @@ -305,7 +305,7 @@ public void RunDkg() // Console.WriteLine($"Querying from {Index} to process for node {i}"); byte[] rspb = []; - // Самому себе тоже пошлём, хотя можно вызвать локально + // Самому себе тоже пошлём, хотя можно вызвать локально // if (Index == i) try { response = DkgNode.Dkg!.ProcessDeal(response) } catch { } var rb = Clients[i].ProcessDeal(new ProcessDealRequest { Data = ByteString.CopyFrom(deal.GetBytes()) }); if (rb != null) @@ -341,7 +341,7 @@ public void RunDkg() { for (int i = 0; i < PublicKeys.Length; i++) { - // Самому себе тоже пошлём, хотя можно вызвать локально + // Самому себе тоже пошлём, хотя можно вызвать локально // if (Index == i) try { DkgNode.Dkg!.ProcessResponse(response) } catch { } Clients[i].ProcessResponse(new ProcessResponseRequest { Data = ByteString.CopyFrom(response.GetBytes()) }); } diff --git a/docker-compose-ghrc.yml b/docker-compose-ghrc.yml index c923003..57ddc8f 100644 --- a/docker-compose-ghrc.yml +++ b/docker-compose-ghrc.yml @@ -8,7 +8,8 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_HTTP_PORTS=8080 - ASPNETCORE_HTTPS_PORTS=8081 - - Kestrel__Certificates__Default__Password_FILE=/etc/dkg/s.pwd + - ASPNETCORE_Kestrel__Certificates__Default__Path=/etc/dkg/s.pfx + - ASPNETCORE_Kestrel__Certificates__Default__Password= ports: - "8080:8080" - "8081:8081" @@ -25,7 +26,7 @@ services: environment: - DKG_NODE_SERVER_GRPC_PORT=5001 - DKG_NODE_SERVER_GRPC_HOST=dkg_node_1 - - DKG_SERVICE_NODE_URL=http://dkg_service_node:8081 + - DKG_SERVICE_NODE_URL=http://dkg_service_node:8080 - DKG_NODE_SERVER_NAME=First node ports: - 5001:5001 @@ -41,7 +42,7 @@ services: environment: - DKG_NODE_SERVER_GRPC_PORT=5002 - DKG_NODE_SERVER_GRPC_HOST=dkg_node_2 - - DKG_SERVICE_NODE_URL=http://dkg_service_node:8081 + - DKG_SERVICE_NODE_URL=http://dkg_service_node:8080 - DKG_NODE_SERVER_NAME=Second node ports: - 5002:5002 @@ -54,7 +55,7 @@ services: environment: - DKG_NODE_SERVER_GRPC_PORT=5002 - DKG_NODE_SERVER_GRPC_HOST=dkg_node_3 - - DKG_SERVICE_NODE_URL=http://dkg_service_node:8081 + - DKG_SERVICE_NODE_URL=http://dkg_service_node:8080 - DKG_NODE_SERVER_NAME=Third node ports: - 5003:5003 @@ -67,7 +68,7 @@ services: environment: - DKG_NODE_SERVER_GRPC_PORT=5004 - DKG_NODE_SERVER_GRPC_HOST=dkg_node_4 - - DKG_SERVICE_NODE_URL=http://dkg_service_node:8081 + - DKG_SERVICE_NODE_URL=http://dkg_service_node:8080 - DKG_NODE_SERVER_NAME=Fourth node ports: - 5004:5004 @@ -80,7 +81,7 @@ services: environment: - DKG_NODE_SERVER_GRPC_PORT=5005 - DKG_NODE_SERVER_GRPC_HOST=dkg_node_5 - - DKG_SERVICE_NODE_URL=http://dkg_service_node:8081 + - DKG_SERVICE_NODE_URL=http://dkg_service_node:8080 - DKG_NODE_SERVER_NAME=Fifth node ports: - 5005:5005