関連リンク
DID Sidetree Protocol
https://identity.foundation/sidetree/spec/#hashing-process
[Github] Sidetree
https://github.com/decentralized-identity/sidetree
[Github] ION
https://github.com/decentralized-identity/ion
5. Default Parameters
Protocol Parameterは以下のjsonファイルに設定されている。
sidetree/lib/core/versions/latest/protocol-parameters.json
sidetree/lib/core/versions/latest/ProtocolParameters.ts
JSON_CANONICALIZATION_SCHEME
Sidetree v1.0.0 - Default Parameters(JSON_CANONICALIZATION_SCHEME)
RFC: JSON Canonicalization Scheme (JCS) draft-rundgren-json-canonicalization-scheme-17
ソースコード:
- class JsonCanonicalizer: sidetree/lib/core/versions/latest/util/JsonCanonicalizer.ts:6
- npm: canonicalize
6.1 Multihash
Sidetree v1.0.0 - 6.1 Hashing Process
Multiformats / Multihash
ソースコード :
- class Multihash: sidetree/lib/core/versions/latest/Multihash.ts:13
6.2 Commitment Schemes
Sidetree v1.0.0 - 6.2 Commitment Schemes
ソースコード :
7. Network Topology
Sidetree v1.0.0 - 7. Network Topology
Decentralized Ledger System
Sidetree Network
CAS Network
8. File Structures
Sidetree v1.0.0 - 8. File Structures
8.1 Core Index File
Sidetree v1.0.0 - 8.1 Core Index File
ソースコード:
- class CoreIndexFile: sidetree/lib/core/versions/latest/CoreIndexFile.ts
- interface CoreIndexFileModel: sidetree/lib/core/versions/latest/models/CoreIndexFileModel.ts
8.2 Provisional Index File
Sidetree v1.0.0 - 8.2 Provisional Index File
ソースコード:
- class ProvisionalIndexFile: sidetree/lib/core/versions/latest/ProvisionalIndexFile.ts
- interface ProvisionalIndexFileModel: sidetree/lib/core/versions/latest/models/ProvisionalIndexFileModel.ts
8.3 Core Proof File
Sidetree v1.0.0 - 8.3 Core Proof File
ソースコード:
- class CoreProofFile: sidetree/lib/core/versions/latest/CoreProofFile.ts
- interface CoreProofFileModel: sidetree/lib/core/versions/latest/models/CoreProofFileModel.ts
8.4 Provisional Proof File
Sidetree v1.0.0 - 8.4 Provisional Proof File
ソースコード:
- class ProvisionalProofFile: sidetree/lib/core/versions/latest/ProvisionalProofFile.ts
- interface CoreProofFileModel: sidetree/lib/core/versions/latest/models/CoreProofFileModel.t
8.5 Chunk Files
Sidetree v1.0.0 - 8.5 Chunk Files
ソースコード:
- class ChunkFile: sidetree/lib/core/versions/latest/ChunkFile.ts
- interface ChunkFileModel: sidetree/lib/core/versions/latest/models/ChunkFileModel.ts
9. DID URI Composition
Sidetree v1.0.0 - 9. DID URI Composition
ソースコード:
- class Did: sidetree/lib/core/versions/latest/Did.ts
9.1 Long-Form DID URIs
ソースコード:
- resolveLongFormDid(): sidetree/lib/core/versions/latest/RequestHandler.ts#L215
10. JSON Web Signatures
Sidetree v1.0.0 - 10. JSON Web Signatures
ソースコード:
- class Jws: sidetree/lib/core/versions/latest/util/Jws.ts #L87
- interface JwsModel: sidetree/lib/core/versions/latest/models/JwsModel.ts
10.1 Signing
Sidetree v1.0.0 - 10.1 Signing
ソースコード:
10.2 Verifying
Sidetree v1.0.0 - 10.2 Verifying
ソースコード:
- verifySignature(): sidetree/lib/core/versions/latest/util/Jws.t#L87
11. DID Operations
Sidetree v1.0.0 - 11. DID Operations
ソースコード:
- class Operation():
sidetree/lib/core/versions/latest/Operation.ts#L15 - class OperationProcessor():
sidetree/lib/core/versions/latest/OperationProcessor.ts#L22 - class RequestHandler():
sidetree/lib/core/versions/latest/RequestHandler.ts#L22
11.1 Create
ソースコード:
- applyCreateOperation(): sidetree/lib/core/Resolver.ts#L87
- class CreateOperation: sidetree/lib/core/versions/latest/CreateOperation.ts#L15
11.2 Update
ソースコード:
- applyUpdateOperations(): sidetree/lib/core/Resolver.ts#L137
- class UpdateOperation: sidetree/lib/core/versions/latest/UpdateOperation.ts
11.3 Recover
Sidetree v1.0.0 - 11.2 Recover
ソースコード:
- applyRecoverAndDeactivateOperations(): sidetree/lib/core/Resolver.ts#L105
- class RecoverOperation: sidetree/lib/core/versions/latest/RecoverOperation.ts
11.4 Deactivate
Sidetree v1.0.0 - 11.4 Deactivate
ソースコード:
- applyRecoverAndDeactivateOperations(): sidetree/lib/core/Resolver.ts#L105
- class DeactivateOperation: sidetree/lib/core/versions/latest/DeactivateOperation.ts
12. DID State Patches
Sidetree v1.0.0 - 12. DID State Patches
ソースコード:
- enum: sidetree/lib/core/versions/latest/PatchAction.ts
- DocumentComposer.ts: sidetree/lib/core/versions/latest/DocumentComposer.ts
12.1.1 add-public-keys
Sidetree v1.0.0 - 12.1.1 add-public-keys
ソースコード:
- addPublicKeys(): sidetree/lib/core/versions/latest/DocumentComposer.ts#L415
12.1.2 remove-public-keys
Sidetree v1.0.0 - 12.1.2 remove-public-keys
ソースコード:
- removePublicKeys(): sidetree/lib/core/versions/latest/DocumentComposer.ts#L431
12.1.3 add-services
Sidetree v1.0.0 - 12.1.3 add-services
ソースコード:
- addServices(): sidetree/lib/core/versions/latest/DocumentComposer.ts#L442
12.1.4 remove-services
Sidetree v1.0.0 - 12.1.4 remove-services
ソースコード:
- removeServices(): sidetree/lib/core/versions/latest/DocumentComposer.ts#L466
12.1.5 replace
Sidetree v1.0.0 - 12.1.5 replace
ソースコード:
12.1.6 ietf-json-patch
Sidetree v1.0.0 - 12.1.6 ietf-json-patch
実装されていない?
13. Transaction & Operation Processing
13.1 Transaction Anchoring
Sidetree v1.0.0 - 13.1 Transaction Anchoring
- write():sidetree/lib/core/versions/latest/BatchWriter.ts#76
- AnchoredData{}: sidetree/lib/core/versions/latest/models/AnchoredData.ts
13.2 CAS File Propagation
Sidetree v1.0.0 - 13.2 CAS File Propagation
13.3 Transaction Processing
Sidetree v1.0.0 - 13.3 Transaction Processing
ソースコード:
- processTransaction(): sidetree/lib/core/versions/latest/TransactionProcessor.ts#L38
13.4 Core Index File Processing
Sidetree v1.0.0 - 13.4 CAS File Propagation
ソースコード:
- downloadAndVerifyCoreIndexFile(): sidetree/lib/core/versions/latest/TransactionProcessor.ts#L138
- parse(): sidetree/lib/bitcoin/SidetreeTransactionParser.ts #L23
13.5 Provisional Index File Processing
Sidetree v1.0.0 - 13.5 Transaction Processing
ソースコード:
- downloadAndVerifyCoreProofFile(): sidetree/lib/core/versions/latest/TransactionProcessor.ts#L138
- parse(): sidetree/lib/bitcoin/SidetreeTransactionParser.ts #L23
13.6 Core Proof File Processing
Sidetree v1.0.0 - 13.6 Core Proof File Processing
ソースコード:
- downloadAndVerifyCoreProofFile(): sidetree/lib/core/versions/latest/TransactionProcessor.ts#L173
- parse(): sidetree/lib/bitcoin/SidetreeTransactionParser.ts#L23
13.7 Provisional Proof File Processing
Sidetree v1.0.0 - 13.7 Provisional Proof File Processing
ソースコード:
- downloadAndVerifyProvisionalProofFile(): sidetree/lib/core/versions/latest/TransactionProcessor.ts#L197
- parse(): sidetree/lib/core/versions/latest/ProvisionalProofFile.ts#L55
13.8 Chunk File Processing
Sidetree v1.0.0 - 13.8 Chunk File Processing
ソースコード:
- downloadAndVerifyChunkFile(): sidetree/lib/core/versions/latest/TransactionProcessor.ts#L263
- parse(): sidetree/lib/core/versions/latest/ProvisionalProofFile.ts#L55
14. Proof of Fee
14.1 Base Fee Variable
Sidetree v1.0.0 - 14.1 Base Fee Variable
ソースコード:
- computeMinimumTransactionFee(): sidetree/lib/core/versions/latest/FeeManager.ts#L19
14.2 Per-Operation Fee
Sidetree v1.0.0 - 14.2 Per-Operation Fee
ソースコード:
"normalizedFeeToPerOperationFeeMultiplier": sidetree/lib/core/versions/latest/protocol-parameters.json#L14
14.3 Value Locking
Sidetree v1.0.0 - 14.3 Value Locking
- ソースコード:
createLockTransaction(): sidetree/lib/bitcoin/BitcoinClient.ts#L157
15. Resolution
Sidetree v1.0.0 - 15. Resolution
ソースコード:
- resolve: sidetree/lib/core/Resolver.ts#L22
タスク
発見できなかったコードや疑問点等を以下に記録。