{"id":26049492,"url":"https://github.com/rzander/jaindb","last_synced_at":"2025-04-10T17:36:02.176Z","repository":{"id":28432667,"uuid":"111999501","full_name":"rzander/jaindb","owner":"rzander","description":"Blockchain based database","archived":false,"fork":false,"pushed_at":"2023-11-11T14:30:46.000Z","size":3900,"stargazers_count":31,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-09T15:08:03.666Z","etag":null,"topics":["archive","blockchain","database","json"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rzander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-11-25T11:48:12.000Z","updated_at":"2024-07-12T03:16:58.000Z","dependencies_parsed_at":"2023-11-11T15:28:16.109Z","dependency_job_id":null,"html_url":"https://github.com/rzander/jaindb","commit_stats":null,"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rzander%2Fjaindb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rzander%2Fjaindb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rzander%2Fjaindb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rzander%2Fjaindb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rzander","download_url":"https://codeload.github.com/rzander/jaindb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262032,"owners_count":21074230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archive","blockchain","database","json"],"created_at":"2025-03-08T01:35:46.758Z","updated_at":"2025-04-10T17:36:02.155Z","avatar_url":"https://github.com/rzander.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![jaindb](https://github.com/rzander/jaindb/blob/master/docs/images/JAINDB%201.png)\n\nJainDB is a blockchain based data warehouse for JSON objects. It provides a [REST API](https://github.com/rzander/jaindb/wiki/REST-API) to interact with the data store. Jaindb is using REDIS, CosmosDB or just the File-System to store the data by using hashing and deduplication technologies.\n\nJaindb was initially created to store inventory data of computers in an auditable way with the history of all changes. But as jaindb is schema-less, it can store everything you want... \n\nIt's using blockchain technology, but data is **not** distributed and **no** CPU power is required to calculate a \"proof of work\".\n\n## Overview\n![overview](https://github.com/rzander/jaindb/blob/master/docs/images/Overview.png  \"jaindb Overview\"   )\n\n**Interrested ? Check the [Quick-Start](https://github.com/rzander/jaindb/wiki/Quick-start) Guide in the [Wiki](https://github.com/rzander/jaindb/wiki) Section...**\n\nAre you a Developper ? -\u003e [.NET-Core-Examples](https://github.com/rzander/jaindb/wiki/.NET-Core-Examples)\n\n## Data Store\nJaindb can store data fragments on:\n- File System (slow but simple)\n- Redis Cache (fast and easy to setup)\n- CosmosDB (scalable cloud service)\n- RethinkDB (fast and easy to setup)\n\nIt splits the original data into blocks (JSON Objects) that can be referenced from other data sources..\nAn example on inventory data of an audio device on a computer:\n```\n\"Audio\": [\n    {\n      \"##hash\": \"9qZnR1RLHiwJK1tbVpfrAkDX5\"\n    },\n    {\n      \"##hash\": \"9qZpHGtxLiUYSaoZ3QGeXum35\"\n    }\n  ]\n```\nthis device has two audio devices, but just the hash values are stored on the audio object, so other computers with the same audio device do not have to story any additional data, just link to the existing data which is the reference to the hash value.\n\nat the end, the hash value of the inventory data that contains all the hash references will be stored and added to a blockchain:\n```\n{\n  \"Chain\": [\n    {\n      \"index\": 0,\n      \"timestamp\": 636471513240444298,\n      \"previous_hash\": \"\",\n      \"hash\": \"x3gVMwVt+Snzj8b9Gln8sp4Ujw/E2jtX6KfcEzWluhA=\",\n      \"nonce\": 1,\n      \"data\": \"\",\n      \"signature\": \"\",\n      \"blocktype\": \"root\"\n    },\n    {\n      \"index\": 1,\n      \"timestamp\": 636471513242139314,\n      \"previous_hash\": \"x3gVMwVt+Snzj8b9Gln8sp4Ujw/E2jtX6KfcEzWluhA=\",\n      \"hash\": \"/mJCe9E/OukY3udxiMt6yLpFQ79dNn66qc5iHCT1AUU=\",\n      \"nonce\": 2,\n      \"data\": \"9qZNqUJ2H3Jso71NEPc6FCQyS\",\n      \"signature\": \"\",\n      \"blocktype\": \"INV\"\n    },\n    {\n      \"index\": 2,\n      \"timestamp\": 636472149162185683,\n      \"previous_hash\": \"/mJCe9E/OukY3udxiMt6yLpFQ79dNn66qc5iHCT1AUU=\",\n      \"hash\": \"Tst3z3gdq2krnDzj4R6DpeAUwFbN1GzbmrSe5il0NSc=\",\n      \"nonce\": 3,\n      \"data\": \"9qZQ2AxdCqkz15nyMTLxyGkii\",\n      \"signature\": \"\",\n      \"blocktype\": \"INV\"\n    }\n  ]\n}\n```\nIf something changes on the asset data, a new block with a reference to the list of all hashed inventory data (\"data\" attribute) will be added to the blockchain.\n\n\n\u003e Storing data in hashed blocks is great to save disk space but it requies an API to convert the data back into a readable format. JainDB provides a REST API to upload and query data. https://github.com/rzander/jaindb/wiki/REST-API\n\nDocker Image: https://hub.docker.com/r/zanderr/jaindb/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frzander%2Fjaindb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frzander%2Fjaindb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frzander%2Fjaindb/lists"}