The ChaordicLedger is the implementation of a design for a combination of Distributed Ledger Technology (DLT) and a Distributed File System (DFS) to create a secure, enterprise-grade platform for storing interlinked project artifacts.
The development of this platform is in pursuit of the author's PhD research objectives.
The goal of this codebase is to establish a TRL Level 4 Proof of Concept (PoC) of integrating the distributed nature of the InterPlanetary File System (IPFS) with the permissioned, private nature of Hyperledger Fabric via industry-relevant smart contracts to achieve a macro-to-micro-scale view of large integrated systems in support of Systems Engineering, Configuration Management, Software Engineering, and Cost Account Management.
- Clone this repository
- Create a GitHub read token.
- Create a "githubReadToken.sh" script file in the repository's root directory with the following contents:
export githubReadToken=ghp_YOUR_READ_TOKEN_HERE
- Run the reload.sh script.
Title | Forum | URL |
---|---|---|
ChaordicLedger: Digital Transformation and Business Intelligence via Data Provenance and Ubiquity | Institute of Electrical and Electronics Engineers Systems Conference (IEEE SYSCON) 2022 | https://ieeexplore.ieee.org/document/9773812 |
Distributed Ledgers in Developing Large-Scale Integrated Systems | Institute of Electrical and Electronics Engineers Systems Conference (IEEE SYSCON) 2021 | https://ieeexplore.ieee.org/document/9447136 |
- All indexed publications by author: https://orcid.org/0000-0001-5594-9756
- The platform shall be portable.
- All deployment-specific attributes shall be specifiable at deployment time (e.g. from a pipeline)
- Test automation shall be implemented early and where practical.
- Free and Open-Source technologies shall be leveraged.
- Behavior and results are measurable and equatable.
Item | Implementation Status | Documentation Status | Pipeline Execution |
---|---|---|---|
Scripted generation of root certificate authority. | ✔️ | ✔️ | ✔️ |
Scripted generation of node certificate signed by generated root certificate authority. | ✔️ | ✔️ | ➖ |
Creation of Hyperledger Node | ✔️ | ✔️ | ➖ |
Creation of hybrid Hyperledger/IPFS Cluster | ✔️ | ✔️ | ✔️ |
Creation of RESTful API | ✔️ | ✔️ | ✔️ |
Creation of Chaincode | ✔️ | ✔️ | ✔️ |
Defining and Executing Simulations | ✔️ | ✔️ | ➖ |
Gathering Key Performance Indicators (KPIs) | ✔️ | ✔️ | ➖ |
- Diagnose/correct Java-based chaincode connectivity issues (may be due to proxy on corporate network or TLS configuration).
- Enable communication of multiple nodes across disparate networks.
- Enable role-based authorization.
- Enable TLS for chaincode.
- Enable use of specified Certificate Authority.
- Add API method for drill-down requests.
- Add served rendering of relationship graphs. Possible starting point https://github.com/wangkuiyi/graphviz-server
- Increase the TRL by executing the platform on edge-style hardware devices by way of third-party users.
- Refactor the codebase to use another form of scripted setup orchestration, such as docker-compose.
- Hyperledger Fabric Cheat Sheet: https://softwaremill.com/hyperledger-fabric-cheat-sheet/
- Markdown Editor: https://jbt.github.io/markdown-editor/
- K9s - Kubernetes CLI To Manage Your Clusters In Style!: https://k9scli.io/
- kind: https://kind.sigs.k8s.io/
- Kubernetes Cheat Sheet: https://kubernetes.io/docs/reference/kubectl/cheatsheet/
- Obsidian: https://obsidian-lang.com/
- Obsidian Tutorial: https://obsidian.readthedocs.io/en/latest/tutorial/tutorial.html
- Swagger Editor: https://editor.swagger.io/
- Technology Readiness Level (TRL): https://en.wikipedia.org/wiki/Technology_readiness_level
- Taking IPFS Nodes Online: https://docs.ipfs.io/how-to/command-line-quick-start/#take-your-node-online
- Exchanging Files Between IPFS Nodes: https://docs.ipfs.io/how-to/exchange-files-between-nodes/
- Making HTTP Requests in Golang: https://medium.com/@masnun/making-http-requests-in-golang-dd123379efe7
- Go IPFS API: https://github.com/ipfs/go-ipfs-api
- Hyperledger Explorer: https://github.com/hyperledger/blockchain-explorer
- Kubernetes Dashboard: https://github.com/kubernetes/dashboard
- Kubernetes Metrics Server: https://github.com/kubernetes-sigs/metrics-server
- YAML Lint: http://www.yamllint.com/
- Graphviz Online: [https://dreampuf.github.io/GraphvizOnline/] (https://dreampuf.github.io/GraphvizOnline/)
- Examples -- graphviz 0.20 documentation: [https://graphviz.readthedocs.io/en/stable/examples.html] (https://graphviz.readthedocs.io/en/stable/examples.html)
- Drawing graphs with dot: [https://www.graphviz.org/pdf/dotguide.pdf] (https://www.graphviz.org/pdf/dotguide.pdf)
- Dapr Docs: https://docs.dapr.io/operations/monitoring/logging/fluentd/
- Fluentd: https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd
- Emojipedia: https://emojipedia.org/
- Unicode Character Table: https://unicode-table.com/en/2714/
- Note: The HTML code for ✔️is ✔
- Terraform OpenStack Provide: https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs