diff --git a/Contracts/DigitalSignature.sol b/Contracts/DigitalSignature.sol index f9a551d77e073117ed8625c6681c95a02c4fb9f2..c687e4642cb457e6455731cf15cc0f7af30fb1a3 100644 --- a/Contracts/DigitalSignature.sol +++ b/Contracts/DigitalSignature.sol @@ -15,7 +15,8 @@ contract DigitalSignature { string digitalSignature; } - mapping(string => DigitalSignatureOwnership) public digitalSignatures; + mapping(string => DigitalSignatureOwnership) public digitalSignatureByRef; + mapping(string => DigitalSignatureOwnership) public digitalSignatureByHash; modifier onlyAdmin() { require(msg.sender == admin, "Caller is not the admin"); @@ -23,12 +24,20 @@ contract DigitalSignature { } modifier onlyWhitelisted() { - require(whitelisted[msg.sender] == true, "Not whitelised"); + require(whitelisted[msg.sender] == true, "Not whitelisted"); _; } - function addWhitelist(address trustworthy) public onlyAdmin { - whitelisted[trustworthy] = true; + function changeAdmin(address _newAdmin) public onlyAdmin { + admin = _newAdmin; + } + + function addWhitelist(address _trustworthy) public onlyAdmin { + whitelisted[_trustworthy] = true; + } + + function removeWhitelist(address _untrustworthy) public onlyAdmin { + whitelisted[_untrustworthy] = false; } function addOrUpdateDigitalSignature( @@ -36,19 +45,28 @@ contract DigitalSignature { string memory _hash, string memory _digitalSignature ) public onlyWhitelisted { - DigitalSignatureOwnership memory digSigCurrent = digitalSignatures[_ref]; + DigitalSignatureOwnership memory digSigCurrent = digitalSignatureByHash[_hash]; + DigitalSignatureOwnership memory digSigCurrentRef = digitalSignatureByHash[_ref]; + if (digSigCurrent.owner == address(0)) { digSigCurrent.owner = msg.sender; digSigCurrent.hash = _hash; + digSigCurrentRef = digSigCurrent; } else { require(digSigCurrent.owner == msg.sender, "Not owner"); } + + if (digSigCurrentRef.owner == address(0)) { + digitalSignatureByRef[_ref] = digSigCurrent; + } - require(keccak256(bytes(digSigCurrent.hash)) == keccak256(bytes(_hash)), "Different hash"); - digitalSignatures[_ref].digitalSignature = _digitalSignature; + require(keccak256(abi.encode(digSigCurrentRef.hash)) == keccak256(abi.encode(_hash)), "Different hash"); + digSigCurrent.digitalSignature = _digitalSignature; + digitalSignatureByHash[_hash] = digSigCurrent; + digitalSignatureByRef[_ref] = digSigCurrent; } function getDigitalSignature(string memory _ref) public view returns (string memory) { - return digitalSignatures[_ref].digitalSignature; + return digitalSignatureByRef[_ref].digitalSignature; } } \ No newline at end of file diff --git a/node1/geth/chaindata/000057.ldb b/node1/geth/chaindata/000057.ldb new file mode 100644 index 0000000000000000000000000000000000000000..a8960e684e4d13d1ceb258d0ea4f4f102f1b639c Binary files /dev/null and b/node1/geth/chaindata/000057.ldb differ diff --git a/node1/geth/chaindata/000060.ldb b/node1/geth/chaindata/000060.ldb new file mode 100644 index 0000000000000000000000000000000000000000..97c04f19850918cc4f35772ba7ec2ef0c464db6f Binary files /dev/null and b/node1/geth/chaindata/000060.ldb differ diff --git a/node1/geth/chaindata/000061.log b/node1/geth/chaindata/000061.log new file mode 100644 index 0000000000000000000000000000000000000000..b3ec2eee710f1b451234106fc9b4f49f0815a8ea Binary files /dev/null and b/node1/geth/chaindata/000061.log differ diff --git a/node1/geth/chaindata/CURRENT b/node1/geth/chaindata/CURRENT index 80d9de0bbde640ee0510aecc834b28e39967c155..5ca571d22d0bd4bd525d4bd3da0b9872d77737e5 100644 --- a/node1/geth/chaindata/CURRENT +++ b/node1/geth/chaindata/CURRENT @@ -1 +1 @@ -MANIFEST-000056 +MANIFEST-000062 diff --git a/node1/geth/chaindata/CURRENT.bak b/node1/geth/chaindata/CURRENT.bak index f774e854901d362c4433778058d2bd873c74db01..e4c5073e2abee45303f6cf38dcb301209b470d30 100644 --- a/node1/geth/chaindata/CURRENT.bak +++ b/node1/geth/chaindata/CURRENT.bak @@ -1 +1 @@ -MANIFEST-000052 +MANIFEST-000059 diff --git a/node1/geth/chaindata/LOG b/node1/geth/chaindata/LOG index a4af61dd27ce23eeac6a4f36fbde29f8d886158a..e2389446806fbe0923ce80b07fe278e9d267c163 100644 --- a/node1/geth/chaindata/LOG +++ b/node1/geth/chaindata/LOG @@ -242,3 +242,27 @@ 13:08:04.856588 db@open done T·646.0142ms 13:33:56.207780 db@close closing 13:33:56.212569 db@close done T·4.7889ms +=============== Jun 6, 2022 (+07) =============== +18:59:41.268118 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +18:59:41.268118 version@stat F·[1 1] S·92KiB[433B 91KiB] Sc·[0.25 0.00] +18:59:41.268118 db@open opening +18:59:41.268118 journal@recovery F·1 +18:59:41.339678 journal@recovery recovering @55 +18:59:41.718692 memdb@flush created L0@57 N·9 S·445B "Sna..tor,v1827":"unc..own,v1821" +18:59:41.799445 version@stat F·[2 1] S·92KiB[878B 91KiB] Sc·[0.50 0.00] +18:59:42.211604 db@janitor F·7 G·2 +18:59:42.211723 db@janitor removing journal-1 +18:59:42.212784 db@janitor removing manifest-0 +18:59:42.214183 db@open done T·946.065ms +=============== Jun 6, 2022 (+07) =============== +20:07:06.082184 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +20:07:06.258828 version@stat F·[2 1] S·92KiB[878B 91KiB] Sc·[0.50 0.00] +20:07:06.258864 db@open opening +20:07:06.259435 journal@recovery F·1 +20:07:06.262177 journal@recovery recovering @58 +20:07:06.555632 memdb@flush created L0@60 N·65 S·8KiB "H*\xd0..\x86R\x1a,v1877":"unc..own,v1831" +20:07:06.571650 version@stat F·[3 1] S·101KiB[9KiB 91KiB] Sc·[0.75 0.00] +20:07:06.956849 db@janitor F·6 G·0 +20:07:06.956849 db@open done T·697.9851ms +21:11:20.641965 db@close closing +21:11:27.529164 db@close done T·6.9933321s diff --git a/node1/geth/chaindata/MANIFEST-000062 b/node1/geth/chaindata/MANIFEST-000062 new file mode 100644 index 0000000000000000000000000000000000000000..076772b31e3a6f20b3561988ef07b50b615ec489 Binary files /dev/null and b/node1/geth/chaindata/MANIFEST-000062 differ diff --git a/node1/geth/nodes/000355.ldb b/node1/geth/nodes/000355.ldb new file mode 100644 index 0000000000000000000000000000000000000000..f2e1f7a40de287f33b0f3317bd47e8c4662cfd72 Binary files /dev/null and b/node1/geth/nodes/000355.ldb differ diff --git a/node1/geth/nodes/000360.log b/node1/geth/nodes/000360.log new file mode 100644 index 0000000000000000000000000000000000000000..53aa3598a7c585a78a47679979612097dc9d3545 Binary files /dev/null and b/node1/geth/nodes/000360.log differ diff --git a/node1/geth/nodes/000362.ldb b/node1/geth/nodes/000362.ldb new file mode 100644 index 0000000000000000000000000000000000000000..4858be33e35cb5b5a218c513cfb14784cda57d0d Binary files /dev/null and b/node1/geth/nodes/000362.ldb differ diff --git a/node1/geth/nodes/000363.ldb b/node1/geth/nodes/000363.ldb new file mode 100644 index 0000000000000000000000000000000000000000..6fb252f3f4fd9af67484ab08aec0036e941f200f Binary files /dev/null and b/node1/geth/nodes/000363.ldb differ diff --git a/node1/geth/nodes/CURRENT b/node1/geth/nodes/CURRENT index 85b0556f0e9cf51bc183a88201f11dc73124fea5..683373ae835e2706c71a1ba3be149bfdcbf1df24 100644 --- a/node1/geth/nodes/CURRENT +++ b/node1/geth/nodes/CURRENT @@ -1 +1 @@ -MANIFEST-000343 +MANIFEST-000357 diff --git a/node1/geth/nodes/CURRENT.bak b/node1/geth/nodes/CURRENT.bak index 6b297867fc79d54a778314e01b4072766fece988..549acb4ebc2cbb1be60c718b34e0db64359cc662 100644 --- a/node1/geth/nodes/CURRENT.bak +++ b/node1/geth/nodes/CURRENT.bak @@ -1 +1 @@ -MANIFEST-000338 +MANIFEST-000348 diff --git a/node1/geth/nodes/LOG b/node1/geth/nodes/LOG index 6a7b64dcc89c6b7b2f387f5efa7488c99ec9621d..4c109039a2c85878928702e8b0bab851ea2e5e39 100644 --- a/node1/geth/nodes/LOG +++ b/node1/geth/nodes/LOG @@ -1448,3 +1448,69 @@ 13:08:45.583701 table@remove removed @340 13:33:56.533043 db@close closing 13:33:57.309771 db@close done T·776.7283ms +=============== Jun 6, 2022 (+07) =============== +18:59:43.312024 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +18:59:43.313867 version@stat F·[0 2] S·2MiB[0B 2MiB] Sc·[0.00 0.03] +18:59:43.313867 db@open opening +18:59:43.314420 journal@recovery F·1 +18:59:43.413323 journal@recovery recovering @342 +18:59:43.897622 memdb@flush created L0@346 N·13159 S·306KiB "loc..seq,v883714":"n:\xfe..ong,v883741" +18:59:43.912892 version@stat F·[1 2] S·3MiB[306KiB 2MiB] Sc·[0.25 0.03] +18:59:45.086782 db@janitor F·8 G·3 +18:59:45.086782 db@janitor removing journal-1 +18:59:45.088015 db@janitor removing table-341 +18:59:45.089310 db@janitor removing manifest-0 +18:59:45.091056 db@open done T·1.7771889s +18:59:45.493300 table@compaction L0·1 -> L1·2 S·3MiB Q·896875 +18:59:46.624039 table@build created L1@349 N·47477 S·2MiB "loc..seq,v883714":"n:\xa8..ail,v232399" +19:00:04.530216 table@build created L1@350 N·23795 S·1022KiB "n:\xa8..ail,v232385":"version,v1" +19:00:04.828552 version@stat F·[0 2] S·3MiB[0B 3MiB] Sc·[0.00 0.03] +19:00:05.599139 table@compaction committed F-1 S-164KiB Ke·0 D·9223 T·20.1058395s +19:00:05.609370 table@remove removed @344 +19:00:05.609370 table@remove removed @345 +19:55:15.865489 memdb@flush N·36965 S·3MiB +19:55:16.815455 memdb@flush created L0@352 N·36965 S·754KiB "loc..seq,v896881":"n:\xff..ong,v912095" +19:55:16.815455 version@stat F·[1 2] S·3MiB[754KiB 3MiB] Sc·[0.25 0.03] +19:55:16.995147 memdb@flush committed F·1 T·963.3355ms +19:55:17.091276 journal@remove removed @347 +19:55:41.408387 table@compaction L0·1 -> L1·2 S·3MiB Q·934193 +19:55:48.252409 table@build created L1@353 N·48192 S·2MiB "loc..seq,v896881":"n:\x9a..ail,v8816" +19:55:50.270815 table@build created L1@354 N·31023 S·1MiB "n:\x9a..ail,v8824":"version,v1" +19:55:50.270815 version@stat F·[0 2] S·3MiB[0B 3MiB] Sc·[0.00 0.03] +19:55:50.330172 table@compaction committed F-1 S-463KiB Ke·0 D·29022 T·8.9217857s +19:55:50.332417 table@remove removed @352 +19:55:50.371032 table@remove removed @349 +19:55:50.458089 table@remove removed @350 +=============== Jun 6, 2022 (+07) =============== +20:07:08.117829 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +20:07:08.141031 version@stat F·[0 2] S·3MiB[0B 3MiB] Sc·[0.00 0.03] +20:07:08.141593 db@open opening +20:07:08.142124 journal@recovery F·1 +20:07:08.144843 journal@recovery recovering @351 +20:07:08.773735 memdb@flush created L0@355 N·26798 S·673KiB "n:\x00..ing,d937736":"n:\xff..ong,d954586" +20:07:08.777600 version@stat F·[1 2] S·3MiB[673KiB 3MiB] Sc·[0.25 0.03] +20:07:09.249366 db@janitor F·6 G·1 +20:07:09.249366 db@janitor removing table-346 +20:07:09.308378 db@open done T·1.1660961s +20:07:11.927231 table@compaction L0·1 -> L1·2 S·3MiB Q·960640 +20:07:13.315639 table@build created L1@358 N·45554 S·2MiB "loc..seq,v896881":"n:\xb3..ail,v586350" +20:07:14.610520 table@build created L1@359 N·18713 S·843KiB "n:\xb3..ail,v287307":"version,v1" +20:07:14.619144 version@stat F·[0 2] S·2MiB[0B 2MiB] Sc·[0.00 0.03] +20:07:14.699146 table@compaction committed F-1 S-1MiB Ke·0 D·41746 T·2.7518385s +20:07:14.707189 table@remove removed @353 +20:07:14.708888 table@remove removed @354 +20:58:42.275884 memdb@flush N·36625 S·3MiB +20:58:43.661266 memdb@flush created L0@361 N·36625 S·730KiB "loc..seq,v960638":"n:\xff..ong,v968517" +20:58:43.682962 version@stat F·[1 2] S·3MiB[730KiB 2MiB] Sc·[0.25 0.03] +20:58:43.797421 memdb@flush committed F·1 T·1.3082406s +20:58:44.015348 journal@remove removed @356 +20:59:04.159415 table@compaction L0·1 -> L1·2 S·3MiB Q·997626 +20:59:05.720544 table@build created L1@362 N·46479 S·2MiB "loc..seq,v960638":"n:\xa4..ail,v538046" +20:59:06.403131 table@build created L1@363 N·25733 S·1MiB "n:\xa4..ail,v538045":"version,v1" +20:59:06.411454 version@stat F·[0 2] S·3MiB[0B 3MiB] Sc·[0.00 0.03] +20:59:06.461538 table@compaction committed F-1 S-441KiB Ke·0 D·28680 T·2.29151s +20:59:06.483016 table@remove removed @361 +20:59:06.571402 table@remove removed @358 +20:59:06.589550 table@remove removed @359 +21:11:33.054114 db@close closing +21:11:37.969434 db@close done T·4.9153201s diff --git a/node1/geth/nodes/MANIFEST-000357 b/node1/geth/nodes/MANIFEST-000357 new file mode 100644 index 0000000000000000000000000000000000000000..04cce41df5cf937832e60caba47459502af65e7b Binary files /dev/null and b/node1/geth/nodes/MANIFEST-000357 differ diff --git a/node1/geth/triecache/data.0.bin b/node1/geth/triecache/data.0.bin index 45c2249bb20d02acebea990f02d80ce22d16a4d9..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 Binary files a/node1/geth/triecache/data.0.bin and b/node1/geth/triecache/data.0.bin differ diff --git a/node1/geth/triecache/data.1.bin b/node1/geth/triecache/data.1.bin index a5446397cb90f1f33c93017f147008403608e06a..9e833dfb72060ea1d7d6e981abd1cc0756f9c4e5 100644 Binary files a/node1/geth/triecache/data.1.bin and b/node1/geth/triecache/data.1.bin differ diff --git a/node1/geth/triecache/data.2.bin b/node1/geth/triecache/data.2.bin index 751fe22242cc7f93091da7f9c08f1f34b9d21fea..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 Binary files a/node1/geth/triecache/data.2.bin and b/node1/geth/triecache/data.2.bin differ diff --git a/node1/geth/triecache/data.3.bin b/node1/geth/triecache/data.3.bin index 50a596454f6e0fbaa01bb6f5dc02f3992908017b..3a7d28e56bd7bad2786c2081050ac0b4c81b1891 100644 Binary files a/node1/geth/triecache/data.3.bin and b/node1/geth/triecache/data.3.bin differ diff --git a/node1/history b/node1/history index 2bccd40ba6208225d37ed6e5d1320498b40ff7c4..26b95d8e2f4594bd53e56fce51b7ce4e34558472 100644 --- a/node1/history +++ b/node1/history @@ -123,4 +123,9 @@ txpool.content eth.getTransaction("0xdd4a3606e71bfc761251ed14961f3e4a784e87fa0b3883df1d0cee52627dcc10") eth.getTransactionReceipt("0xdd4a3606e71bfc761251ed14961f3e4a784e87fa0b3883df1d0cee52627dcc10") eth.getRawTransaction("0xdd4a3606e71bfc761251ed14961f3e4a784e87fa0b3883df1d0cee52627dcc10") -admin.addPeer("enode://491cd65010c8112f54ad471b920adfa6c5b6ffd9dd00aecf897d9e62176d39a5259107d87af3729301f8b3c0a8fa3eed09262c581a6dadf94493e760e732ae14@127.0.0.1:30304") \ No newline at end of file +admin.addPeer("enode://491cd65010c8112f54ad471b920adfa6c5b6ffd9dd00aecf897d9e62176d39a5259107d87af3729301f8b3c0a8fa3eed09262c581a6dadf94493e760e732ae14@127.0.0.1:30304") +eth.getTransaction("0xe8b885c11d35520c47b29f5d4634705bfad7f3ac39a2cc6fda8f91f931a9ef5c") +eth.getTransactionReceipt("0x2c005af599db243ef3c618f5fc37de8ec6cd46d0c20f37ed36060ad2ef3263d7") +debug.traceTransaction("0x2c005af599db243ef3c618f5fc37de8ec6cd46d0c20f37ed36060ad2ef3263d7") +eth.getTransaction("0xc799e1ee22d6fa89eebd30fcd86e7338444dbd840ac1119f0fa52a5df85c5385") +eth.getTransaction("0xb28ad9e1175245e7144c64d1d4a9ff3e17f6846eb9a1ee20f2c47fd361ee6b52") \ No newline at end of file