Skip to content

First Brainstorming #1

@julia-sprenger

Description

@julia-sprenger

Original document

Currently:

chain
PoW (Proof of Work)
nuclear data via ENDFtk
differences tracked with JSON patch

Need to update to:

tree
digital signing with pub-priv key pair (no PoW)

generic data in JSON, not specifically nuclear data
mechanism to indicate parsing tool/JSON format

Philosophy:

Everything is a JSON file, or at least JSON compatible
Functional over object-oriented style (though object-oriented may be fine as well)

Questions:

What is the tree (data structure)?
rely 100% on JSON data structure, must conform to JSON format.
is there already json functionality to merge branches of that tree?
Serialization?
How to share/distribute?

How to sign with certs - openssl?

JSON-Object1: ab20843ff
JSON-Object2: 20384effa

{   "sources": {
"json_object1": ab20843ff,
"json_object2": 20384effa
"destination": None 
    },
"patch": [
            {
                "op": "copy",
                "source_path": "json_object1/mf3",
                "destination_path": destination/mf3"
                "value": {
                    "mt1": {
                        "energies": [
                            1e-05,
                            1018.495,
                            ]
                            
    "patch": [
            {
                "op": "replace",
                "path": "/mf3/mt1/xs/369",
                "value": 6.317111
            }
        ],
}

json_object3

signed_json_object := {
   "header": {type: ..., public key:, signed_hash_of_payload: ...}
   "payload": <fingerprint of json_object3> 
    }

Mechanism to retrieve JSON objects using fingerprints
-> look for filename matching fingerprint and load it

signed_json_object0 <----- signed_json_object1 <------- extended_json_patch
signed_json_object2 <-------

replay_json_chain(last_json_object_fingerprint)
obj = retrieve retrieve_json_patch_file(last_json_object_fingerprint)
sources = get_json_patch_sources(obj, verify=True)
... prepare extended json patch
result_json_obj = apply_json_patch(json_patch)

What needs to be done:

1. How can a signed JSON object be created and verified? (Thomas)
- try with openssl and priv-pub key pair
2. How to retrieve a JSON file from a fingerprint? (Georg)
3. How to use the extended JSON patch? (Georg) 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions