Adjust time resolution of genesis ledger:

Due to some quirky emergent behavior, the server can't really begin
synching until twice the default close time resolution of the genesis
ledger, which is 30 seconds, has passed. In effect, this causes a one
minute delay.

This commit adjusts the default close time resolution down to the
minimum allowed resoluion of 10 seconds, so the corresponding delay
is reduced by 67% down to 20 seconds. This should be enough time to
ensure the server has reasonable connectivity without unduly delaying
initial synch times.
This commit is contained in:
JoelKatz
2020-12-16 19:42:02 -08:00
committed by Nik Bougalis
parent 02ccdeb94e
commit 6dd3d825c8
6 changed files with 30 additions and 31 deletions

View File

@@ -184,7 +184,7 @@ Ledger::Ledger(
{
info_.seq = 1;
info_.drops = INITIAL_XRP;
info_.closeTimeResolution = ledgerDefaultTimeResolution;
info_.closeTimeResolution = ledgerGenesisTimeResolution;
static auto const id = calcAccountID(
generateKeyPair(KeyType::secp256k1, generateSeed("masterpassphrase"))

View File

@@ -43,6 +43,9 @@ std::chrono::seconds constexpr ledgerPossibleTimeResolutions[] = {
//! Initial resolution of ledger close time.
auto constexpr ledgerDefaultTimeResolution = ledgerPossibleTimeResolutions[2];
//! Close time resolution in genesis ledger
auto constexpr ledgerGenesisTimeResolution = ledgerPossibleTimeResolutions[0];
//! How often we increase the close time resolution (in numbers of ledgers)
auto constexpr increaseLedgerTimeResolutionEvery = 8;

View File

@@ -221,7 +221,7 @@ class Feature_test : public beast::unit_test::suite
BEAST_EXPECT(feature[jss::count] == 1);
BEAST_EXPECT(feature[jss::threshold] == 1);
BEAST_EXPECT(feature[jss::validations] == 1);
BEAST_EXPECT(feature[jss::majority] == 2740);
BEAST_EXPECT(feature[jss::majority] == 2540);
}
}

View File

@@ -37,7 +37,7 @@ public:
auto lc_result = env.rpc("ledger_closed")[jss::result];
BEAST_EXPECT(
lc_result[jss::ledger_hash] ==
"8AEDBB96643962F1D40F01E25632ABB3C56C9F04B0231EE4B18248B90173D189");
"A15F7FBE0B06286915D971BF9802C9431CD7DE40E2AC7D07C409EDB1C0715C60");
BEAST_EXPECT(lc_result[jss::ledger_index] == 2);
env.close();
@@ -52,7 +52,7 @@ public:
lc_result = env.rpc("ledger_closed")[jss::result];
BEAST_EXPECT(
lc_result[jss::ledger_hash] ==
"7C3EEDB3124D92E49E75D81A8826A2E65A75FD71FC3FD6F36FEB803C5F1D812D");
"2E81FC6EC0DD943197E0C7E3FBE9AE307F2775F2F7485BB37307984C3C0F2340");
BEAST_EXPECT(lc_result[jss::ledger_index] == 3);
}

View File

