Skip to content

Commit d530573

Browse files
@JamesHeinrich version build for generatePrimeNetJson corrections, comments, format
1 parent b4160a9 commit d530573

File tree

3 files changed

+41
-71
lines changed

3 files changed

+41
-71
lines changed

include/core/Version.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include <string>
55

66
namespace core {
7-
const std::string PRMERS_VERSION = "4.15.42-alpha";
7+
const std::string PRMERS_VERSION = "4.15.43-alpha";
88
} // namespace core
99

1010
#endif // VERSION_HPP

include/io/CliParser.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ struct CliOptions {
5858
std::string user;
5959
std::string password;
6060
std::string computer_name;
61+
uint64_t sigma192 = 0ULL;
6162
std::string config_path;
6263
std::string worktodo_path = "worktodo.txt";
6364
std::string pm1_extend_save_path = "";

src/io/JsonBuilder.cpp

Lines changed: 39 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <cstdio>
2727
#include <algorithm>
2828
#include <tuple>
29+
#include <cctype>
2930

3031
namespace io{
3132

@@ -55,6 +56,13 @@ static void doDiv9(uint32_t E, std::vector<uint32_t>& W) {
5556
doDiv3(E, W);
5657
}
5758

59+
static std::string toLower(const std::string& s){
60+
std::string t = s;
61+
std::transform(t.begin(), t.end(), t.begin(),
62+
[](unsigned char c){ return char(std::tolower(c)); });
63+
return t;
64+
}
65+
5866
std::tuple<bool, std::string, std::string> JsonBuilder::computeResult(
5967
const std::vector<uint64_t>& hostResult,
6068
const CliOptions& opts,
@@ -244,6 +252,7 @@ static std::string generatePrimeNetJson(
244252
const std::string &computer,
245253
const std::vector<std::string>& knownFactors)
246254
{
255+
(void) uid;
247256
std::ostringstream oss;
248257
bool isPRP = (worktype.rfind("PRP", 0) == 0);
249258
oss << "{";
@@ -260,10 +269,10 @@ static std::string generatePrimeNetJson(
260269
}
261270
oss << ",\"res64\":" << jsonEscape(res64);
262271
if (isPRP) {
263-
oss << "\"res2048\":" << jsonEscape(res2048);
272+
oss << ",\"res2048\":" << jsonEscape(res2048);
264273
}
265274
oss << ",\"residue-type\":" << residueType;
266-
oss << ",\"errors\":{\"gerbicz\":" << gerbiczError;
275+
oss << ",\"errors\":{\"gerbicz\":" << gerbiczError << "}";
267276
oss << ",\"fft-length\":" << fftLength;
268277
oss << ",\"shift-count\":0";
269278
if (isPRP && !proofMd5.empty()) {
@@ -272,24 +281,25 @@ static std::string generatePrimeNetJson(
272281
<< ",\"power\":" << proofPower
273282
<< ",\"hashsize\":" << proofHashSize
274283
<< ",\"md5\":" << jsonEscape(proofMd5)
275-
<< "}"; // close "proof"
284+
<< "}";
276285
}
277286
oss << ",\"program\":{"
278287
<< "\"name\":" << jsonEscape(programName)
279288
<< ",\"version\":" << jsonEscape(programVersion)
280289
<< ",\"port\":" << programPort
281290
<< ",\"os\":{"
282-
<< ",\"os\":" << jsonEscape(osName);
291+
<< "\"os\":" << jsonEscape(osName);
283292
if (!osArchitecture.empty()) {
284293
oss << ",\"architecture\":" << jsonEscape(osArchitecture);
285294
}
286-
oss << "}"; // close "program.os"
287-
oss << "}"; // close "program"
295+
oss << "}" // close "program.os"
296+
<< "}"; // close "program"
288297
if (!user.empty()) oss << ",\"user\":" << jsonEscape(user);
289298
if (!computer.empty()) oss << ",\"computer\":" << jsonEscape(computer);
290299
if (!aid.empty()) oss << ",\"aid\":" << jsonEscape(aid);
291300
oss << ",\"timestamp\":" << jsonEscape(timestamp);
292301
std::string prefix = oss.str();
302+
293303
std::ostringstream canon;
294304
std::string canonWT = worktype;
295305
if (canonWT.rfind("PRP", 0) == 0) canonWT = "PRP";
@@ -298,55 +308,24 @@ static std::string generatePrimeNetJson(
298308
canon << exponent << ";"; // exponent
299309
canon << canonWT << ";"; // worktype
300310
canon << "" << ";"; // factors
301-
std::string knownFactorStr;
302311
if (!knownFactors.empty()) {
303-
knownFactorStr = knownFactors[0];
312+
std::string knownFactorStr = knownFactors[0];
304313
for (size_t i = 1; i < knownFactors.size(); ++i)
305314
knownFactorStr += "," + knownFactors[i];
306315
canon << knownFactorStr; // known-factors
307316
}
317+
canon << ";";
308318

309-
if (canonWT == "TF") {
310-
// not yet implemented
311-
canon << "<BITLO>" << ";"; // bitlo (e.g. 68)
312-
canon << "<BITHI>" << ";"; // bithi (e.g. 75)
313-
canon << "<RANGECOMPLETE>" << ";"; // rangecomplete (0 or 1)
314-
} else if (canonWT == "PRP") {
315-
canon << toLower(res64) << ";"; // res64
316-
canon << toLower(res2048) << ";"; // res2048
317-
canon << "0" << "_" // shift-count
319+
if (canonWT == "PRP") {
320+
canon << toLower(res64) << ";"; // res64
321+
canon << toLower(res2048) << ";"; // res2048
322+
canon << "0" << "_" // shift-count
318323
<< "3" << "_" // prp-base
319324
<< residueType << ";"; // residue-type
320325
} else if (canonWT == "LL") {
321-
canon << toLower(res64) << ";"; // res64
322-
canon << "" << ";"; // unused
323-
canon << "0" << ";"; // shift-count
324-
} else if (canonWT == "ECM") {
325-
canon << opts.B1 << ";"; // b1
326-
if (opts.B2 > 0) canon << opts.B2; // b2
327-
canon << ";";
328-
329-
if (isEdw) canon << "E"; // sigma
330-
if (opts.sigma192) {
331-
canon << opts.sigma192; // *** TODO: not sure where this value comes from ***
332-
} else if (opts.sigma)
333-
canon << opts.sigma;
334-
}
335-
if (torsion > 0) {
336-
canon << "_TSG" << torsion; // torsion-subgroup
337-
}
338-
canon << ";";
339-
} else if (canonWT == "PM1") {
340-
canon << opts.B1 << ";"; // b1
341-
if (opts.B2 > 0) canon << opts.B2; // b2
342-
canon << ";";
343-
canon << "" << ";"; // brent-suyama
344-
} else if (canonWT == "PP1") {
345-
// not yet implemented
346-
canon << opts.B1 << ";"; // b1
347-
if (opts.B2 > 0) canon << opts.B2; // b2
348-
canon << ";";
349-
canon << "<START>" << ";"; // start
326+
canon << toLower(res64) << ";"; // res64
327+
canon << "" << ";"; // unused
328+
canon << "0" << ";"; // shift-count
350329
}
351330

352331
canon << fftLength << ";"; // fft-length
@@ -359,11 +338,11 @@ static std::string generatePrimeNetJson(
359338
canon << osArchitecture << ";"; // os.architecture
360339
canon << timestamp; // timestamp
361340
unsigned int crc = computeCRC32(canon.str());
362-
std::ostringstream hex;
363-
hex << std::uppercase << std::hex << std::setw(8) << std::setfill('0') << crc;
341+
std::ostringstream hexss;
342+
hexss << std::uppercase << std::hex << std::setw(8) << std::setfill('0') << crc;
364343
oss.str(""); oss.clear();
365344
oss << prefix
366-
<< ",\"checksum\":{\"version\":1,\"checksum\":\"" << hex.str() << "\"}"
345+
<< ",\"checksum\":{\"version\":1,\"checksum\":\"" << hexss.str() << "\"}"
367346
<< "}";
368347
return oss.str();
369348
}
@@ -409,10 +388,10 @@ std::string JsonBuilder::generate(const CliOptions& opts,
409388
<< ",\"port\":" << opts.portCode
410389
<< ",\"os\":{"
411390
<< "\"os\":" << jsonEscape(opts.osName);
412-
if (!osArchitecture.empty()){
391+
if (!opts.osArch.empty()){
413392
oss << ",\"architecture\":" << jsonEscape(opts.osArch);
414393
}
415-
oss << "}";
394+
oss << "}}"; // close program.os and program
416395
if (!opts.user.empty()) oss << ",\"user\":" << jsonEscape(opts.user);
417396
if (!opts.computer_name.empty()) oss << ",\"computer\":" << jsonEscape(opts.computer_name);
418397
if (!opts.aid.empty()) oss << ",\"aid\":" << jsonEscape(opts.aid);
@@ -439,11 +418,11 @@ std::string JsonBuilder::generate(const CliOptions& opts,
439418
canon << opts.osArch << ";"; // os.architecture
440419
canon << timestampBuf; // timestamp
441420
unsigned int crc = computeCRC32(canon.str());
442-
std::ostringstream hex;
443-
hex << std::uppercase << std::hex << std::setw(8) << std::setfill('0') << crc;
421+
std::ostringstream hexss;
422+
hexss << std::uppercase << std::hex << std::setw(8) << std::setfill('0') << crc;
444423
oss.str(""); oss.clear();
445424
oss << prefix
446-
<< ",\"checksum\":{\"version\":1,\"checksum\":\"" << hex.str() << "\"}"
425+
<< ",\"checksum\":{\"version\":1,\"checksum\":\"" << hexss.str() << "\"}"
447426
<< "}";
448427
return oss.str();
449428
}
@@ -488,10 +467,10 @@ std::string JsonBuilder::generate(const CliOptions& opts,
488467
<< ",\"port\":" << opts.portCode
489468
<< ",\"os\":{"
490469
<< "\"os\":" << jsonEscape(opts.osName);
491-
if (!osArchitecture.empty()){
470+
if (!opts.osArch.empty()){
492471
oss << ",\"architecture\":" << jsonEscape(opts.osArch);
493472
}
494-
oss << "}";
473+
oss << "}}"; // close program.os and program
495474
if (!opts.user.empty()) oss << ",\"user\":" << jsonEscape(opts.user);
496475
if (!opts.computer_name.empty()) oss << ",\"computer\":" << jsonEscape(opts.computer_name);
497476
if (!opts.aid.empty()) oss << ",\"aid\":" << jsonEscape(opts.aid);
@@ -511,7 +490,7 @@ std::string JsonBuilder::generate(const CliOptions& opts,
511490
if (isEdw) canon << "E"; // sigma
512491
if (opts.sigma192) {
513492
canon << opts.sigma192; // *** TODO: not sure where this value comes from ***
514-
} else if (opts.sigma)
493+
} else if (opts.sigma) {
515494
canon << opts.sigma;
516495
}
517496
if (torsion > 0) {
@@ -528,22 +507,12 @@ std::string JsonBuilder::generate(const CliOptions& opts,
528507
canon << opts.osName << ";"; // os.os
529508
canon << opts.osArch << ";"; // os.architecture
530509
canon << timestampBuf; // timestamp
531-
532-
canon << transform_size << ";"; // fft-length
533-
canon << "" << ";";
534-
canon << "prmers" << ";";
535-
canon << core::PRMERS_VERSION << ";";
536-
canon << "" << ";";
537-
canon << "" << ";";
538-
canon << opts.osName << ";";
539-
canon << opts.osArch << ";";
540-
canon << timestampBuf;
541510
unsigned int crc = computeCRC32(canon.str());
542-
std::ostringstream hex;
543-
hex << std::uppercase << std::hex << std::setw(8) << std::setfill('0') << crc;
511+
std::ostringstream hexss;
512+
hexss << std::uppercase << std::hex << std::setw(8) << std::setfill('0') << crc;
544513
oss.str(""); oss.clear();
545514
oss << prefix
546-
<< ",\"checksum\":{\"version\":1,\"checksum\":\"" << hex.str() << "\"}"
515+
<< ",\"checksum\":{\"version\":1,\"checksum\":\"" << hexss.str() << "\"}"
547516
<< "}";
548517
return oss.str();
549518
}

0 commit comments

Comments
 (0)