@@ -1251,19 +1251,15 @@ class LedgerRPC_test : public beast::unit_test::suite
// no amendments
env.fund(XRP(10000), "alice");
env.close();
log << env.closed()->info().hash;
env.fund(XRP(10000), "bob");
env.close();
log << env.closed()->info().hash;
env.fund(XRP(10000), "jim");
env.close();
log << env.closed()->info().hash;
env.fund(XRP(10000), "jill");
// closed ledger hashes are:
// 1 - AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7
// 2 - 8AEDBB96643962F1D40F01E25632ABB3C56C9F04B0231EE4B18248B90173D189
// 3 - 7C3EEDB3124D92E49E75D81A8826A2E65A75FD71FC3FD6F36FEB803C5F1D812D
// 4 - 9F9E6A4ECAA84A08FF94713FA41C3151177D6222EA47DD2F0020CA49913EE2E6
// 5 - C516522DE274EB52CE69A3D22F66DD73A53E16597E06F7A86F66DF7DD4309173
//
{
// access via the legacy ledger field, keyword index values
Json::Value jvParams;
@@ -1326,8 +1322,8 @@ class LedgerRPC_test : public beast::unit_test::suite
// access via the ledger_hash field
Json::Value jvParams;
jvParams[jss::ledger_hash] =
"7C3EEDB3124D92E49E75D81A8826A2E6"
"5A75FD71FC3FD6F36FEB803C5F1D812D";
"2E81FC6EC0DD943197E0C7E3FBE9AE30"
"7F2775F2F7485BB37307984C3C0F2340";
auto jrr = env.rpc(
"json",
"ledger",
@@ -1339,8 +1335,8 @@ class LedgerRPC_test : public beast::unit_test::suite
// extra leading hex chars in hash will be ignored
jvParams[jss::ledger_hash] =
"DEADBEEF"
"7C3EEDB3124D92E49E75D81A8826A2E6"
"5A75FD71FC3FD6F36FEB803C5F1D812D";
"2E81FC6EC0DD943197E0C7E3FBE9AE30"
"7F2775F2F7485BB37307984C3C0F2340";
jrr = env.rpc(
"json",
"ledger",
@@ -1359,8 +1355,8 @@ class LedgerRPC_test : public beast::unit_test::suite
// malformed (non hex) hash
jvParams[jss::ledger_hash] =
"ZZZZZZZZZZZD92E49E75D81A8826A2E6"
"5A75FD71FC3FD6F36FEB803C5F1D812D";
"2E81FC6EC0DD943197EGC7E3FBE9AE30"
"7F2775F2F7485BB37307984C3C0F2340";
jrr = env.rpc(
"json",
"ledger",

View File

@@ -183,7 +183,7 @@ public:
BEAST_EXPECT(result[jss::ledger][jss::closed] == true);
BEAST_EXPECT(
result[jss::ledger][jss::ledger_hash] ==
"AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7");
"E9BB323980D202EC7E51BAB2AA8E35353F9C7BDAB59BF17378EADD4D0486EF9F");
BEAST_EXPECT(
result[jss::ledger][jss::parent_hash] ==
"0000000000000000000000000000000000000000000000000000000000000000");
@@ -201,13 +201,13 @@ public:
BEAST_EXPECT(result[jss::ledger][jss::closed] == true);
BEAST_EXPECT(
result[jss::ledger][jss::ledger_hash] ==
"8AEDBB96643962F1D40F01E25632ABB3C56C9F04B0231EE4B18248B90173D189");
"A15F7FBE0B06286915D971BF9802C9431CD7DE40E2AC7D07C409EDB1C0715C60");
BEAST_EXPECT(
result[jss::ledger][jss::parent_hash] ==
"AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7");
"E9BB323980D202EC7E51BAB2AA8E35353F9C7BDAB59BF17378EADD4D0486EF9F");
BEAST_EXPECT(
result[jss::ledger][jss::account_hash] ==
"183D5235C7C1FB5AE67AD2F6CC3B28F5FB86E8C4F89DB50DD85641A96470534E");
"CB07F3CA0398BE969A5B88F874629D4DBB6E103DE7C6DB8037281A89E51AA8C6");
BEAST_EXPECT(
result[jss::ledger][jss::transaction_hash] ==
"0000000000000000000000000000000000000000000000000000000000000000");
@@ -219,13 +219,13 @@ public:
BEAST_EXPECT(result[jss::ledger][jss::closed] == true);
BEAST_EXPECT(
result[jss::ledger][jss::ledger_hash] ==
"D2EE1E2A7288AAD43D6FA8AD8007FD1A95646F365EF3A1AD608A03258F11CF18");
"9BCA8AE5FD41D223D82E1B8288961D693EB1B2EFA10F51827A641AD4B12111D7");
BEAST_EXPECT(
result[jss::ledger][jss::parent_hash] ==
"8AEDBB96643962F1D40F01E25632ABB3C56C9F04B0231EE4B18248B90173D189");
"A15F7FBE0B06286915D971BF9802C9431CD7DE40E2AC7D07C409EDB1C0715C60");
BEAST_EXPECT(
result[jss::ledger][jss::account_hash] ==
"22565DC00D1A30F2C15871714E512976EF476281E5E87FF63D3E129C9069F4F4");
"5B793533909906D15CE27D1A423732D113160AB166188D89A2DFD8737CBDCBD5");
BEAST_EXPECT(
result[jss::ledger][jss::transaction_hash] ==
"0213EC486C058B3942FBE3DAC6839949A5C5B02B8B4244C8998EFDF04DBD8222");
@@ -237,13 +237,13 @@ public:
BEAST_EXPECT(result[jss::ledger][jss::closed] == true);
BEAST_EXPECT(
result[jss::ledger][jss::ledger_hash] ==
"8F9032390CDD4C9D7A5B216AFDA3B525A3B39D7589C69D90D4C6BCA4619DD33C");
"433D1E42F2735F926BF594E4F3DFC70AE3E74F51464156ED83A33D0FF121D136");
BEAST_EXPECT(
result[jss::ledger][jss::parent_hash] ==
"D2EE1E2A7288AAD43D6FA8AD8007FD1A95646F365EF3A1AD608A03258F11CF18");
"9BCA8AE5FD41D223D82E1B8288961D693EB1B2EFA10F51827A641AD4B12111D7");
BEAST_EXPECT(
result[jss::ledger][jss::account_hash] ==
"C3335CA14E712CB28F2A7C09BEB9A24BF30BBFA5528F156C19F6665D7A588FEA");
"39C91E2227ACECD057AFDC64AE8FEFF5A0E07CF26ED29D1AECC55B0385F3EFDE");
BEAST_EXPECT(
result[jss::ledger][jss::transaction_hash] ==
"3CBDB8F42E04333E1642166BFB93AC9A7E1C6C067092CD5D881D6F3AB3D67E76");
@@ -255,13 +255,13 @@ public:
BEAST_EXPECT(result[jss::ledger][jss::closed] == true);
BEAST_EXPECT(
result[jss::ledger][jss::ledger_hash] ==
"3EDEB201735867A8EEECBC79A75902C05A7E3F192E4C12E02E67BFDDE5566CCE");
"9ED4D0C397810980904AF3FC08583D23B09C3C7CCF835D2A4768145A8BAC1175");
BEAST_EXPECT(
result[jss::ledger][jss::parent_hash] ==
"8F9032390CDD4C9D7A5B216AFDA3B525A3B39D7589C69D90D4C6BCA4619DD33C");
"433D1E42F2735F926BF594E4F3DFC70AE3E74F51464156ED83A33D0FF121D136");
BEAST_EXPECT(
result[jss::ledger][jss::account_hash] ==
"7C77B1E9EB86410D84EE0CD50716AAA21192F19CF533194AD705798895248212");
"8F047B6A0D2083DF4F69C17F7CC9AE997B0D59020A43D9799A31D22F55837147");
BEAST_EXPECT(
result[jss::ledger][jss::transaction_hash] ==
"C3D086CD6BDB9E97AD1D513B2C049EF2840BD21D0B3E22D84EBBB89B6D2EF59D");
@@ -340,7 +340,7 @@ public:
BEAST_EXPECT(result[jss::ledger][jss::closed] == true);
BEAST_EXPECT(
result[jss::ledger][jss::ledger_hash] ==
"AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7");
"E9BB323980D202EC7E51BAB2AA8E35353F9C7BDAB59BF17378EADD4D0486EF9F");
BEAST_EXPECT(
result[jss::ledger][jss::parent_hash] ==
"0000000000000000000000000000000000000000000000000000000000000000");