From ec784f92e5ded6ab8e04f5664464bb77c042f524 Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Tue, 16 Sep 2025 21:21:54 -0400 Subject: [PATCH 01/11] HLF Documentation --- ...Integration with Greenstand Treetracker.md | 240 +++++++++++++ hyperledger-fabric-network/README.md | 319 ++++++++++++++++++ 2 files changed, 559 insertions(+) create mode 100644 hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md create mode 100644 hyperledger-fabric-network/README.md diff --git a/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md new file mode 100644 index 0000000..273de8a --- /dev/null +++ b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md @@ -0,0 +1,240 @@ +# Enterprise Blockchain (Hyperledger Fabric) Integration with Greenstand Treetracker Platform + +## Introduction + +Greenstand’s Treetracker project connects people and communities planting trees around the world with donors and investors. Growers use the mobile app to take geotagged photos of each tree, and these captures are uploaded to a verification platform ([greenstand.org](https://greenstand.org)). Once a tree is verified, its Impact Token can be traded; donors and investors can purchase tokens directly from growers, providing income and incentives for reforestation ([greenstand.org](https://greenstand.org)). This system demands transparency and trust: donors must be certain that each token reflects a verified tree, and growers need assurance that their contributions and rewards are accurately recorded. To meet these requirements, Greenstand is exploring an enterprise blockchain solution based on Hyperledger Fabric (HLF). + +Hyperledger Fabric is an open-source, permissioned blockchain platform built for business applications. Unlike permissionless networks, Fabric uses deterministic consensus and membership services to ensure that only authorised participants transact and that their transactions cannot be altered ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Fabric’s modular architecture supports pluggable consensus algorithms, private communication channels, and rich programming models for smart contracts. This documentation explains how Hyperledger Fabric can be integrated with the Treetracker system and provides guidance for a production-ready deployment. + +--- + +## Hyperledger Fabric Overview + +### Permissioned and Modular Design + +In Hyperledger Fabric, every actor—peers, orderers, client applications and administrators—possesses a digital identity encapsulated in an X.509 certificate ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Identities are issued by trusted Certificate Authorities (CAs) and form the basis for a Membership Service Provider (MSP) which determines who may read, write or configure data ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). The platform separates the execution of smart contracts (chaincode), transaction ordering and validation, improving performance and allowing organisations to plug in different components as needed ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +**Key features of Hyperledger Fabric include:** + +- **Deterministic consensus:** Fabric’s ordering service uses deterministic algorithms rather than probabilistic mechanisms. A block validated by a peer is guaranteed to be final and correct, preventing forks ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Private communication channels:** A channel is a private subnet of communication among specific organisations; each channel has its own ledger, smart contracts and policies ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Channels allow competitors to coexist on the same network while keeping sensitive data isolated ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Smart contracts (chaincode):** Business logic is encapsulated in chaincode, which endorsing peers execute to produce a read/write set; the endorsement policy specifies which peers must sign a transaction ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **State database:** Peers maintain a world state and a blockchain. The world state stores current values of ledger states, while the blockchain stores the history of transactions. Once transactions are appended to the blockchain, they cannot be modified ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Pluggable databases:** Fabric supports LevelDB (embedded key-value store) and CouchDB (external document database). CouchDB enables JSON queries and indexing but requires extra setup ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +### Consensus and Ordering Service + +Fabric’s ordering service packages endorsed transactions into blocks, determines their order and delivers them to peers. The recommended implementation is **Raft**, a crash-fault-tolerant (CFT) consensus algorithm introduced in Fabric 1.4.1 ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Raft uses a leader–follower model: a leader is elected per channel and replicates transactions to follower orderers ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). If a leader fails, a new leader is elected, and the system continues as long as a quorum (a majority of orderer nodes) remains ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). In production, organisations typically deploy three or five orderer nodes across different data centres to ensure high availability ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +--- + +## Treetracker Integration Architecture +HLF TT Arch2 + +### Client Applications + +- **Mobile Treetracker App:** A application for growers. It allows users to capture a tree’s photo and location, compute the image’s hash, and submit this data to the blockchain. +- **Web Map Interface:** A Next.js web app that displays verified trees using data from the blockchain and an off-chain database. +- **Admin Panel:** A React dashboard that lets authorised verifiers review tree submissions and update their status. +- **Wallet Application:** A user interface where Impact Tokens can be viewed, transferred or traded. + +### API Gateway and Supporting Services + +- **HLF Gateway Service:** A Node.js (or TypeScript) service that acts as the client interface to Fabric. It uses the Fabric Gateway API, which simplifies transaction processing by handling endorsement collection and submission to the orderer ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). The gateway performs functions like evaluating a transaction (read-only query), collecting endorsements, submitting transactions and waiting for commit status ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Identity Management:** Integration with Fabric CA for user registration, enrollment and certificate issuance. Users authenticate via a separate identity provider (e.g., Keycloak) and receive X.509 certificates for blockchain access. Fabric CAs support registration of identities, issuance of enrolment certificates, renewal and revocation ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). + +- **Off-chain Database:** PostgreSQL is used to store metadata (tree attributes, user profiles), image hashes and query-optimised views. Sensitive data remains off-chain; only hashes and references are stored on the blockchain. CouchDB is used as the state database on peers for queryable JSON storage ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Event Listeners:** Microservices subscribe to block and chaincode events through the Fabric gateway. When a tree is verified, they update the off-chain database and trigger token minting. + +### Security and Compliance + +- **TLS/mTLS Encryption:** The Fabric CA documentation emphasises enabling TLS for the CA server; without TLS, the CA is vulnerable to network attacks ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). Similarly, all peer-to-peer and client-peer communications should use TLS and, where appropriate, mutual TLS for authentication. + +- **Hardware Security Modules (HSMs):** Private keys for orderers, peers and gateway clients should be stored in HSMs or soft HSMs. Fabric CA can be configured to use external HSMs ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). + +- **Audit Logging:** The immutable blockchain ledger records every transaction. The ledger is comprised of a blockchain (immutable sequence of blocks) and a world state; once a transaction is appended to the blockchain, it cannot be altered ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). This immutable audit trail satisfies regulatory requirements. + +- **GDPR and Data Privacy:** Sensitive data is kept off-chain in PostgreSQL, while hashed references are stored on-chain. Private data collections may specify a `blockToLive` property to purge private data after a certain number of blocks, enabling data expiry to support right-to-be-forgotten requirements ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +--- + +## Hyperledger Fabric Network Setup +HLF TT Arch3 + +### Ordering Service + +A **Raft** ordering service is provisioned with five orderer nodes, distributed across multiple data centres for high availability. Raft is crash-fault-tolerant; it can withstand the loss of up to two nodes in a five-node cluster ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Each channel runs its own Raft instance, electing a leader per channel ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Organisations may specify which of their orderer nodes participate in each channel ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +### Peers + +Each organisation runs endorsing and committing peers. Endorsing peers execute chaincode and produce proposal responses; committing peers validate transactions and update their ledgers. Peers use a **gossip** protocol to discover other peers, disseminate blocks and private data, and keep ledgers consistent ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Gossip also elects leaders within organisations to efficiently pull blocks from the ordering service ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +### Channels +HLF TT Arch4 2 + +Treetracker uses several channels: + +- **Public Channel:** Contains tree registration, verification and token transfer data. All participating organisations—Greenstand, CBOs, investors and verifiers—have access. Each organisation designates **anchor peers** to communicate with peers in other organisations. A channel is a private subnet where all transactions are confidential among its members ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Private Channels:** Used for sensitive organisational data, e.g., investor commitments or verification notes. Only authorised organisations join these channels. + +- **Cross-Channel Transactions:** For multi-organisation interactions, Fabric supports cross-channel data referencing (private data cross-channel flows require careful endorsement policies). + +### Certificate Authorities and Identity + +For each organisation, a root CA issues certificates for one or more intermediate CAs. Intermediate CAs issue X.509 certificates to users, peers and orderers. The Fabric CA server is initialised with a CSR (Certificate Signing Request) specifying fields like Common Name (CN), organisation (O), organisational unit (OU), location (L), state (ST) and country (C) ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The server can generate a self-signed CA certificate or obtain a certificate signed by a parent CA ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). TLS is enabled to secure enrolment and registration ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The Membership Service Provider (MSP) uses these certificates to define valid identities and assign roles ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +### Smart Contracts (Chaincode) +HLF TT Arch5 + +Chaincode encapsulates the business logic of Treetracker. Four main contracts are envisaged: + +- **TreeContract:** Functions to register a tree, update its status, verify tree data and query history. For example, the `RegisterTree` function validates input parameters, checks that the tree does not already exist, creates a tree asset and stores it on the ledger. The chaincode then returns an error if the tree ID is empty or already exists, and updates the ledger state accordingly. Smart contracts should perform thorough input validation and avoid duplicate IDs ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **TokenContract:** Handles the creation (minting), transfer and burning of Impact Tokens. Tokens are minted once a tree is verified, linking a token’s ownership to a specific tree ID in the ledger. + +- **UserContract:** Manages user registration, profile updates and permission grants. User attributes (roles, organisation) are stored off-chain but referenced in the ledger for auditability. + +- **AuditContract:** Logs transactions, creates audit trails and performs compliance checks. Each log entry contains a transaction ID, actor identity, action, resource ID and timestamp. + +Chaincode runs in a Docker container managed by peers. Fabric’s **new chaincode lifecycle** involves packaging, installing, approving and committing chaincode definitions. An endorsement policy—such as requiring Greenstand and Verifier peers to sign tree verifications—is defined when committing the chaincode ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +--- + +## Transaction Flow Mapping +HLF TT Arch6 + +A typical tree registration and token issuance flow maps onto Fabric’s transaction flow ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)): + +1. **Tree Capture:** A grower uses the mobile app to capture a photo and GPS coordinates. The app hashes the image and sends a transaction proposal to the Fabric gateway. + +2. **Proposal Evaluation:** The gateway selects endorsing peers and forwards the proposal. The endorsing peers validate the proposal’s structure, ensure it has not been submitted before and that the submitter is authorised ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Each peer executes the `RegisterTree` function, producing a read/write set but not updating the ledger. ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +3. **Endorsement Collection:** Endorsing peers sign the proposal response. The gateway verifies that all responses match and assembles a transaction ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +4. **Ordering:** The transaction is sent to the ordering service, which orders transactions into blocks. In Raft, the ordering node routes the transaction to the current leader for that channel; the leader replicates the log entry to followers ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Once a majority of orderers (a quorum) agree on the block, it is committed and distributed ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +5. **Validation and Commit:** Each committing peer receives the block, verifies that the endorsement policy is satisfied and checks for any read/write conflicts ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Valid transactions are committed to the ledger and the world state is updated; invalid transactions are tagged accordingly ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). A commit event is emitted to notify the application. + +6. **Token Minting:** An event listener service detects the tree verification transaction and invokes the `MintImpactToken` function on the TokenContract, creating tokens for the grower. The updated token balance is stored on the ledger and synchronised with the off-chain wallet application. + +--- + +## Private Data and Confidentiality + +Greenstand’s blockchain must protect sensitive data (e.g., precise GPS coordinates or personal data) while keeping proof of environmental impact accessible. Hyperledger Fabric addresses this through **private data collections**. A private data collection is defined in the chaincode definition and specifies which organisations are allowed to access the data ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Properties include: + +- **policy:** A Signature policy listing organisations permitted to store the data ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **requiredPeerCount / maxPeerCount:** Minimum and maximum numbers of peers to disseminate data to at endorsement time, ensuring redundancy ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **blockToLive:** Number of blocks after which private data is purged from peers; a value of `0` retains data indefinitely ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **memberOnlyRead / memberOnlyWrite:** Flags restricting read/write access to collection members ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +During tree registration, only a **hash** of the image and location is written to the public ledger. The actual image and precise location remain **off-chain**, and the private data collection stores the hash and metadata accessible only to authorised organisations. + +--- + +## Data Dissemination and Gossip + +Hyperledger Fabric implements a **gossip protocol** to disseminate ledger data and maintain consistency across peers. Each peer gossips messages to a random subset of peers, ensuring scalable and reliable distribution ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Gossip performs the following functions ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)): + +- **Peer discovery and membership management** — peers continually identify available peers and detect offline peers. +- **Private data dissemination** — endorsing peers disseminate private data to authorised peers in the collection. +- **Block dissemination** — leader peers pull blocks from the ordering service and optionally gossip them to peers within their organisation ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). +- **State transfer** — new peers can pull blocks from other peers to catch up to the latest ledger height. + +Leader election within an organisation may be static or dynamic. **Static leader election** designates specific peers as leaders; **dynamic leader election** allows peers to elect a leader based on heartbeat messages ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). This mechanism ensures efficient ordering-service bandwidth usage and high availability. + +--- + +## Off-Chain Data and Database Integration + +Hyperledger Fabric’s world state stores only key–value data. For Treetracker, large assets such as images, high-resolution GPS data and complex queries require an external database. The integration uses: + +- **PostgreSQL** for tree metadata, user profiles, tokens and audit logs. It supports rich queries, analytics and compliance requirements. + +- **CouchDB** as the peer’s state database. CouchDB allows storage of JSON documents and supports JSON queries and indexing ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). JSON data modelling enables chaincode to query the ledger using selectors like + `{ "selector": {"docType":"asset","owner": } }` + ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). It is recommended to model data as JSON for auditing and reporting ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +Off-chain data and on-chain hashes must be synchronised via **event listeners**. The event listener reads block events, extracts transaction data and updates the PostgreSQL database. The database can store indices for fast lookup (e.g., by grower or species) and support GIS queries for mapping. + +--- + +## Identity and Access Control + +### Digital Certificates and MSPs + +Every actor in a Fabric network has a digital identity in the form of an X.509 certificate ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). These certificates are issued by a hierarchy of CAs, starting with a root CA, then intermediate CAs for each organisation. When the CA server is initialised, a self-signed certificate or a certificate signed by a parent CA is generated ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The certificate’s subject contains fields such as Common Name (CN), Organisation (O) and location ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The MSP defines the rules for valid identities and maps attributes to roles ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +### TLS and Mutual TLS + +TLS must be enabled on the CA server and between all network components ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). For stronger security, **mutual TLS** can be configured so that clients present certificates during communication, ensuring both ends of the channel are authenticated. Orderers and peers should use TLS certificates signed by a trusted CA. + +### Role-Based Access Control (RBAC) + +Fabric chaincode can inspect client identities and attributes. Applications may embed attributes (e.g., `role=verifier` or `role=grower`) into X.509 certificates or use external identity providers such as Keycloak. Chaincode functions can call the `GetClientIdentity().GetAttributeValue()` API to enforce RBAC. Endorsement policies at chaincode or collection level ensure that only specific organisations can approve a transaction ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +--- + +## Auditability and Compliance + +The immutable blockchain ensures that every transaction, from tree registration to token transfer, is permanently recorded. The ledger comprises a **world state** (current values) and a **blockchain** (transaction history). While the world state can change, the blockchain history cannot be modified ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). This property provides an indisputable audit trail for environmental credits and token trades. Organisations can implement further audit services: an **AuditContract** logs additional context such as user IDs, client applications and compliance checks. + +To meet **GDPR** requirements, private data collections allow data to be purged after a specified number of blocks ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Sensitive off-chain data can also be deleted from PostgreSQL while keeping the on-chain hash, preserving proof without exposing personal data. + +--- + +## Benefits of HLF Integration for Treetracker + +- **Transparency and Trust:** Channels provide shared, immutable ledgers accessible to authorised participants. The ledger stores the current state and the full history of transactions, making tree planting and token transfers transparent and traceable ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Performance and Scalability:** Separating transaction execution, ordering and validation allows Fabric to process many transactions concurrently ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Raft consensus scales horizontally; adding more orderer nodes increases throughput while maintaining finality ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +- **Interoperability:** Standard APIs (Fabric Gateway) and SDKs in Go, Node/TypeScript and Java simplify application development ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Off-chain databases and event listeners integrate easily with existing systems, such as payment platforms or carbon credit marketplaces. + +- **Privacy and Confidentiality:** Private data collections restrict data access to authorised organisations, while still allowing participation in shared channels ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Off-chain storage and hashing protect sensitive personal or location data. + +- **Auditability and Compliance:** The immutable ledger and world state create verifiable, tamper-resistant records ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Audit contracts and event listeners can generate reports and support regulatory audits. + +- **Cost Efficiency:** By removing intermediaries and automating verification, Fabric reduces transaction costs. Growers and investors transact directly via smart contracts, while sponsors can trace the environmental impact of their contributions. + +--- + +## Implementation Guidance + +To deploy the Treetracker blockchain solution, organisations should follow these steps: + +1. **Set up Certificate Authorities:** Deploy a root CA and intermediate CAs for each organisation. Initialise the CA server with a CSR specifying the subject fields ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). Enable TLS on the CA server ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). + +2. **Generate Identities:** Register and enrol peers, orderers and users via the CA. Create MSP folders containing the certificates and keys for each component. Use HSMs where possible ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). + +3. **Configure Ordering Service:** Create a Raft consortium with an odd number of orderer nodes (3 or 5). Configure the `orderer.yaml` file; specify `ConsensusType: etcdraft`, enable TLS, and define the consenter set. Deploy orderers across data centres for fault tolerance ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +4. **Deploy Peers:** Deploy endorsing and committing peers per organisation. Configure the gossip protocol and set anchor peers. Choose CouchDB as the state database for advanced queries ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Enable TLS and configure static or dynamic leader election ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). + +5. **Create Channels:** Generate channel configuration transactions (`configtx.yaml`) specifying member organisations, anchor peers and policies. Use a public channel for tree registration and token transfers, and additional channels for sensitive data. Set channel capabilities to the latest Fabric version. + +6. **Package and Deploy Chaincode:** Write chaincode for the TreeContract, TokenContract, UserContract and AuditContract. Package and install chaincode on endorsing peers. Organisations approve and commit the chaincode definition with an endorsement policy reflecting the required signatories (e.g., both Greenstand and Verifier must endorse a tree verification). Use private data collections for sensitive fields. + +7. **Set up API Gateway and Event Listeners:** Implement a Node.js/TypeScript gateway service using the Fabric Gateway SDK. The gateway should manage wallet identities and map external authentication (e.g., JWT tokens) to Fabric identities. Event listener services should subscribe to block and chaincode events and update the off-chain database. + +8. **Integrate Off-Chain Database and Storage:** Deploy PostgreSQL for metadata and MinIO/S3 for images. Ensure that image hashes stored on-chain match the stored files. Implement scheduled tasks for data purging as required by GDPR. + +9. **Implement Client Applications:** Enhance the mobile app to compute image hashes and handle offline submission with retries. Build the admin panel for reviewers and the wallet app for token management. Use the web map to display verified trees by querying the off-chain database and cross-checking the blockchain state. + +10. **Monitor and Secure the Network:** Use Prometheus and Grafana to monitor peer and orderer health, transaction latency and block height. Configure alerting for quorum loss, leader changes and endorsement failures. Conduct regular audits of identities and MSP configurations. + +--- + +## Conclusion + +By integrating Hyperledger Fabric with Greenstand’s Treetracker system, growers, donors and investors gain a transparent, trustworthy and scalable platform for environmental impact tracking. The permissioned blockchain records every tree capture, verification and token transfer in an immutable ledger, while private data collections and off-chain databases protect sensitive information. Raft consensus ensures high availability and fault tolerance, and the Fabric Gateway simplifies client application development. With proper configuration, robust identity management and thorough monitoring, this architecture can deliver a resilient enterprise blockchain solution that aligns economic incentives with ecological restoration. diff --git a/hyperledger-fabric-network/README.md b/hyperledger-fabric-network/README.md new file mode 100644 index 0000000..a16daca --- /dev/null +++ b/hyperledger-fabric-network/README.md @@ -0,0 +1,319 @@ +Treetracker HLF Network + +
+

🌳 Blockchain-based Tree Tracking Network 🌳

+

A production-ready Hyperledger Fabric network for transparent tree planting and carbon offset tracking

+
+ +[![Hyperledger Fabric](https://img.shields.io/badge/Hyperledger%20Fabric-2.5.7-blue.svg)](https://hyperledger-fabric.readthedocs.io/) +[![Kubernetes](https://img.shields.io/badge/Kubernetes-1.28+-blue.svg)](https://kubernetes.io/) +[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0) +[![Network Status](https://img.shields.io/badge/Network-Production%20Ready-brightgreen.svg)](#) + +--- + +## 🌍 Overview + +The Hyperledger Fabric Treetracker Network is a blockchain-based solution designed to provide transparent, immutable tracking of tree planting initiatives and carbon offset programs. Built for [Greenstand](https://greenstand.org/) and partners, this network ensures accountability in environmental restoration projects through distributed ledger technology. + +### Key Features + +- **🔒 Immutable Tree Records** - Every tree planting event is permanently recorded on the blockchain +- **🤝 Multi-Organization Network** - Supports Greenstand, CBOs, Investors, and Verifiers +- **🌐 Public Transparency** - All stakeholders can verify tree planting data +- **📊 Real-time Analytics** - Live dashboards for monitoring forest restoration progress +- **🔐 Enterprise Security** - Certificate-based authentication and TLS encryption +- **📈 Scalable Infrastructure** - Kubernetes-based deployment supporting global operations + +--- + +## 🏗️ Network Architecture + +### Organizations + +| Organization | Role | Peers | Description | +|--------------|------|-------|-------------| +| **Greenstand** | Network Admin | 3 | Primary tree tracking organization | +| **CBO** | Tree Planters | 2 | Community-Based Organizations | +| **Investor** | Funders | 2 | Carbon offset purchasers | +| **Verifier** | Validators | 1 | Independent verification entities | + +### Network Components + +- **🏦 Ordering Service**: 5-node Raft consensus cluster +- **🔐 Certificate Authorities**: 5 CAs (1 Root + 4 Organization CAs) +- **📊 Monitoring**: Prometheus + Grafana stack +- **🗄️ Storage**: Persistent volumes with automatic backup +- **🌐 API Gateway**: RESTful APIs for external integration + +--- + +## 🚀 Quick Start + +### Prerequisites + +- **Kubernetes Cluster**: v1.23+ with 5+ nodes +- **Storage**: 500GB+ SSD with dynamic provisioning +- **Resources**: 32+ CPU cores, 64GB+ RAM +- **Network**: LoadBalancer support for external access + +### 1. Clone the Repository + +```bash +git clone https://github.com/Greenstand/hyperledger-fabric-network.git +cd hyperledger-fabric-network +``` + +### 2. Deploy the Network + +```bash +# Deploy complete network infrastructure +./scripts/deploy-treetracker-network.sh + +# Create channels +./scripts/create-channels.sh + +# Deploy chaincode +./scripts/deploy-chaincode.sh + +# Verify deployment +./scripts/test-network.sh +``` + +### 3. Access the Network + +```bash +# Get network status +kubectl get pods --all-namespaces | grep hlf- + +# Access API Gateway +kubectl port-forward svc/api-gateway 8080:80 -n treetracker-apps + +# View monitoring dashboard +kubectl port-forward svc/grafana 3000:3000 -n monitoring +``` + +--- + +## 📚 Documentation + +Comprehensive documentation is available in the `/docs` directory: + +### For Users & Operators +- 📖 **[User Manual](docs/TREETRACKER_USER_MANUAL.md)** - Complete user guide for network operations +- 🛠️ **[Deployment Guide](docs/TREETRACKER_DEPLOYMENT_GUIDE.md)** - Step-by-step deployment instructions + +### For Developers +- 💻 **[Integration Manual](docs/TREETRACKER_INTEGRATION_MANUAL.md)** - SDK usage and API integration +- 🏗️ **[Architecture Guide](docs/TREETRACKER_ARCHITECTURE_GUIDE.md)** - Network design and component details + +### Quick Reference +- [API Documentation](docs/TREETRACKER_INTEGRATION_MANUAL.md#api-reference) +- [Chaincode Functions](docs/TREETRACKER_INTEGRATION_MANUAL.md#chaincode-development) +- [Troubleshooting Guide](docs/TREETRACKER_DEPLOYMENT_GUIDE.md#troubleshooting) +- [Monitoring & Alerts](docs/TREETRACKER_ARCHITECTURE_GUIDE.md#monitoring-and-observability) + +--- + +## 🌐 Network Endpoints + +### Production Network +- **API Gateway**: `https://api.treetracker.network` +- **Blockchain Explorer**: `https://explorer.treetracker.network` +- **Monitoring Dashboard**: `https://monitoring.treetracker.network` + +### Development Network +- **API Gateway**: `http://localhost:8080` +- **Grafana**: `http://localhost:3000` +- **Prometheus**: `http://localhost:9090` + +--- + +## 🔧 Directory Structure + +``` +hyperledger-fabric-network/ +├── 📁 chaincode/ # Smart contracts +│ └── treetracker/ # Tree tracking chaincode (Go) +├── 📁 config/ # Network configuration +│ ├── configtx.yaml # Channel configuration +│ ├── crypto-config.yaml # Certificate configuration +│ └── network-config.yaml # Main network settings +├── 📁 docs/ # Documentation +│ ├── TREETRACKER_USER_MANUAL.md +│ ├── TREETRACKER_INTEGRATION_MANUAL.md +│ ├── TREETRACKER_ARCHITECTURE_GUIDE.md +│ └── TREETRACKER_DEPLOYMENT_GUIDE.md +├── 📁 k8s/ # Kubernetes manifests +│ ├── ca/ # Certificate Authority deployments +│ ├── orderer/ # Orderer node deployments +│ ├── peers/ # Peer node deployments +│ └── monitoring/ # Monitoring stack +├── 📁 scripts/ # Deployment and management scripts +│ ├── deploy-treetracker-network.sh +│ ├── create-channels.sh +│ ├── deploy-chaincode.sh +│ └── test-network.sh +└── 📁 api/ # REST API gateway + ├── nodejs/ # Node.js SDK integration + └── gateway/ # API Gateway service +``` + +--- + +## 🔐 Security Features + +### Certificate Management +- **Root CA**: Self-signed root certificate authority +- **Organization CAs**: Individual CAs for each organization +- **TLS Encryption**: All network communication encrypted +- **Certificate Rotation**: Automated certificate lifecycle management + +### Network Security +- **RBAC**: Role-based access control for all operations +- **Network Policies**: Kubernetes network segmentation +- **Mutual TLS**: Peer-to-peer authentication +- **HSM Support**: Hardware security module integration (optional) + +### Data Privacy +- **Channel Isolation**: Private data channels between organizations +- **Endorsement Policies**: Multi-signature transaction validation +- **Audit Trails**: Immutable transaction logs +- **Data Encryption**: At-rest and in-transit encryption + +--- + +## 📊 Monitoring & Observability + +### Metrics Collection +- **Peer Metrics**: Transaction throughput, ledger size, endorsement latency +- **Orderer Metrics**: Block creation rate, consensus performance +- **Network Metrics**: Channel health, certificate status +- **Application Metrics**: API response times, chaincode execution + +### Alerting +- **Network Health**: Peer/orderer downtime alerts +- **Performance**: Transaction latency thresholds +- **Security**: Certificate expiration warnings +- **Capacity**: Storage and resource utilization + +### Dashboards +- **Executive Dashboard**: High-level KPIs and network status +- **Operations Dashboard**: Detailed technical metrics +- **Business Dashboard**: Tree planting progress and carbon metrics + +--- + +## 🧪 Testing & Quality Assurance + +### Test Coverage +- **Unit Tests**: Chaincode function testing +- **Integration Tests**: End-to-end network testing +- **Performance Tests**: Load testing and benchmarking +- **Security Tests**: Penetration testing and vulnerability scans + +### Continuous Integration +- **Automated Testing**: GitHub Actions CI/CD pipeline +- **Code Quality**: SonarQube analysis +- **Security Scanning**: Container and dependency scanning +- **Deployment Testing**: Automated deployment validation + +--- + +## 🚀 Deployment Options + +### Cloud Providers +- **AWS**: EKS with managed services +- **Google Cloud**: GKE with Cloud SQL +- **Azure**: AKS with Azure Storage +- **DigitalOcean**: DOKS with block storage + +### On-Premises +- **Bare Metal**: Direct Kubernetes installation +- **VMware**: vSphere with Tanzu +- **OpenShift**: Red Hat OpenShift platform + +### Development +- **Kind**: Local Kubernetes in Docker +- **Minikube**: Single-node local cluster +- **Docker Compose**: Simplified local development + +--- + +## 🤝 Contributing + +We welcome contributions from the community! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details. + +### Development Workflow +1. Fork the repository +2. Create a feature branch +3. Make your changes with tests +4. Submit a pull request + +### Code Standards +- **Go**: Follow Go best practices for chaincode +- **JavaScript**: ESLint configuration for API code +- **Documentation**: Update docs for any API changes +- **Testing**: Maintain 80%+ test coverage + +--- + +## 📞 Support & Community + +### Getting Help +- **Documentation**: Comprehensive guides in `/docs` +- **GitHub Issues**: Bug reports and feature requests +- **Discord**: Real-time community support +- **Email**: technical-support@greenstand.org + +### Community Resources +- **Greenstand Website**: [https://greenstand.org](https://greenstand.org) +- **Slack Channel**: [#treetracker-blockchain](https://greenstand.slack.com) +- **Developer Forum**: [https://forum.greenstand.org](https://forum.greenstand.org) + +--- + +## 📈 Roadmap + +### Current Release (v1.0) +- ✅ Multi-organization network +- ✅ Tree tracking chaincode +- ✅ Kubernetes deployment +- ✅ Monitoring and alerting + +### Next Release (v1.1) +- 🔄 Mobile wallet integration +- 🔄 Carbon credit tokenization +- 🔄 Enhanced analytics dashboard +- 🔄 Multi-chain interoperability + +### Future Releases +- 📋 IoT sensor integration +- 📋 Satellite imagery verification +- 📋 Machine learning analytics +- 📋 Cross-border payment rails + +--- + +## 📄 License + +This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details. + +--- + +## 🙏 Acknowledgments + +- **Hyperledger Foundation**: For the excellent Fabric framework +- **Greenstand Team**: For environmental vision and leadership +- **Open Source Community**: For tools, libraries, and inspiration +- **Tree Planting Partners**: CBOs worldwide making real impact + +--- + +**🌱 Together, we're growing a more transparent and sustainable future through blockchain technology! 🌱** + +
+ Architected with ❤️ by Imos Aikoroje For Greenstand Community
+ greenstand.org | + GitHub +
From 11a424b03eadd8a8d4dab19841fd04715c132e45 Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Tue, 16 Sep 2025 21:27:19 -0400 Subject: [PATCH 02/11] Update README.md --- hyperledger-fabric-network/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperledger-fabric-network/README.md b/hyperledger-fabric-network/README.md index a16daca..550d209 100644 --- a/hyperledger-fabric-network/README.md +++ b/hyperledger-fabric-network/README.md @@ -1,4 +1,4 @@ -Treetracker HLF Network +Treetracker HLF Network

🌳 Blockchain-based Tree Tracking Network 🌳

From 702c61d7e4d0e1563534b8c5de17284c5e90184c Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Tue, 16 Sep 2025 21:29:42 -0400 Subject: [PATCH 03/11] Update HLF Enterprise Blockchain Integration with Greenstand Treetracker.md --- ...Blockchain Integration with Greenstand Treetracker.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md index 273de8a..48acc1b 100644 --- a/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md +++ b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md @@ -33,7 +33,8 @@ Fabric’s ordering service packages endorsed transactions into blocks, determin --- ## Treetracker Integration Architecture -HLF TT Arch2 +HLF TT Arch2 + ### Client Applications @@ -65,7 +66,7 @@ Fabric’s ordering service packages endorsed transactions into blocks, determin --- ## Hyperledger Fabric Network Setup -HLF TT Arch3 +HLF TT Arch3 ### Ordering Service @@ -76,7 +77,7 @@ A **Raft** ordering service is provisioned with five orderer nodes, distributed Each organisation runs endorsing and committing peers. Endorsing peers execute chaincode and produce proposal responses; committing peers validate transactions and update their ledgers. Peers use a **gossip** protocol to discover other peers, disseminate blocks and private data, and keep ledgers consistent ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Gossip also elects leaders within organisations to efficiently pull blocks from the ordering service ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). ### Channels -HLF TT Arch4 2 +HLF TT Arch4 2 Treetracker uses several channels: @@ -91,7 +92,7 @@ Treetracker uses several channels: For each organisation, a root CA issues certificates for one or more intermediate CAs. Intermediate CAs issue X.509 certificates to users, peers and orderers. The Fabric CA server is initialised with a CSR (Certificate Signing Request) specifying fields like Common Name (CN), organisation (O), organisational unit (OU), location (L), state (ST) and country (C) ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The server can generate a self-signed CA certificate or obtain a certificate signed by a parent CA ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). TLS is enabled to secure enrolment and registration ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The Membership Service Provider (MSP) uses these certificates to define valid identities and assign roles ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). ### Smart Contracts (Chaincode) -HLF TT Arch5 +HLF TT Arch5 Chaincode encapsulates the business logic of Treetracker. Four main contracts are envisaged: From 20068820b68f066f69d5c00a440a58ccefdc7e3e Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 10:49:56 -0400 Subject: [PATCH 04/11] Certificate Authority infrastructure for the Hyperledger Fabric network --- .../ca/DOCUMENTATION_INDEX.md | 183 +++++++ hyperledger-fabric-network/ca/README.md | 275 +++++++++++ .../ca/helm-charts/cbo-ca/Chart.yaml | 6 + .../cbo-ca/templates/deployment.yaml | 46 ++ .../ca/helm-charts/cbo-ca/templates/pvc.yaml | 16 + .../helm-charts/cbo-ca/templates/service.yaml | 16 + .../ca/helm-charts/cbo-ca/values.yaml | 41 ++ .../fabric-ca-client-config.yaml | 176 +++++++ .../fabric-ca-client/fabric-ca-client.yaml | 42 ++ .../fabric-orderer-helm-chart/Chart.yaml | 7 + .../configtx/configtx.yaml | 99 ++++ .../create-orderer-secrets.sh | 21 + .../crypto-config.yaml | 11 + .../example.com/ca/ca.example.com-cert.pem | 15 + .../files/crypto/example.com/ca/priv_sk | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../files/crypto/example.com/msp/config.yaml | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer0.example.com/msp/config.yaml | 14 + .../orderer0.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer0.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer0.example.com/tls/ca.crt | 15 + .../orderer0.example.com/tls/server.crt | 15 + .../orderer0.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer1.example.com/msp/config.yaml | 14 + .../orderer1.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer1.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer1.example.com/tls/ca.crt | 15 + .../orderer1.example.com/tls/server.crt | 15 + .../orderer1.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer2.example.com/msp/config.yaml | 14 + .../orderer2.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer2.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer2.example.com/tls/ca.crt | 15 + .../orderer2.example.com/tls/server.crt | 15 + .../orderer2.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer3.example.com/msp/config.yaml | 14 + .../orderer3.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer3.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer3.example.com/tls/ca.crt | 15 + .../orderer3.example.com/tls/server.crt | 15 + .../orderer3.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer4.example.com/msp/config.yaml | 14 + .../orderer4.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer4.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer4.example.com/tls/ca.crt | 15 + .../orderer4.example.com/tls/server.crt | 15 + .../orderer4.example.com/tls/server.key | 5 + .../files/crypto/example.com/tlsca/priv_sk | 5 + .../tlsca/tlsca.example.com-cert.pem | 15 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../users/Admin@example.com/msp/config.yaml | 14 + .../Admin@example.com/msp/keystore/priv_sk | 5 + .../msp/signcerts/Admin@example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../users/Admin@example.com/tls/ca.crt | 15 + .../users/Admin@example.com/tls/client.crt | 14 + .../users/Admin@example.com/tls/client.key | 5 + .../example.com/ca/ca.example.com-cert.pem | 15 + .../example.com/ca/priv_sk | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../example.com/msp/config.yaml | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer0.example.com/msp/config.yaml | 14 + .../orderer0.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer0.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer0.example.com/tls/ca.crt | 15 + .../orderer0.example.com/tls/server.crt | 15 + .../orderer0.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer1.example.com/msp/config.yaml | 14 + .../orderer1.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer1.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer1.example.com/tls/ca.crt | 15 + .../orderer1.example.com/tls/server.crt | 15 + .../orderer1.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer2.example.com/msp/config.yaml | 14 + .../orderer2.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer2.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer2.example.com/tls/ca.crt | 15 + .../orderer2.example.com/tls/server.crt | 15 + .../orderer2.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer3.example.com/msp/config.yaml | 14 + .../orderer3.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer3.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer3.example.com/tls/ca.crt | 15 + .../orderer3.example.com/tls/server.crt | 15 + .../orderer3.example.com/tls/server.key | 5 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../orderer4.example.com/msp/config.yaml | 14 + .../orderer4.example.com/msp/keystore/priv_sk | 5 + .../signcerts/orderer4.example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../orderers/orderer4.example.com/tls/ca.crt | 15 + .../orderer4.example.com/tls/server.crt | 15 + .../orderer4.example.com/tls/server.key | 5 + .../example.com/tlsca/priv_sk | 5 + .../tlsca/tlsca.example.com-cert.pem | 15 + .../msp/cacerts/ca.example.com-cert.pem | 15 + .../users/Admin@example.com/msp/config.yaml | 14 + .../Admin@example.com/msp/keystore/priv_sk | 5 + .../msp/signcerts/Admin@example.com-cert.pem | 14 + .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 + .../users/Admin@example.com/tls/ca.crt | 15 + .../users/Admin@example.com/tls/client.crt | 14 + .../users/Admin@example.com/tls/client.key | 5 + .../genesis.block.base64.txt | 1 + .../orderer.genesis.block | Bin 0 -> 15310 bytes .../rendered-orderers.yaml | 447 ++++++++++++++++++ .../templates/pvc.yaml | 15 + .../templates/secret-msp.yaml | 17 + .../templates/secret-tls.yaml | 16 + .../templates/service-orderer.yaml | 16 + .../templates/statefulset-orderer.yaml | 78 +++ .../fabric-orderer-helm-chart/values.yaml | 38 ++ .../ca/helm-charts/greenstand-ca/Chart.yaml | 6 + .../greenstand-ca/greenstand-values.yaml.bkp | 40 ++ .../greenstand-ca/templates/deployment.yaml | 46 ++ .../templates/deployment.yaml.bkp | 63 +++ .../deployment.yaml.bkp-startingPoint | 46 ++ .../templates/deployment.yaml.bkp1 | 64 +++ .../templates/deployment.yaml.bkpios | 57 +++ .../greenstand-ca/templates/pvc.yaml | 16 + .../templates/pvc.yaml.bkp-startingPoint | 16 + .../greenstand-ca/templates/service.yaml | 16 + .../ca/helm-charts/greenstand-ca/values.yaml | 41 ++ .../values.yaml.bkp-startingPoint | 41 ++ .../ca/helm-charts/greenstand-peer/Chart.yaml | 6 + .../greenstand-peer/templates/_helpers.tpl | 3 + .../greenstand-peer/templates/deployment.yaml | 145 ++++++ .../greenstand-peer/templates/pvc.yaml | 12 + .../greenstand-peer/templates/service.yaml | 21 + .../helm-charts/greenstand-peer/values.yaml | 53 +++ .../ca/helm-charts/investor-ca/Chart.yaml | 6 + .../investor-ca/templates/deployment.yaml | 46 ++ .../investor-ca/templates/pvc.yaml | 16 + .../investor-ca/templates/service.yaml | 16 + .../ca/helm-charts/investor-ca/values.yaml | 43 ++ .../ca/helm-charts/root-ca/Chart.yaml | 6 + .../root-ca/templates/deployment.yaml | 42 ++ .../ca/helm-charts/root-ca/templates/pvc.yaml | 14 + .../root-ca/templates/service.yaml | 15 + .../ca/helm-charts/root-ca/values.yaml | 28 ++ .../ca/helm-charts/verifier-ca/Chart.yaml | 6 + .../verifier-ca/templates/deployment.yaml | 46 ++ .../verifier-ca/templates/pvc.yaml | 16 + .../verifier-ca/templates/service.yaml | 16 + .../ca/helm-charts/verifier-ca/values.yaml | 41 ++ .../ca/scripts/backup-ca.sh | 162 +++++++ .../ca/scripts/create-ca-secrets.sh | 50 ++ .../ca/scripts/enroll-admin.sh | 39 ++ .../ca/scripts/enroll-ica.sh | 43 ++ .../ca/scripts/notes-guide.sh | 25 + .../ca/scripts/register-identities.sh | 43 ++ .../ca/scripts/restore-ca.sh | 168 +++++++ 172 files changed, 4488 insertions(+) create mode 100644 hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md create mode 100644 hyperledger-fabric-network/ca/README.md create mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client-config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/orderer.genesis.block create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/Chart.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp-startingPoint create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp1 create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkpios create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml.bkp-startingPoint create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/service.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/investor-ca/Chart.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/deployment.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/pvc.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/service.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/investor-ca/values.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/root-ca/Chart.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/root-ca/templates/deployment.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/root-ca/templates/pvc.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/root-ca/templates/service.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/root-ca/values.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/verifier-ca/Chart.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/deployment.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/pvc.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/service.yaml create mode 100644 hyperledger-fabric-network/ca/helm-charts/verifier-ca/values.yaml create mode 100644 hyperledger-fabric-network/ca/scripts/backup-ca.sh create mode 100644 hyperledger-fabric-network/ca/scripts/create-ca-secrets.sh create mode 100644 hyperledger-fabric-network/ca/scripts/enroll-admin.sh create mode 100644 hyperledger-fabric-network/ca/scripts/enroll-ica.sh create mode 100644 hyperledger-fabric-network/ca/scripts/notes-guide.sh create mode 100644 hyperledger-fabric-network/ca/scripts/register-identities.sh create mode 100644 hyperledger-fabric-network/ca/scripts/restore-ca.sh diff --git a/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md b/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md new file mode 100644 index 0000000..cbbe0c5 --- /dev/null +++ b/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md @@ -0,0 +1,183 @@ +# CA Infrastructure Documentation Index + +## Document Overview + +This directory contains comprehensive documentation for the Hyperledger Fabric Certificate Authority infrastructure. The documentation is organized into several key areas covering different aspects of CA management and operations. + +## Documentation Structure + +### 📋 Core Documentation + +| Document | Purpose | Audience | Last Updated | +|----------|---------|----------|--------------| +| [`README.md`](README.md) | Overview and quick start guide | All users | 2024-09-02 | +| [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) | Technical specifications and architecture | Engineers, Architects | 2024-09-02 | +| [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) | Daily operations and maintenance | Operations Teams | 2024-09-02 | +| [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) | Security protocols and incident response | Security Teams | 2024-09-02 | + +### 📁 Directory Documentation + +| Component | Location | Documentation | +|-----------|----------|---------------| +| **Helm Charts** | `helm-charts/` | Individual chart README files | +| **Scripts** | `scripts/` | Script headers and inline documentation | +| **Fabric CA Configs** | `fabric-ca/` | Configuration file comments | +| **Certificate Monitor** | `../monitoring/` | Integration documentation | + +## Quick Reference Guide + +### 🚀 Getting Started + +**New to CA infrastructure?** +1. Start with [`README.md`](README.md) for overview and quick start +2. Review [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) for architecture understanding +3. Follow deployment procedures in scripts documentation + +**Operations team?** +1. Focus on [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) +2. Review daily/weekly/monthly procedures +3. Familiarize with troubleshooting procedures + +**Security team?** +1. Study [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) +2. Review incident response procedures +3. Understand compliance requirements + +### 🔍 Common Tasks + +| Task | Primary Document | Supporting Documents | +|------|------------------|---------------------| +| **Deploy new CA** | README.md | TECHNICAL_SPECS.md | +| **Certificate renewal** | OPERATIONAL_PROCEDURES.md | SECURITY_PROCEDURES.md | +| **Backup/restore** | OPERATIONAL_PROCEDURES.md | TECHNICAL_SPECS.md | +| **Incident response** | SECURITY_PROCEDURES.md | OPERATIONAL_PROCEDURES.md | +| **Performance tuning** | TECHNICAL_SPECS.md | OPERATIONAL_PROCEDURES.md | +| **Security hardening** | SECURITY_PROCEDURES.md | TECHNICAL_SPECS.md | + +## Document Contents Summary + +### [`README.md`](README.md) +- **Overview**: CA infrastructure introduction and architecture +- **Quick Start**: Step-by-step deployment guide +- **Directory Structure**: File and folder organization +- **Basic Operations**: Common commands and procedures +- **Troubleshooting**: Common issues and solutions +- **Integration**: How CA integrates with other systems + +### [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) +- **System Architecture**: Technical design and component relationships +- **Container Specifications**: Resource requirements and configurations +- **Network Configuration**: Security, ports, and communication +- **API Documentation**: REST APIs and CLI commands +- **Performance Metrics**: Scalability limits and capacity planning +- **Configuration Management**: Environment variables and ConfigMaps +- **Version Management**: Upgrade procedures and compatibility + +### [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) +- **Standard Operating Procedures**: Daily, weekly, monthly tasks +- **Incident Response**: Emergency procedures and escalation +- **Maintenance Procedures**: Planned maintenance and updates +- **Monitoring Procedures**: Health checks and performance monitoring +- **Backup/Restore**: Complete data protection procedures +- **Change Management**: Configuration and version changes + +### [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) +- **Security Framework**: Objectives and access control +- **Cryptographic Security**: Key management and certificate validation +- **Network Security**: Segmentation and TLS configuration +- **Incident Response**: Security incident classification and response +- **Compliance**: Audit procedures and regulatory requirements +- **Security Hardening**: Container and network security measures + +## Documentation Maintenance + +### 📝 Update Schedule + +| Document Type | Update Frequency | Trigger Events | +|---------------|------------------|----------------| +| **README.md** | Quarterly | Major feature additions, structural changes | +| **TECHNICAL_SPECS.md** | Bi-annually | Version upgrades, architecture changes | +| **OPERATIONAL_PROCEDURES.md** | Monthly | Process improvements, new procedures | +| **SECURITY_PROCEDURES.md** | Quarterly | Security policy changes, incident learnings | + +### ✍️ Contributing to Documentation + +#### Documentation Standards +- **Format**: Markdown with consistent styling +- **Code Blocks**: Include language identifiers and executable examples +- **Version Control**: All changes tracked in git +- **Review Process**: Technical review required for procedure changes + +#### Update Process +1. **Identify Changes**: Document what needs updating +2. **Draft Updates**: Create updated content following standards +3. **Technical Review**: Review for accuracy and completeness +4. **Security Review**: Security procedures require security team review +5. **Approval**: Platform lead approval for operational changes +6. **Deployment**: Update files and notify relevant teams + +### 🔄 Document Relationships + +```mermaid +graph LR + A[README.md] --> B[TECHNICAL_SPECS.md] + A --> C[OPERATIONAL_PROCEDURES.md] + B --> C + B --> D[SECURITY_PROCEDURES.md] + C --> D + + E[Scripts] --> C + F[Helm Charts] --> A + F --> B + G[Monitoring] --> C + G --> D +``` + +## Additional Resources + +### 🔗 External References + +| Resource | Link | Purpose | +|----------|------|---------| +| **Hyperledger Fabric CA Documentation** | [Official Docs](https://hyperledger-fabric-ca.readthedocs.io/) | Official reference | +| **Kubernetes Documentation** | [k8s.io](https://kubernetes.io/docs/) | Platform reference | +| **Helm Documentation** | [helm.sh](https://helm.sh/docs/) | Deployment tools | +| **Security Best Practices** | [NIST Framework](https://www.nist.gov/cyberframework) | Security guidelines | + +### 📞 Support and Contact + +| Type | Contact | Purpose | +|------|---------|---------| +| **Technical Support** | Platform Team | Infrastructure issues | +| **Security Issues** | Security Team | Security incidents, vulnerabilities | +| **Documentation Updates** | Documentation Team | Content improvements | +| **Emergency Escalation** | On-call Manager | Critical incidents | + +## Version History + +| Version | Date | Changes | Author | +|---------|------|---------|--------| +| 1.0 | 2024-09-02 | Initial documentation creation | System | +| | | Complete CA infrastructure documentation | | +| | | Security procedures and compliance | | +| | | Operational procedures and monitoring | | + +## Compliance and Governance + +### 📋 Document Classification +- **README.md**: Internal Use +- **TECHNICAL_SPECS.md**: Internal Use +- **OPERATIONAL_PROCEDURES.md**: Internal Use +- **SECURITY_PROCEDURES.md**: Confidential + +### 🔒 Access Control +- **Read Access**: All development and operations team members +- **Write Access**: Platform leads, documentation maintainers +- **Security Docs**: Security team approval required for changes + +### 📊 Usage Analytics +- Documentation access patterns monitored +- Most frequently accessed sections identified +- User feedback collected for improvements + +This documentation index provides a comprehensive overview of all CA infrastructure documentation, helping users quickly find the information they need for their specific roles and tasks. diff --git a/hyperledger-fabric-network/ca/README.md b/hyperledger-fabric-network/ca/README.md new file mode 100644 index 0000000..9f2b387 --- /dev/null +++ b/hyperledger-fabric-network/ca/README.md @@ -0,0 +1,275 @@ +# Hyperledger Fabric Certificate Authority (CA) Documentation + +This directory contains the complete Certificate Authority infrastructure for the Hyperledger Fabric network, including Root CA, Intermediate CAs, deployment scripts, and management tools. + +## Overview + +The CA infrastructure provides: +- **Root CA**: Central certificate authority for the network +- **Intermediate CAs**: Organization-specific certificate authorities (CBO, Investor, Verifier, Greenstand) +- **Automated enrollment**: Scripts for identity registration and certificate enrollment +- **Kubernetes deployment**: Helm charts for scalable CA deployment +- **Backup/restore**: Complete CA data backup and restoration capabilities + +## Directory Structure + +``` +ca/ +├── helm-charts/ # Helm deployment charts +│ ├── root-ca/ # Root CA deployment +│ ├── cbo-ca/ # CBO organization CA +│ ├── investor-ca/ # Investor organization CA +│ ├── verifier-ca/ # Verifier organization CA +│ ├── greenstand-ca/ # Greenstand organization CA +│ └── fabric-ca-client/ # CA client pod deployment +├── scripts/ # Management and deployment scripts +│ ├── create-ca-secrets.sh # Kubernetes secret creation +│ ├── enroll-admin.sh # Admin enrollment +│ ├── register-identities.sh # Identity registration +│ ├── enroll-ica.sh # Intermediate CA enrollment +│ ├── backup-ca.sh # CA backup script +│ └── restore-ca.sh # CA restoration script +├── fabric-ca/ # CA server configurations +│ ├── root-ca/ +│ ├── cbo-ca/ +│ ├── investor-ca/ +│ ├── verifier-ca/ +│ └── greenstand-ca/ +└── README.md # This documentation +``` + +## Certificate Authority Hierarchy + +``` +Root CA (root-ca) +├── CBO-CA (cbo-ca) # CBO organization certificates +├── Investor-CA (investor-ca) # Investor organization certificates +├── Verifier-CA (verifier-ca) # Verifier organization certificates +└── Greenstand-CA (greenstand-ca) # Greenstand organization certificates +``` + +## Quick Start + +### 1. Deploy Root CA +```bash +cd helm-charts/root-ca +helm install root-ca . -n hlf-ca --create-namespace +``` + +### 2. Deploy CA Client +```bash +cd helm-charts/fabric-ca-client +kubectl apply -f fabric-ca-client.yaml +``` + +### 3. Enroll Admin +```bash +cd scripts +./enroll-admin.sh +``` + +### 4. Register Intermediate CAs +```bash +./register-identities.sh +``` + +### 5. Deploy Intermediate CAs +```bash +cd ../helm-charts/cbo-ca +helm install cbo-ca . -n hlf-ca + +cd ../investor-ca +helm install investor-ca . -n hlf-ca + +cd ../verifier-ca +helm install verifier-ca . -n hlf-ca +``` + +### 6. Enroll Intermediate CAs +```bash +cd ../../scripts +./enroll-ica.sh +``` + +### 7. Create Kubernetes Secrets +```bash +./create-ca-secrets.sh +``` + +## Configuration + +### Root CA Configuration +- **Image**: hyperledger/fabric-ca:1.5.12 +- **Port**: 7054 +- **Storage**: 2Gi persistent volume +- **TLS**: Enabled with custom certificates +- **Database**: SQLite3 (configurable to PostgreSQL/MySQL) + +### Intermediate CA Configuration +- **Parent**: Root CA +- **Organizations**: CBO, Investor, Verifier, Greenstand +- **Auto-enrollment**: Configured for MSP and TLS certificates +- **Storage**: 2Gi per CA instance + +## Management Scripts + +### Identity Management +```bash +# Enroll admin identity +./enroll-admin.sh + +# Register new intermediate CA +./register-identities.sh + +# Enroll intermediate CAs +./enroll-ica.sh +``` + +### Secret Management +```bash +# Create all CA secrets +./create-ca-secrets.sh + +# Backup CA data +./backup-ca.sh + +# Restore CA data +./restore-ca.sh +``` + +## Helm Charts + +### Root CA Chart +- **Location**: `helm-charts/root-ca/` +- **Purpose**: Deploys Root Certificate Authority +- **Features**: TLS-enabled, persistent storage, custom CSR configuration + +### Intermediate CA Charts +- **Locations**: `helm-charts/{org}-ca/` +- **Purpose**: Deploy organization-specific CAs +- **Features**: Parent CA integration, automatic enrollment, TLS configuration + +### CA Client Chart +- **Location**: `helm-charts/fabric-ca-client/` +- **Purpose**: Provides fabric-ca-client for enrollment operations +- **Features**: Persistent client data, configuration management + +## Operations + +### Daily Operations +```bash +# Check CA pod status +kubectl get pods -n hlf-ca + +# View CA logs +kubectl logs -n hlf-ca -l app=root-ca + +# Check certificate expiry +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + fabric-ca-client certificate list --tls.certfiles /data/hyperledger/fabric-ca-client/root-ca/tls-cert.pem +``` + +### Backup Operations +```bash +# Create backup +./scripts/backup-ca.sh + +# Verify backup contents +tar -tzf fabric-ca-backup-*.tgz | head -20 + +# Store backup securely (off-cluster) +``` + +### Certificate Renewal +```bash +# Check certificate expiry +for ca in root-ca cbo-ca investor-ca verifier-ca; do + echo "Checking $ca certificate expiry..." + kubectl exec -n hlf-ca $ca-0 -- \ + openssl x509 -in /etc/hyperledger/fabric-ca-server/ca-cert.pem -noout -enddate +done + +# Renew certificates (if needed) +# Follow certificate renewal runbook +``` + +## Security Considerations + +### Access Control +- **RBAC**: Kubernetes RBAC limits CA access +- **Network policies**: Restrict CA network access +- **Secrets**: TLS certificates stored as Kubernetes secrets +- **Encryption**: All CA communications use TLS + +### Certificate Management +- **Root CA**: Highest security - air-gapped if possible +- **Intermediate CAs**: Organization-isolated +- **Key protection**: Private keys stored securely in persistent volumes +- **Certificate rotation**: Regular certificate renewal procedures + +## Troubleshooting + +### Common Issues + +#### CA Pod Not Starting +```bash +# Check pod status and events +kubectl describe pod -n hlf-ca root-ca-0 + +# Check persistent volume claims +kubectl get pvc -n hlf-ca + +# Verify TLS certificates +kubectl get secret -n hlf-ca | grep tls +``` + +#### Enrollment Failures +```bash +# Check CA client connectivity +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + fabric-ca-client getcainfo -u https://root-ca.hlf-ca.svc.cluster.local:7054 + +# Verify TLS certificate +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + ls -la /data/hyperledger/fabric-ca-client/root-ca/ +``` + +#### Certificate Issues +```bash +# Validate certificate chain +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + openssl verify -CAfile /data/hyperledger/fabric-ca-client/root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054.pem \ + /data/hyperledger/fabric-ca-client/cbo-ca/msp/signcerts/cert.pem +``` + +## Integration + +### With Peer Networks +- CAs provide certificates for peer MSP and TLS +- Certificate secrets automatically created for peer deployments +- Integration with certificate monitoring system + +### With Certificate Monitoring +- CA certificates monitored for expiry +- Automated alerts for CA certificate issues +- Health metrics exported to Prometheus + +### With CI/CD Pipeline +- CA validation in deployment pipeline +- Automated certificate checks +- Integration with Jenkins/GitHub Actions + +## Maintenance + +### Regular Tasks +- **Weekly**: Check CA pod health and logs +- **Monthly**: Review certificate expiry dates +- **Quarterly**: Perform CA backup +- **Annually**: Plan certificate renewal cycle + +### Emergency Procedures +- **CA failure**: Restore from backup using restore-ca.sh +- **Certificate expiry**: Emergency certificate renewal +- **Security breach**: Revoke compromised certificates + +This CA infrastructure provides a robust foundation for certificate management in your Hyperledger Fabric network with comprehensive automation, monitoring, and operational procedures. diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml new file mode 100644 index 0000000..2097500 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: cbo-ca +description: Hyperledger Fabric intermediate CA for CBO +type: application +version: 0.1.0 +appVersion: 1.5.12 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml new file mode 100644 index 0000000..90ee72f --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml @@ -0,0 +1,46 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + - name: FABRIC_CA_SERVER_PARENT_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.intermediateCA.name }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml new file mode 100644 index 0000000..0e654d6 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-{{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + accessModes: + - {{ .Values.intermediateCA.storage.accessMode }} + resources: + requests: + storage: {{ .Values.intermediateCA.storage.size }} + storageClassName: {{ .Values.intermediateCA.storage.storageClass }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml new file mode 100644 index 0000000..da5f903 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + selector: + app: {{ .Values.intermediateCA.name }} + ports: + - name: ca-port + port: {{ .Values.intermediateCA.port }} + targetPort: ca-port +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml new file mode 100644 index 0000000..25b0f45 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml @@ -0,0 +1,41 @@ +intermediateCA: + enabled: true + name: cbo-ca + namespace: hlf-ca + + image: + repository: hyperledger/fabric-ca + tag: 1.5.12 + pullPolicy: IfNotPresent + + port: 7054 + + storage: + accessMode: ReadWriteOnce + size: 2Gi + storageClass: do-block-storage + pvcName: pvc-cbo-ca # Added from second block + + parentID: cbo-ca + parentSecret: cbocapw + parentHost: root-ca.hlf-ca.svc.cluster.local + + csr: + cn: cbo-ca # Added from second block + hosts: + - cbo-ca + - cbo-ca.hlf-ca.svc.cluster.local + - localhost + + tls: + enabled: true + secretName: cbo-ca-tls-cert + + msp: + secretName: cbo-ca-msp + + bootstrapUser: cbo-ca + bootstrapPassword: cbocapw + + service: + port: 7054 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client-config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client-config.yaml new file mode 100644 index 0000000..bf362c4 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client-config.yaml @@ -0,0 +1,176 @@ + +############################################################################# +# This is a configuration file for the fabric-ca-client command. +# +# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES +# ------------------------------------------------ +# Each configuration element can be overridden via command line +# arguments or environment variables. The precedence for determining +# the value of each element is as follows: +# 1) command line argument +# Examples: +# a) --url https://localhost:7054 +# To set the fabric-ca server url +# b) --tls.client.certfile certfile.pem +# To set the client certificate for TLS +# 2) environment variable +# Examples: +# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 +# To set the fabric-ca server url +# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem +# To set the client certificate for TLS +# 3) configuration file +# 4) default value (if there is one) +# All default values are shown beside each element below. +# +# FILE NAME ELEMENTS +# ------------------ +# The value of all fields whose name ends with "file" or "files" are +# name or names of other files. +# For example, see "tls.certfiles" and "tls.client.certfile". +# The value of each of these fields can be a simple filename, a +# relative path, or an absolute path. If the value is not an +# absolute path, it is interpreted as being relative to the location +# of this configuration file. +# +############################################################################# + +############################################################################# +# Client Configuration +############################################################################# + +# URL of the Fabric-ca-server (default: http://localhost:7054) +url: https://verifier-ca.hlf-ca.svc.cluster.local:7054 + +# Membership Service Provider (MSP) directory +# This is useful when the client is used to enroll a peer or orderer, so +# that the enrollment artifacts are stored in the format expected by MSP. +mspdir: /etc/hyperledger/fabric-ca-client/peer0.verifier/msp + +############################################################################# +# TLS section for secure socket connection +# +# certfiles - PEM-encoded list of trusted root certificate files +# client: +# certfile - PEM-encoded certificate file for when client authentication +# is enabled on server +# keyfile - PEM-encoded key file for when client authentication +# is enabled on server +############################################################################# +tls: + # TLS section for secure socket connection + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# Certificate Signing Request section for generating the CSR for an +# enrollment certificate (ECert) +# +# cn - Used by CAs to determine which domain the certificate is to be generated for +# +# keyrequest - Properties to use when generating a private key. +# algo - key generation algorithm to use +# size - size of key to generate +# reusekey - reuse existing key during reenrollment +# +# serialnumber - The serialnumber field, if specified, becomes part of the issued +# certificate's DN (Distinguished Name). For example, one use case for this is +# a company with its own CA (Certificate Authority) which issues certificates +# to its employees and wants to include the employee's serial number in the DN +# of its issued certificates. +# WARNING: The serialnumber field should not be confused with the certificate's +# serial number which is set by the CA but is not a component of the +# certificate's DN. +# +# names - A list of name objects. Each name object should contain at least one +# "C", "L", "O", or "ST" value (or any combination of these) where these +# are abbreviations for the following: +# "C": country +# "L": locality or municipality (such as city or town name) +# "O": organization +# "OU": organizational unit, such as the department responsible for owning the key; +# it can also be used for a "Doing Business As" (DBS) name +# "ST": the state or province +# +# Note that the "OU" or organizational units of an ECert are always set according +# to the values of the identities type and affiliation. OUs are calculated for an enroll +# as OU=, OU=, ..., OU=. For example, an identity +# of type "client" with an affiliation of "org1.dept2.team3" would have the following +# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 +# +# hosts - A list of host names for which the certificate should be valid +# +############################################################################# +csr: + cn: peer0.verifier + keyrequest: + algo: ecdsa + size: 256 + reusekey: false + serialnumber: + names: + - C: US + ST: North Carolina + L: + O: Hyperledger + OU: Fabric + hosts: + - fabric-ca-client + +############################################################################# +# Registration section used to register a new identity with fabric-ca server +# +# name - Unique name of the identity +# type - Type of identity being registered (e.g. 'peer, app, user') +# affiliation - The identity's affiliation +# maxenrollments - The maximum number of times the secret can be reused to enroll. +# Specially, -1 means unlimited; 0 means to use CA's max enrollment +# value. +# attributes - List of name/value pairs of attribute for identity +############################################################################# +id: + name: + type: + affiliation: + maxenrollments: 0 + attributes: + # - name: + # value: + +############################################################################# +# Enrollment section used to enroll an identity with fabric-ca server +# +# profile - Name of the signing profile to use in issuing the certificate +# label - Label to use in HSM operations +############################################################################# +enrollment: + profile: + label: + +############################################################################# +# Name of the CA to connect to within the fabric-ca server +############################################################################# +caname: + +############################################################################# +# BCCSP (BlockChain Crypto Service Provider) section allows to select which +# crypto implementation library to use +############################################################################# +bccsp: + default: SW + sw: + hash: SHA2 + security: 256 + filekeystore: + # The directory used for the software file-based keystore + keystore: msp/keystore + +############################################################################# +# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. +# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. +# If unspecified, it defaults to 'amcl.Fp256bn'. +############################################################################# +idemixCurveID: amcl.Fp256bn + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client.yaml new file mode 100644 index 0000000..bac3f40 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-ca-client/fabric-ca-client.yaml @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: fabric-ca-client + namespace: hlf-ca +spec: + serviceName: fabric-ca-client + replicas: 1 + selector: + matchLabels: + app: fabric-ca-client + template: + metadata: + labels: + app: fabric-ca-client + spec: + containers: + - name: fabric-ca-client + image: hyperledger/fabric-ca:1.5.7 + command: ["/bin/bash", "-c", "--"] + args: + - | + while true; do sleep 3600; done + volumeMounts: + - name: ca-client-config + mountPath: /etc/hyperledger/fabric-ca-client + - name: client-data + mountPath: /data + volumes: + - name: ca-client-config + configMap: + name: ca-client-config + volumeClaimTemplates: + - metadata: + name: client-data + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 1Gi + storageClassName: standard + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml new file mode 100644 index 0000000..ff6c044 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml @@ -0,0 +1,7 @@ +apiVersion: v2 +name: fabric-orderer +description: Hyperledger Fabric Raft-based Orderer Helm Chart +type: application +version: 0.1.0 +appVersion: "2.5" + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml new file mode 100644 index 0000000..1cb3ca3 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml @@ -0,0 +1,99 @@ +Organizations: + - &OrdererOrg + Name: OrdererMSP + ID: OrdererMSP + MSPDir: ../crypto-config/ordererOrganizations/example.com/msp + #MSPDir: crypto-config/ordererOrganizations/example.com/msp + Policies: + Readers: + Type: Signature + Rule: "OR('OrdererMSP.member')" + Writers: + Type: Signature + Rule: "OR('OrdererMSP.member')" + Admins: + Type: Signature + Rule: "OR('OrdererMSP.admin')" + +Orderer: &Orderer + OrdererType: etcdraft + Addresses: + - orderer0:7050 + - orderer1:7050 + - orderer2:7050 + - orderer3:7050 + - orderer4:7050 + BatchTimeout: 2s + BatchSize: + MaxMessageCount: 10 + AbsoluteMaxBytes: 99 MB + PreferredMaxBytes: 512 KB + EtcdRaft: + Consenters: + - Host: orderer0 + Port: 7050 + ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt + ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt + #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt + #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt + - Host: orderer1 + Port: 7050 + ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt + ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt + #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt + #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt + - Host: orderer2 + Port: 7050 + ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt + ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt + #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt + #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt + - Host: orderer3 + Port: 7050 + ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt + ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt + #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt + #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt + - Host: orderer4 + Port: 7050 + ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt + ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt + #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt + #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt + Organizations: + - *OrdererOrg + Policies: + Readers: + Type: ImplicitMeta + Rule: "ANY Readers" + Writers: + Type: ImplicitMeta + Rule: "ANY Writers" + Admins: + Type: ImplicitMeta + Rule: "MAJORITY Admins" + BlockValidation: + Type: ImplicitMeta + Rule: "ANY Writers" + +Channel: &ChannelDefaults + Policies: + Readers: + Type: ImplicitMeta + Rule: "ANY Readers" + Writers: + Type: ImplicitMeta + Rule: "ANY Writers" + Admins: + Type: ImplicitMeta + Rule: "MAJORITY Admins" + +Profiles: + SampleMultiNodeEtcdRaft: + <<: *ChannelDefaults + Orderer: + <<: *Orderer + Consortiums: + SampleConsortium: + Organizations: [] + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh new file mode 100644 index 0000000..581fb4d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +ORDERERS=(orderer0 orderer1 orderer2 orderer3 orderer4) +ORG_PATH=./crypto-config/ordererOrganizations/example.com/orderers + +for ORDERER in "${ORDERERS[@]}"; do + echo "Creating secrets for $ORDERER..." + + kubectl create secret generic ${ORDERER}-tls \ + --from-file=server.crt=${ORG_PATH}/${ORDERER}.example.com/tls/server.crt \ + --from-file=server.key=${ORG_PATH}/${ORDERER}.example.com/tls/server.key \ + --from-file=ca.crt=${ORG_PATH}/${ORDERER}.example.com/tls/ca.crt \ + -n hyperledger-fabric + + kubectl create secret generic ${ORDERER}-msp \ + --from-file=${ORG_PATH}/${ORDERER}.example.com/msp \ + -n hyperledger-fabric + + echo "$ORDERER secrets created." +done + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml new file mode 100644 index 0000000..b513e24 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml @@ -0,0 +1,11 @@ +OrdererOrgs: + - Name: Orderer + Domain: example.com + EnableNodeOUs: true + Specs: + - Hostname: orderer0 + - Hostname: orderer1 + - Hostname: orderer2 + - Hostname: orderer3 + - Hostname: orderer4 + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk new file mode 100644 index 0000000..85f7c0c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgJDYIlAdchIQdCR6/ +ggSlDNTaRGs1RAL9tSLFPXGvfKWhRANCAATjQ+WGqox14vFIJW8gpjlsw7kfHYpO +d6Yrhg03Zluo/g/vBvBIX4HHWw4pE8Bl8QG0sRcGq8zXJYVRZoeITRTS +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..d62578a --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQySnHebEP69wbBGa +0bxt29/qcUQqcXflIsE8gzUU6FKhRANCAAT+vWt1m2R8uyNtd9v3MJmYq+mg9+Oz +ZGyYnIK3WXPFzs3UBUWPDY4wChJXYb/nRfQ23soK5QPTtrMXnsIUmKNk +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem new file mode 100644 index 0000000..cc57815 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICHzCCAcWgAwIBAgIQIvUD4tkpv9y6EtRMYw0cNjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIwLmV4YW1wbGUu +Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/r1rdZtkfLsjbXfb9zCZmKvp +oPfjs2RsmJyCt1lzxc7N1AVFjw2OMAoSV2G/50X0Nt7KCuUD07azF57CFJijZKNN +MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw +goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIh +AIIqRyYqOlIDaemQbiXLlN87OaP+fqmHRpZVdO6EXgvwAiBEi9CN98Z2Fv20QI7h +n33cOR0U1KpHtTb6Wh22We6QPQ== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt new file mode 100644 index 0000000..c3312d2 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWzCCAgKgAwIBAgIQFFOwr2xevt3nHzYp6F1CLTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowWTELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIwLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAEox+Xd/WSheLOT9WcWK8V4/q1haNiU3GYWwjr7NQ3+T/u +U1O5ZWaArqG5ootUzA4RiwiK4HanSGCJjxRS7nygyqOBmDCBlTAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAgkrOhP0AbK3wCyYtVhZDF1didmbM8aBg+OGL69+Yr2/4w +KQYDVR0RBCIwIIIUb3JkZXJlcjAuZXhhbXBsZS5jb22CCG9yZGVyZXIwMAoGCCqG +SM49BAMCA0cAMEQCIG/e6JcmYlpIq5Fyzcyi6+Mq4nD7qWdS4Gc64Gv1xNnvAiAI +dMRcXbawjFMeCCifZ/qr0O5+HA/jjtIxtsjsM8hTKA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key new file mode 100644 index 0000000..7a71204 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQifpIletdOPbsXSn +OuXzJ3MTaav2VqIUoDv43Pxie36hRANCAASjH5d39ZKF4s5P1ZxYrxXj+rWFo2JT +cZhbCOvs1Df5P+5TU7llZoCuobmii1TMDhGLCIrgdqdIYImPFFLufKDK +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..315029b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbbeTIq8+XLbvaHSl +1dvH48k1Oxy8UTd5U7u4iDeelmahRANCAAT6mcv8uY4nyB3kTAptX1bQj5kyEDs1 +IuSTz7GT2KIL0J2Jkl//hxYLtpn4dnG9700VTy1IBwH7qydMZsh8G5yq +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem new file mode 100644 index 0000000..4ed98e4 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICHjCCAcWgAwIBAgIQRw0zPSMv064F/u92fEwL0zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIxLmV4YW1wbGUu +Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+pnL/LmOJ8gd5EwKbV9W0I+Z +MhA7NSLkk8+xk9iiC9CdiZJf/4cWC7aZ+HZxve9NFU8tSAcB+6snTGbIfBucqqNN +MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw +goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDRwAwRAIg +I/S7hNFP0USiqW9QvVDY7vN7AE4POdyOkPunhVYbdDsCIBDG/hmHFxgyigh8mXh4 +euzUCrH+nk8zv5rYW06SiNZe +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt new file mode 100644 index 0000000..66feab7 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWzCCAgKgAwIBAgIQOf2O2SQM8DnWB7EaAT3cvzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowWTELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAEc5RUk0XhlopDfCAXbfYoX/nt8sCQgvwkLmMFAOEpdx7O +oT+9mX6GkvE8prd0O4EU1HioRy4jWtWC8x8GRllKLqOBmDCBlTAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAgkrOhP0AbK3wCyYtVhZDF1didmbM8aBg+OGL69+Yr2/4w +KQYDVR0RBCIwIIIUb3JkZXJlcjEuZXhhbXBsZS5jb22CCG9yZGVyZXIxMAoGCCqG +SM49BAMCA0cAMEQCIHbF2usziP050btAMEhlS+mbotpmQ6TnrzEOldWKUlkZAiAv +A4r4cwC2QJ0GU91Zjo8SkkNlwHEZ3LP9Be9Q5w62MQ== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key new file mode 100644 index 0000000..09b9bdf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgvyhMJHHc2AtIEoZ/ +jNw61FgjTRA5wwGLAzorJjZ6EEuhRANCAARzlFSTReGWikN8IBdt9ihf+e3ywJCC +/CQuYwUA4Sl3Hs6hP72ZfoaS8Tymt3Q7gRTUeKhHLiNa1YLzHwZGWUou +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..8a9d0df --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgnhsc8IxigK6fVt1b +a/PohiTU+gH6ea4F3P3AtEaEqeShRANCAAQY+MaN8Yq7F/+FveK5G5PedCjVZ9zJ +lv8OjLOI2ZvqisEILe84wtLIC5fgh6aZ1eVyH8kzw3zsCfTaClRKQygM +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem new file mode 100644 index 0000000..c15fa17 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICHjCCAcWgAwIBAgIQL4icIvif2hO9PBvPP0ZxTzAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIyLmV4YW1wbGUu +Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGPjGjfGKuxf/hb3iuRuT3nQo +1WfcyZb/DoyziNmb6orBCC3vOMLSyAuX4IemmdXlch/JM8N87An02gpUSkMoDKNN +MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw +goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDRwAwRAIg +UnaP6mZ5whHhEBkD0camfsomT+4ltLsHBrHPaYxwGI8CIFapix0EEWDa1iIOBO3h +P8oveBU1UmKUJEi/kHhPQXsR +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt new file mode 100644 index 0000000..caeb880 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXDCCAgOgAwIBAgIRAN1m/kCbLJJocSLaxFzdZL8wCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMFkxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMR0wGwYDVQQDExRvcmRlcmVyMi5leGFtcGxlLmNvbTBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABEQV1fFbn5DNUef4FixSaIELWfMv2hu7Auz1tlMio46Y +8gbOqOdAIwkkDzzyaA2uRvSUVqQtxYp+nuq6VHo2WZKjgZgwgZUwDgYDVR0PAQH/ +BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8E +AjAAMCsGA1UdIwQkMCKAIJKzoT9AGyt8AsmLVYWQxdXYnZmzPGgYPjhi+vfmK9v+ +MCkGA1UdEQQiMCCCFG9yZGVyZXIyLmV4YW1wbGUuY29tgghvcmRlcmVyMjAKBggq +hkjOPQQDAgNHADBEAiBV0T59I6oJh8COBJXSMiyATtGZA6LFsvA1m0+HZORWhwIg +UAaos3xk0ZTJUrpP3g9riMLN4qp+mKhDnafKGatlXXo= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key new file mode 100644 index 0000000..995dd40 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0RqZKJvjbCfQZouy +iVM8jgRxqBaqR22xB2kCSNBQGsGhRANCAAREFdXxW5+QzVHn+BYsUmiBC1nzL9ob +uwLs9bZTIqOOmPIGzqjnQCMJJA888mgNrkb0lFakLcWKfp7qulR6NlmS +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..90c8e5b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBOHByRcEcNky/zha +zd6AiImQ80AmLnrFExvlFMsaTE6hRANCAASXehX11p0Qp0hDgriqEb2sVVQvZVZt +HTcnccP4sya2cWPL8XUHbWWqRvy6Ei8ZRWyBpoQ8BWyM8dRcK2ZVfRT4 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem new file mode 100644 index 0000000..754d76e --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICHjCCAcWgAwIBAgIQHzInO/Fx/dPtDzKRd2LvDzAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUu +Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEl3oV9dadEKdIQ4K4qhG9rFVU +L2VWbR03J3HD+LMmtnFjy/F1B21lqkb8uhIvGUVsgaaEPAVsjPHUXCtmVX0U+KNN +MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw +goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDRwAwRAIg +EW4XX8CHqT5HRzLXT0f4Xx+gYC7XZ4OLjSDSaV5qkoACIFugwpbXWzrs59T6N27K +joOtzH9+CQuW7lKnTSUPqcB+ +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt new file mode 100644 index 0000000..795081c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXDCCAgKgAwIBAgIQanhxqBDauPu0XOCldlcNKTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowWTELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAE+gkOhU1bkhfO6CEaOF8rfMUq2mG9AC8gFCJ/nEsbukn1 +pnXWv34HtTAVG+WWV+lPGHhlQ6uuaJ3TvvJ6L+W86KOBmDCBlTAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAgkrOhP0AbK3wCyYtVhZDF1didmbM8aBg+OGL69+Yr2/4w +KQYDVR0RBCIwIIIUb3JkZXJlcjMuZXhhbXBsZS5jb22CCG9yZGVyZXIzMAoGCCqG +SM49BAMCA0gAMEUCIQCIeVYDJD0gGeqNYvPbEiqNVkSId40AZSH+o2j6+smk/wIg +L7vuvvXfQ5naJNUGpPvmQj3ievRsJa4kKiyNyXsjx3o= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key new file mode 100644 index 0000000..6ac2f48 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg3XK7Nf1n4SvvE7ve +p8bl/3NbfneI3WgNB8pCXNXlARWhRANCAAT6CQ6FTVuSF87oIRo4Xyt8xSraYb0A +LyAUIn+cSxu6SfWmdda/fge1MBUb5ZZX6U8YeGVDq65ondO+8nov5bzo +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..6d2918d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgp1QJ0uituAQcg8O6 +PmeBOj4jdov8OacT2TKWQD5SASehRANCAAS8Tvz9YbKNUIgofh7tdgXcMajLxt0y +0Jy2w7rQOhu1s/SIzspa+4626Wq24XoOwNR48huAKB+Whn2CHXA4NT7g +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem new file mode 100644 index 0000000..3e9ec2b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICIDCCAcagAwIBAgIRAKITTLtyll1btSYSH4NSMVYwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMGsxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyNC5leGFtcGxl +LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxO/P1hso1QiCh+Hu12Bdwx +qMvG3TLQnLbDutA6G7Wz9IjOylr7jrbparbheg7A1HjyG4AoH5aGfYIdcDg1PuCj +TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEYI +MIKHsvI3ipsCxPctAGxF3sDPiKrqZrCCH1CZh4DaMAoGCCqGSM49BAMCA0gAMEUC +IQDfe51zhFX7ArXw185ZyxtRYew08gQZLUkp01KxCFI9rQIgOLArCqG4DZMZz9oA +pHXEJEXiZLfbHmYFrllwib0d62A= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt new file mode 100644 index 0000000..2c417d6 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXDCCAgOgAwIBAgIRAKxT9kCnXs7ZVDt+rrEsRgUwCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMFkxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMR0wGwYDVQQDExRvcmRlcmVyNC5leGFtcGxlLmNvbTBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABIQqn8Gmn590jRJIDpT7s0nfISnrrFeQ7oQod5OMP48B +XEN91id2DJhEo6+/1OFK9onvuPT5frXwJdMep2ojHLyjgZgwgZUwDgYDVR0PAQH/ +BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8E +AjAAMCsGA1UdIwQkMCKAIJKzoT9AGyt8AsmLVYWQxdXYnZmzPGgYPjhi+vfmK9v+ +MCkGA1UdEQQiMCCCFG9yZGVyZXI0LmV4YW1wbGUuY29tgghvcmRlcmVyNDAKBggq +hkjOPQQDAgNHADBEAiBGwLbvvjvsQW6WupC3hXBh63sJtNPG4lMF1ifHCrtuKAIg +PcFDmTKwLdbNX2NmvnuLjTOGq44aN1X/VwhB/b675+I= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key new file mode 100644 index 0000000..6f80bdd --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgKbwsCeduWCvbBnPX +QOUVfhubcbR0xBFdUlI5BCxOcn+hRANCAASEKp/Bpp+fdI0SSA6U+7NJ3yEp66xX +kO6EKHeTjD+PAVxDfdYndgyYRKOvv9ThSvaJ77j0+X618CXTHqdqIxy8 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk new file mode 100644 index 0000000..5a9fd44 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgsnJIUl19E9lNnFUI +AIcDTWe1ymemYrWtzWwB82rVG/OhRANCAATFT7qBbtIlapAL8pm4KTpf8qUOii/f +noiBJZi0ZdYZqQ5K2wdBWSe+5mVCZvJGRPryn+fLvfJAhIIcwGm0lv7L +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..db3d41c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d +ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I +qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H +hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw +GA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..bcf988c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgE2hkJWcDQRd2gPrY +7ONNqe3XCogLJ19UAEEwLowoRtChRANCAAQGyvpl1arQ+ynAESEIJZcBOX3LNssz +aWl0K6Acr7fjIl8C3f39IP5puLwhCFKbrQplWMgeHhmXrKDEiiRYmQP/ +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem new file mode 100644 index 0000000..dbace89 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGzCCAcGgAwIBAgIRAJ4K18/L9NlE2Nzzo/PLY1cwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMGYxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMQ4wDAYDVQQLEwVhZG1pbjEaMBgGA1UEAwwRQWRtaW5AZXhhbXBsZS5jb20w +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQGyvpl1arQ+ynAESEIJZcBOX3LNssz +aWl0K6Acr7fjIl8C3f39IP5puLwhCFKbrQplWMgeHhmXrKDEiiRYmQP/o00wSzAO +BgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCBGCDCCh7Ly +N4qbAsT3LQBsRd7Az4iq6mawgh9QmYeA2jAKBggqhkjOPQQDAgNIADBFAiEAjgxk +s2Vb8sS5Y7Az4M3vapuFm/hRTgfUKzbtfTsl20UCICiLUFZuosT+FktfiRambOIU +nsmLDvFZe5V3mVidkuax +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt new file mode 100644 index 0000000..35f59b0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt +cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp +Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW +/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB +BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF +1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 +kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z +RvT+M7jW+RE= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt new file mode 100644 index 0000000..a220015 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICLTCCAdOgAwIBAgIRALjrmoxasHKGckUjjleRys4wCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMFYxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEG +CCqGSM49AwEHA0IABEY1BETTrY3dtvPz9VTqwh5oWfSG+SV1zIrguoZbLinmKzRg +tXCukZGKgwGoUQLlXHQAcxY0avzZsnJ7lP6Io3CjbDBqMA4GA1UdDwEB/wQEAwIF +oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAr +BgNVHSMEJDAigCCSs6E/QBsrfALJi1WFkMXV2J2ZszxoGD44Yvr35ivb/jAKBggq +hkjOPQQDAgNIADBFAiEAupNA/Kct051i0EIFTkuL1F8iuKU01K0eSiE9l9OTLIoC +IFubISSt/QHgk0rx2tOB31hdfqMcxWdgDJbiP23Jvs4T +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key new file mode 100644 index 0000000..51ff9a8 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCsHTVQawXtfVsfy0 +pkcwEOomqEBcb/au3+xy0kr9336hRANCAARGNQRE062N3bbz8/VU6sIeaFn0hvkl +dcyK4LqGWy4p5is0YLVwrpGRioMBqFEC5Vx0AHMWNGr82bJye5T+iKNw +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk new file mode 100644 index 0000000..7265803 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWV9uWnS35LAJ9mjU +eDFn/YPqRVbAzTzxvFhigbyTrK6hRANCAATnHTE4uFCe550oHkoF3hs3ITlWMz93 +VCJSwQwTyOOPepJkGzzFoAwwvuCwWGjvTmwS9dmtqUX7Oq/YAfTiM/6n +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..a5c8754 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWMc5vzkgx7egBDHn +JxbAymVU0xAfryCJzrOHPYngqfihRANCAAQAO7CMO7PQOFcQBrPTRksoPIkRseSq +4ziY5TfDcAJ8ABiZgJ1M8RkQWThtkh1rvd/GD1smK467yZb0+1kQ3yN7 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem new file mode 100644 index 0000000..a70ec1f --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICHzCCAcagAwIBAgIRANFBIinxFECKIjqS/8SvOp4wCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGsxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl +LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAA7sIw7s9A4VxAGs9NGSyg8 +iRGx5KrjOJjlN8NwAnwAGJmAnUzxGRBZOG2SHWu938YPWyYrjrvJlvT7WRDfI3uj +TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJhf +zuxIe6nIedddYysRe8awyptv7QAq8DH2q6gY8gQuMAoGCCqGSM49BAMCA0cAMEQC +IDzaqty4RH927CH9AET06xuwXBGcfW+siFBiFRauAB58AiBl9fxfeQNYxiphwB+G +skjQubnhrVywNhI+11RSFYc9Mw== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt new file mode 100644 index 0000000..aa22d9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWzCCAgKgAwIBAgIQVRZw9SeBEtRkxO39xuo5lzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIwLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAEYOueoJet/ZQ5GHsm2Zcqer8VDlVjJdJPra94s3SidigH +aju/AJIGXWGI2QhRa4DgP1pFKbYigtGxEyWrp5/BUaOBmDCBlTAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w +KQYDVR0RBCIwIIIUb3JkZXJlcjAuZXhhbXBsZS5jb22CCG9yZGVyZXIwMAoGCCqG +SM49BAMCA0cAMEQCIDQZVU3228pjYjU/tNV+x5BjjG8fscxUOFxDC7PJ/SqvAiBC +Ih7t1N6OuFHDOFHfyBe9L3oG2u/DO8n1muDLSdXuDQ== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key new file mode 100644 index 0000000..051418a --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0iHS8ru6UR/eoKUA +A1v5/uqNish63Q+0fdcj+JQIPs6hRANCAARg656gl639lDkYeybZlyp6vxUOVWMl +0k+tr3izdKJ2KAdqO78AkgZdYYjZCFFrgOA/WkUptiKC0bETJaunn8FR +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..8341649 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXPSgpANN3NGW94QN +Zv2l8RB25xBFaZJlCFAqxHX4djqhRANCAATxQwpa04NP7R2xHYtV95fT7xAkPi96 +uvwuYPe35pH9nkqEQJLcU+2VPH0MbiHNd4fjoEGxhUAb9t6PpnlgpKEE +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem new file mode 100644 index 0000000..407aa74 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICIDCCAcagAwIBAgIRAMf6bJNWt6QQ32CHGSojQ4wwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGsxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMS5leGFtcGxl +LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPFDClrTg0/tHbEdi1X3l9Pv +ECQ+L3q6/C5g97fmkf2eSoRAktxT7ZU8fQxuIc13h+OgQbGFQBv23o+meWCkoQSj +TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJhf +zuxIe6nIedddYysRe8awyptv7QAq8DH2q6gY8gQuMAoGCCqGSM49BAMCA0gAMEUC +IQCzrvJERq97NFKkZHcOcCgNnwXPzvOZNZNaW541sEFggAIgYiBUpDMThc/48w/r +nUhymeGFLR6gFe7msfg9yd8h9e4= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt new file mode 100644 index 0000000..50172de --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWzCCAgKgAwIBAgIQVn0JI5GFL41vp3YfaXP4kTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAEKiWp/NagzrpwSA93SautSp3AY3bUKa7LBKHkWrWKUF6s +DLKZSI/SruVnj9YgtUpBa6lGz2F2DMfuQKa2+8KfuqOBmDCBlTAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w +KQYDVR0RBCIwIIIUb3JkZXJlcjEuZXhhbXBsZS5jb22CCG9yZGVyZXIxMAoGCCqG +SM49BAMCA0cAMEQCIEe83dVp54d8nHrsICGNU2Sm5pJZnTY4ChGgQtkBjmGkAiBG ++tCa4Byh2fCWm3nNxBYtJ6hnKHUz2jng3Z1rL+ILTQ== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key new file mode 100644 index 0000000..1679c92 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmyFTJzjfuYYtythv +GILh7yIZFEx5ctJrWknbGgvkWYehRANCAAQqJan81qDOunBID3dJq61KncBjdtQp +rssEoeRatYpQXqwMsplIj9Ku5WeP1iC1SkFrqUbPYXYMx+5Aprb7wp+6 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..e438986 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgT7OWZ6BDBN4s86+H +3mEzt18sWrWjIr0pxcDhdMhKC4ahRANCAAQZ9yopiZek2Cm87mqACdHkzArAelX/ +6VZ/IA2unZlgZQlsBeRhVCquhKtgrqx9PSin3JYcFmvVzHyDqK3Qk35Y +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem new file mode 100644 index 0000000..d7fcb75 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICIDCCAcagAwIBAgIRANSos0j6AiNQ5ILO+f+Y1yUwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGsxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMi5leGFtcGxl +LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBn3KimJl6TYKbzuaoAJ0eTM +CsB6Vf/pVn8gDa6dmWBlCWwF5GFUKq6Eq2CurH09KKfclhwWa9XMfIOordCTflij +TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJhf +zuxIe6nIedddYysRe8awyptv7QAq8DH2q6gY8gQuMAoGCCqGSM49BAMCA0gAMEUC +IQCxUIGjHhGX+fH5iqEnrSuxxgL8dc5x1BtcFY9f/5086QIgHbTiqNBLXek5K4aj +mvwSn4Dm2n9sQIQRRNkhZKMVihk= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt new file mode 100644 index 0000000..a15486b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXTCCAgOgAwIBAgIRAJ2e0mV97WbQRhkkHsTP2VcwCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMFkxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMR0wGwYDVQQDExRvcmRlcmVyMi5leGFtcGxlLmNvbTBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABKA3O5ncGKdQbDlfQzQKGF126EUhDr3Avqiw1O9FsHwJ +v3ANndLK8gcJa/khW6NEwoAzrZoxG4FcsQiCFzGwK0ijgZgwgZUwDgYDVR0PAQH/ +BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8E +AjAAMCsGA1UdIwQkMCKAIJptJDQdV5qOPRV79cELQQR5Ru0mf0o+ytB5sc7N5ok/ +MCkGA1UdEQQiMCCCFG9yZGVyZXIyLmV4YW1wbGUuY29tgghvcmRlcmVyMjAKBggq +hkjOPQQDAgNIADBFAiEAgMO95PuV1HbUx0e8KeehPhvplMVWjV1cW3N8JjryhOQC +IDv8tDEWTI3TbDnWHo3I5kXzuJoaqXd0WebSTPxnmGB/ +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key new file mode 100644 index 0000000..f60503a --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5MdMW2XSuEnZ2rE7 +ttxWIxe/99h2PENylkGrSy8p3j+hRANCAASgNzuZ3BinUGw5X0M0ChhdduhFIQ69 +wL6osNTvRbB8Cb9wDZ3SyvIHCWv5IVujRMKAM62aMRuBXLEIghcxsCtI +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..30f4d8a --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2QM1jqSOBfK5C1c1 +/rmQdRP21NaY4qyuFSg7jbHslX+hRANCAAT8loIUsV9s+0mqaxnOgrLZ6WUNZ+k6 +fOOViEmDiL27WWiE7lJRxDe5WJDi1q4/MGL8g+teYxPanB5yVrmprMe4 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem new file mode 100644 index 0000000..7873c4b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICHjCCAcWgAwIBAgIQV1wJ++2B/m9Fg3wakk0T7DAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowazELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUu +Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/JaCFLFfbPtJqmsZzoKy2ell +DWfpOnzjlYhJg4i9u1lohO5SUcQ3uViQ4tauPzBi/IPrXmMT2pwecla5qazHuKNN +MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgmF/O +7Eh7qch5111jKxF7xrDKm2/tACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDRwAwRAIg +YqxbyfL5nzH1qHQpC2pFlMBiSX/w0U4A5qPdVIFF9N0CIDMvafRpXP/wj/h8LSMi +61/zHjDZSMy+dGtF3emmpVXE +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt new file mode 100644 index 0000000..94314e1 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWzCCAgKgAwIBAgIQXDa9oKIVVK5k0UylOHFIhzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAEgbRmp1YpW8QiCw9CYl/B/VODL8Hy7uKxbBSMg1mbEQsL +EX+tnX0I9ixZcqb4rUZ492trkNXDfczmkVprNzvfBaOBmDCBlTAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w +KQYDVR0RBCIwIIIUb3JkZXJlcjMuZXhhbXBsZS5jb22CCG9yZGVyZXIzMAoGCCqG +SM49BAMCA0cAMEQCIGWRGORqa/dii1nvWO6hAFzGtG60MOyY+VvNk64HkDCTAiBe +ffh6GtZ2lSL5kR5u2NgLQqX02voz26tn63M92dkGRA== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key new file mode 100644 index 0000000..efedb64 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfKJQPXJtV87q6UCD +PjkmA6FGWxhxOLcMYOzQEE55gmOhRANCAASBtGanVilbxCILD0JiX8H9U4MvwfLu +4rFsFIyDWZsRCwsRf62dfQj2LFlypvitRnj3a2uQ1cN9zOaRWms3O98F +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..7a48cc9 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4L2PJDO/3l4byxDI +vMxgyilZzDidbbbljwgj0C+VObmhRANCAASCm2ymDBaQg0877vcpc43/JcCARFiA +uLwDT/1LH8VcYhu+cgcNLApHMvUW3ZWsrnCXuvIi1qKP825LqxeBzVl6 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem new file mode 100644 index 0000000..fd923cc --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICHjCCAcWgAwIBAgIQAqPAaWAFhV2jWlqzCoaa5zAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowazELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXI0LmV4YW1wbGUu +Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgptspgwWkINPO+73KXON/yXA +gERYgLi8A0/9Sx/FXGIbvnIHDSwKRzL1Ft2VrK5wl7ryItaij/NuS6sXgc1ZeqNN +MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgmF/O +7Eh7qch5111jKxF7xrDKm2/tACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDRwAwRAIg +US8wHzUvktXcqK96xkDtqrs+YcittxkUlqkEVb3hm+0CIGTxeDehfEW8KHc2CSp0 +dAtUmRhd121fdsSIk3yxLMve +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt new file mode 100644 index 0000000..9974837 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWzCCAgKgAwIBAgIQCHqnS9/QiFXJKNWh2QvckTAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXI0LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C +AQYIKoZIzj0DAQcDQgAENI9t73XOzov/+5RMPtvV54gijsIbLHt1E6MOqL9tZ2sP +tvTphF7h3req3bvCeRu+HFyPKH28c4yAAn7bjzy5VKOBmDCBlTAOBgNVHQ8BAf8E +BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w +KQYDVR0RBCIwIIIUb3JkZXJlcjQuZXhhbXBsZS5jb22CCG9yZGVyZXI0MAoGCCqG +SM49BAMCA0cAMEQCIHVDvIxyOCC9tqVxZ38UXSWlA4qgn6Xi3Zyd0tCBD7+XAiB4 +VV59BJRKdN9mYcBnFD+Aq5QVYuSSodpcZf6lU0yV9g== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key new file mode 100644 index 0000000..1c93b88 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg3s0ovQFTLvz4Lb7m +jCyNoeKiPE8+vDaK6ETOyQCpWUKhRANCAAQ0j23vdc7Oi//7lEw+29XniCKOwhss +e3UTow6ov21naw+29OmEXuHet6rdu8J5G74cXI8ofbxzjIACftuPPLlU +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk new file mode 100644 index 0000000..4911be3 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgMyxJ51+5RzC/bwqA +/BYQelYZjzBVrQjvGMLomi/5fsChRANCAASoNDqsX1ceYOaT/I8EFGi1a3cHynrf +4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVDjbPt +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem new file mode 100644 index 0000000..b632faf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w +bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz +Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv +bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz +P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr +MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw +DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t +ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k +pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH ++A== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml new file mode 100644 index 0000000..8846e9d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/ca.example.com-cert.pem + OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk new file mode 100644 index 0000000..88fe802 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgMa3ODKt+JSswHiLu +8MWJw5tDL1ktrhXvq38bs9xaxbChRANCAAQPCDyYzKLfn97gwJYi04vZlttYNgJ2 +dt3pMYhoUEA6w368L2A41lb6hHvtxRV+9OsZdrCmQbw35qFm0LPE6AQH +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem new file mode 100644 index 0000000..45d8acf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICGzCCAcGgAwIBAgIRAKqBndR3MKJtq/JD5zbqlIQwCgYIKoZIzj0EAwIwaTEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt +cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGYxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp +c2NvMQ4wDAYDVQQLEwVhZG1pbjEaMBgGA1UEAwwRQWRtaW5AZXhhbXBsZS5jb20w +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQPCDyYzKLfn97gwJYi04vZlttYNgJ2 +dt3pMYhoUEA6w368L2A41lb6hHvtxRV+9OsZdrCmQbw35qFm0LPE6AQHo00wSzAO +BgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCYX87sSHup +yHnXXWMrEXvGsMqbb+0AKvAx9quoGPIELjAKBggqhkjOPQQDAgNIADBFAiEA8Iwx +QwcZ+oDZVMauR9PD/NZd4Rr7c7P3cSWe1aBaPeICIBWsKyf1vCjiCrp+qm2XfUdM +4DdDPDA2aHkgKdyAAVxZ +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt new file mode 100644 index 0000000..9a9477c --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG +cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l +eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ +BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh +bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh +bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E +FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD +jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL +QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N +8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr +IcUdUWrkTg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt new file mode 100644 index 0000000..f8aa37b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICLDCCAdKgAwIBAgIQEANgeYPMIYV7jgZnygJnJzAKBggqhkjOPQQDAjBsMQsw +CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy +YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 +YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowVjELMAkG +A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu +Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAESOWEpCdCO8jKa/wQiCMlsHygdh+v1xz+SYHbK4l1JMJvw11x +BKWVPgC0We73dZpYI/Ld0GmB11LY6p90MaaMtKNsMGowDgYDVR0PAQH/BAQDAgWg +MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG +A1UdIwQkMCKAIJptJDQdV5qOPRV79cELQQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqG +SM49BAMCA0gAMEUCIQC5RLll3Fuudn6ZWTO226Y6MUX2rIVHaGjFc25p9D+OcQIg +Pd9tm8Kce0i77NPIEH7/nnl0W/GOd03WQrlAy2M6/i0= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key new file mode 100644 index 0000000..806a554 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg11Y/cJMxHHHNFfms +VqtKrA+pvXWAdufpbFPyvlyHBGShRANCAARI5YSkJ0I7yMpr/BCIIyWwfKB2H6/X +HP5JgdsriXUkwm/DXXEEpZU+ALRZ7vd1mlgj8t3QaYHXUtjqn3Qxpoy0 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt new file mode 100644 index 0000000..c24b0f0 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt @@ -0,0 +1 @@ +CiIaIEiXsVSAhGcr2iLU/YOG9VTsyupksRwgsba40NRgZbmIEpd3CpR3CpF3CnwKXggBEAEaBgjZ4InEBiIOc3lzdGVtLWNoYW5uZWwqQGJhZDQ1MmUwYjMwODE4OTZjNGY4NTEwYzBkMmFmZDAyNTJjMTY2Njg5NDI5NzhlYzcyZjk3NTMwMTQ3ZGMwOWQSGhIYZHbCJrQX7lA5MQQRAVRRJFkghbDh96C2EpB2Co12Eop2EvRxCgdPcmRlcmVyEuhxEtspCgpPcmRlcmVyTVNQEswpGqEoCgNNU1ASmSgSjigSiygKCk9yZGVyZXJNU1ASxwYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1BqQ0NBZU9nQXdJQkFnSVFGNHVSSWZxQ1hOQ3BiSUY3WVBkZFRqQUtCZ2dxaGtqT1BRUURBakJwTVFzdwpDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5CllXNWphWE5qYnpFVU1CSUdBMVVFQ2hNTFpYaGhiWEJzWlM1amIyMHhGekFWQmdOVkJBTVREbU5oTG1WNFlXMXcKYkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd2FURUxNQWtHQTFVRQpCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnVZMmx6ClkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0Y0d4bExtTnYKYlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQlBpZ1dvMGdRMjltcnlCdE5Ed3NEOUlOUTZ4WAo2eVVOaWRtQXN5dTJrUEM3Tzl5V2l6Ri9RUTdzc3ZtK0tJaUUvUDJteHFUUTF2US9La2lGTzhpR2pOcWpiVEJyCk1BNEdBMVVkRHdFQi93UUVBd0lCcGpBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXcKRHdZRFZSMFRBUUgvQkFVd0F3RUIvekFwQmdOVkhRNEVJZ1FnMmdVbkVwSDdBK3lQM1dGeTZDS2Jnblk2cDA1TQpFSkcvSmFaSWtsVGVTdE13Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU50MzEyZHZVOEErTk5MVUcyNVo0R1JMCjB0cTNBa3dzOHM0RGl1bzlEMkoyQWlFQXhQZkdFZkNza1RqTERYZU8rQlhVa040bWNWeUhtS0xtTWo2Qk9nN20KNjBzPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCkIOCgRTSEEyEgZTSEEyNTZKywYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1FqQ0NBZW1nQXdJQkFnSVFOamlDK3NqOURBSVgxS2ZEOGxQd0hqQUtCZ2dxaGtqT1BRUURBakJzTVFzdwpDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5CllXNWphWE5qYnpFVU1CSUdBMVVFQ2hNTFpYaGhiWEJzWlM1amIyMHhHakFZQmdOVkJBTVRFWFJzYzJOaExtVjQKWVcxd2JHVXVZMjl0TUI0WERUSTFNRGN5TkRFM016WXdNRm9YRFRNMU1EY3lNakUzTXpZd01Gb3diREVMTUFrRwpBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1ClkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1Sb3dHQVlEVlFRREV4RjBiSE5qWVM1bGVHRnQKY0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRUxZbVVkR21pSXFlYUhSVkI5TgpJcjVlUGk5dTVTWDlMeG81bnI4SEd6SU1YOTlhSXFBbjUwa2NPZ0lTREpIKzY3VVl0WWtQd2xIL0hHVkJvK2NHClcxU2piVEJyTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUIKQlFVSEF3RXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWd6S09hVVNSREhVa3dTZ1B4aEVPVwpsZHdSSXl3TE9Ub2QvT1Y2aGQ1OW1XQXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdWQm1vdzhtODJ5ZXJPTmZZClFkYk1kYldBYTFOOFY4U0RreGp5bjJhaE9oOENJRkxILzRJU3dSYkxFSlJUdkp0dkdTODA5aGpPNjN5d3lIRDQKSndTeHJYYmwKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpa1BoIARLSBgrHBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDUGpDQ0FlT2dBd0lCQWdJUUY0dVJJZnFDWE5DcGJJRjdZUGRkVGpBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEkxTURjeU5ERTNNell3TUZvWERUTTFNRGN5TWpFM016WXdNRm93YVRFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnRjR3hsTG1OdgpiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCUGlnV28wZ1EyOW1yeUJ0TkR3c0Q5SU5RNnhYCjZ5VU5pZG1Bc3l1MmtQQzdPOXlXaXpGL1FRN3Nzdm0rS0lpRS9QMm14cVRRMXZRL0traUZPOGlHak5xamJUQnIKTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFdwpEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcyZ1VuRXBIN0EreVAzV0Z5NkNLYmduWTZwMDVNCkVKRy9KYVpJa2xUZVN0TXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTnQzMTJkdlU4QStOTkxVRzI1WjRHUkwKMHRxM0Frd3M4czREaXVvOUQySjJBaUVBeFBmR0VmQ3NrVGpMRFhlTytCWFVrTjRtY1Z5SG1LTG1NajZCT2c3bQo2MHM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEgZjbGllbnQa0AYKxwYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1BqQ0NBZU9nQXdJQkFnSVFGNHVSSWZxQ1hOQ3BiSUY3WVBkZFRqQUtCZ2dxaGtqT1BRUURBakJwTVFzdwpDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5CllXNWphWE5qYnpFVU1CSUdBMVVFQ2hNTFpYaGhiWEJzWlM1amIyMHhGekFWQmdOVkJBTVREbU5oTG1WNFlXMXcKYkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd2FURUxNQWtHQTFVRQpCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnVZMmx6ClkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0Y0d4bExtTnYKYlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQlBpZ1dvMGdRMjltcnlCdE5Ed3NEOUlOUTZ4WAo2eVVOaWRtQXN5dTJrUEM3Tzl5V2l6Ri9RUTdzc3ZtK0tJaUUvUDJteHFUUTF2US9La2lGTzhpR2pOcWpiVEJyCk1BNEdBMVVkRHdFQi93UUVBd0lCcGpBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXcKRHdZRFZSMFRBUUgvQkFVd0F3RUIvekFwQmdOVkhRNEVJZ1FnMmdVbkVwSDdBK3lQM1dGeTZDS2Jnblk2cDA1TQpFSkcvSmFaSWtsVGVTdE13Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU50MzEyZHZVOEErTk5MVUcyNVo0R1JMCjB0cTNBa3dzOHM0RGl1bzlEMkoyQWlFQXhQZkdFZkNza1RqTERYZU8rQlhVa040bWNWeUhtS0xtTWo2Qk9nN20KNjBzPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIEcGVlciLRBgrHBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDUGpDQ0FlT2dBd0lCQWdJUUY0dVJJZnFDWE5DcGJJRjdZUGRkVGpBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEkxTURjeU5ERTNNell3TUZvWERUTTFNRGN5TWpFM016WXdNRm93YVRFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnRjR3hsTG1OdgpiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCUGlnV28wZ1EyOW1yeUJ0TkR3c0Q5SU5RNnhYCjZ5VU5pZG1Bc3l1MmtQQzdPOXlXaXpGL1FRN3Nzdm0rS0lpRS9QMm14cVRRMXZRL0traUZPOGlHak5xamJUQnIKTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFdwpEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcyZ1VuRXBIN0EreVAzV0Z5NkNLYmduWTZwMDVNCkVKRy9KYVpJa2xUZVN0TXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTnQzMTJkdlU4QStOTkxVRzI1WjRHUkwKMHRxM0Frd3M4czREaXVvOUQySjJBaUVBeFBmR0VmQ3NrVGpMRFhlTytCWFVrTjRtY1Z5SG1LTG1NajZCT2c3bQo2MHM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEgVhZG1pbirTBgrHBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDUGpDQ0FlT2dBd0lCQWdJUUY0dVJJZnFDWE5DcGJJRjdZUGRkVGpBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEkxTURjeU5ERTNNell3TUZvWERUTTFNRGN5TWpFM016WXdNRm93YVRFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnRjR3hsTG1OdgpiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCUGlnV28wZ1EyOW1yeUJ0TkR3c0Q5SU5RNnhYCjZ5VU5pZG1Bc3l1MmtQQzdPOXlXaXpGL1FRN3Nzdm0rS0lpRS9QMm14cVRRMXZRL0traUZPOGlHak5xamJUQnIKTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFdwpEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcyZ1VuRXBIN0EreVAzV0Z5NkNLYmduWTZwMDVNCkVKRy9KYVpJa2xUZVN0TXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTnQzMTJkdlU4QStOTkxVRzI1WjRHUkwKMHRxM0Frd3M4czREaXVvOUQySjJBaUVBeFBmR0VmQ3NrVGpMRFhlTytCWFVrTjRtY1Z5SG1LTG1NajZCT2c3bQo2MHM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEgdvcmRlcmVyGgZBZG1pbnMiMwoHUmVhZGVycxIoEh4IARIaEggSBggBEgIIABoOEgwKCk9yZGVyZXJNU1AaBkFkbWlucyIzCgdXcml0ZXJzEigSHggBEhoSCBIGCAESAggAGg4SDAoKT3JkZXJlck1TUBoGQWRtaW5zIjQKBkFkbWlucxIqEiAIARIcEggSBggBEgIIABoQEg4KCk9yZGVyZXJNU1AQARoGQWRtaW5zKgZBZG1pbnMaIgoJQmF0Y2hTaXplEhUSCwgKEICAwDEYgIAgGgZBZG1pbnMaHgoMQmF0Y2hUaW1lb3V0Eg4SBAoCMnMaBkFkbWlucxofChNDaGFubmVsUmVzdHJpY3Rpb25zEggaBkFkbWlucxqCRgoNQ29uc2Vuc3VzVHlwZRLwRRLlRQoIZXRjZHJhZnQS2EUK8Q0KCG9yZGVyZXIwEIo3Gu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYVENDQWdPZ0F3SUJBZ0lSQUtmMUdBL3Q1Z2FlVE5uZzRjeUp5YlF3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQkt2WlBMQUV6clpFQTdHQVAyc09jd2NGaUZKUWUzRnRvVDBzdTJ1MTBNQ1kKZEIxMGtpZHc4RU56MG1pLzNzd3NmZHJPNFBETnJKaGRja1lVRXJONkhDbWpnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJd0xtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNREFLQmdncQpoa2pPUFFRREFnTklBREJGQWlFQXZKYzRRa1JxdjNVL3lrK2dJcFBINmhpT2FCOWZ1YUxOb2diMjBhRmxPSllDCklEYmFSLzRSOEFlOGo4ditETzVMUFZZQjJyMzk1RXV4YS92dGVXQzV0OUFXCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KIu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYVENDQWdPZ0F3SUJBZ0lSQUtmMUdBL3Q1Z2FlVE5uZzRjeUp5YlF3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQkt2WlBMQUV6clpFQTdHQVAyc09jd2NGaUZKUWUzRnRvVDBzdTJ1MTBNQ1kKZEIxMGtpZHc4RU56MG1pLzNzd3NmZHJPNFBETnJKaGRja1lVRXJONkhDbWpnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJd0xtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNREFLQmdncQpoa2pPUFFRREFnTklBREJGQWlFQXZKYzRRa1JxdjNVL3lrK2dJcFBINmhpT2FCOWZ1YUxOb2diMjBhRmxPSllDCklEYmFSLzRSOEFlOGo4ditETzVMUFZZQjJyMzk1RXV4YS92dGVXQzV0OUFXCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCvENCghvcmRlcmVyMRCKNxrvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDV3pDQ0FnS2dBd0lCQWdJUUJLb2xUYklReTZza3JVZUNpT3Avb3pBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSXhMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRXFJYno5VlV4OUhiNFNjUW5qbHN4UEZpRDcvTFVkUktCdlVOeFdCWVd0SkZ6CkxhanFHc01xNEE3OEorZTZ0TTZBSENhVllKaGYxVjRMSWZ0elNOU2ZtS09CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqRXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEl4TUFvR0NDcUcKU000OUJBTUNBMGNBTUVRQ0lEeFRHNk9hR05aRm5EcXBHQ0hhWmRLeFQvY2p1VklyN0NsNUptR2w1K3Z1QWlCWgpnUEZWSzI2TmFRS2dmM20xbTF4VWRoT2ZPdzd1bEcyTjlVcXJ1U0VBVEE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCiLvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDV3pDQ0FnS2dBd0lCQWdJUUJLb2xUYklReTZza3JVZUNpT3Avb3pBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSXhMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRXFJYno5VlV4OUhiNFNjUW5qbHN4UEZpRDcvTFVkUktCdlVOeFdCWVd0SkZ6CkxhanFHc01xNEE3OEorZTZ0TTZBSENhVllKaGYxVjRMSWZ0elNOU2ZtS09CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqRXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEl4TUFvR0NDcUcKU000OUJBTUNBMGNBTUVRQ0lEeFRHNk9hR05aRm5EcXBHQ0hhWmRLeFQvY2p1VklyN0NsNUptR2w1K3Z1QWlCWgpnUEZWSzI2TmFRS2dmM20xbTF4VWRoT2ZPdzd1bEcyTjlVcXJ1U0VBVEE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgrxDQoIb3JkZXJlcjIQijca7wYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1hUQ0NBZ09nQXdJQkFnSVJBUDlxTGJqVUxBYmhuKzZBY1ZnZmgvQXdDZ1lJS29aSXpqMEVBd0l3YkRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUm93R0FZRFZRUURFeEYwYkhOallTNWwKZUdGdGNHeGxMbU52YlRBZUZ3MHlOVEEzTWpReE56TTJNREJhRncwek5UQTNNakl4TnpNMk1EQmFNRmt4Q3pBSgpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoCmJtTnBjMk52TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDkKQWdFR0NDcUdTTTQ5QXdFSEEwSUFCQkVSajFRWjZHc0d4Z1g0K21jaXpGRlRxcEt5RW40bjVwNitVK1gzQnpaMApHSG0xbDhXQ3Y1VmFUeTlxM1B3M2N2TVdBUndHVUhrS1N1UVVVQXZycTNtamdaZ3dnWlV3RGdZRFZSMFBBUUgvCkJBUURBZ1dnTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU1CZ05WSFJNQkFmOEUKQWpBQU1Dc0dBMVVkSXdRa01DS0FJTXlqbWxFa1F4MUpNRW9EOFlSRGxwWGNFU01zQ3prNkhmemxlb1hlZlpsZwpNQ2tHQTFVZEVRUWlNQ0NDRkc5eVpHVnlaWEl5TG1WNFlXMXdiR1V1WTI5dGdnaHZjbVJsY21WeU1qQUtCZ2dxCmhrak9QUVFEQWdOSUFEQkZBaUVBelZBVkVWSk9IUUhSZWZLREY4bGh3Ly94bG42TmZreEx3TUJnelh1Y043b0MKSUg5MXNXZHdlR1RFOEsrZWZ6STBOMnREVXF5cTVGNTBoSmVUVWdpSG9QSnMKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoi7wYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1hUQ0NBZ09nQXdJQkFnSVJBUDlxTGJqVUxBYmhuKzZBY1ZnZmgvQXdDZ1lJS29aSXpqMEVBd0l3YkRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUm93R0FZRFZRUURFeEYwYkhOallTNWwKZUdGdGNHeGxMbU52YlRBZUZ3MHlOVEEzTWpReE56TTJNREJhRncwek5UQTNNakl4TnpNMk1EQmFNRmt4Q3pBSgpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoCmJtTnBjMk52TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDkKQWdFR0NDcUdTTTQ5QXdFSEEwSUFCQkVSajFRWjZHc0d4Z1g0K21jaXpGRlRxcEt5RW40bjVwNitVK1gzQnpaMApHSG0xbDhXQ3Y1VmFUeTlxM1B3M2N2TVdBUndHVUhrS1N1UVVVQXZycTNtamdaZ3dnWlV3RGdZRFZSMFBBUUgvCkJBUURBZ1dnTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU1CZ05WSFJNQkFmOEUKQWpBQU1Dc0dBMVVkSXdRa01DS0FJTXlqbWxFa1F4MUpNRW9EOFlSRGxwWGNFU01zQ3prNkhmemxlb1hlZlpsZwpNQ2tHQTFVZEVRUWlNQ0NDRkc5eVpHVnlaWEl5TG1WNFlXMXdiR1V1WTI5dGdnaHZjbVJsY21WeU1qQUtCZ2dxCmhrak9QUVFEQWdOSUFEQkZBaUVBelZBVkVWSk9IUUhSZWZLREY4bGh3Ly94bG42TmZreEx3TUJnelh1Y043b0MKSUg5MXNXZHdlR1RFOEsrZWZ6STBOMnREVXF5cTVGNTBoSmVUVWdpSG9QSnMKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK8Q0KCG9yZGVyZXIzEIo3Gu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYRENDQWdPZ0F3SUJBZ0lSQUxVbFdzTVNJUnUrRit3cklvdno1cnd3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQk5FTitINmgwVzk1M1o4SnVFdWh6eG4vSFFyZDM4ZmgyK3VNYUx6RHdUajIKdi9LQmlzYkFvaFZkSnNNWlkxY2wybmwyMG00bXpRQ01IVmxtUDRwbjJJU2pnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJekxtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNekFLQmdncQpoa2pPUFFRREFnTkhBREJFQWlCeHVXODhtUXJCMnV3czNGdTZVRjdReVVmMkdIaTBhNVRtMWlaUTVxMFpvZ0lnCkxtanZnNVBUQkkyRFNsOHgvNDcvZ21OVlM0aG4rWTFHQTRWNW9XR2ZZZWc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KIu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYRENDQWdPZ0F3SUJBZ0lSQUxVbFdzTVNJUnUrRit3cklvdno1cnd3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQk5FTitINmgwVzk1M1o4SnVFdWh6eG4vSFFyZDM4ZmgyK3VNYUx6RHdUajIKdi9LQmlzYkFvaFZkSnNNWlkxY2wybmwyMG00bXpRQ01IVmxtUDRwbjJJU2pnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJekxtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNekFLQmdncQpoa2pPUFFRREFnTkhBREJFQWlCeHVXODhtUXJCMnV3czNGdTZVRjdReVVmMkdIaTBhNVRtMWlaUTVxMFpvZ0lnCkxtanZnNVBUQkkyRFNsOHgvNDcvZ21OVlM0aG4rWTFHQTRWNW9XR2ZZZWc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCvENCghvcmRlcmVyNBCKNxrvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDWERDQ0FnS2dBd0lCQWdJUWVlVEFTaWcwQis0eUh0UURKTHhEc1RBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSTBMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRThKeU85c082R2ZFd3JmQjc1djVlMFE1ZDEyMGxsaVVxMS9FcmI3cEtJMk40CjUrSGJndEVGaVVPRzRRMnNIZ2NRVndwZ2gxZm5iZHNnUU9XVWt2VVIxNk9CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqUXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEkwTUFvR0NDcUcKU000OUJBTUNBMGdBTUVVQ0lRRGpwMUdVTWxnQkI1K01BeGZvNlB5bWh5TkNwV1lUTEkrelZ3VEdXVjM4QWdJZwpKaUxDNndTWDg0dW5CVll5UGxVRXRYaVVZVVRMUERYU1BFY1BTTkw5czNVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCiLvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDWERDQ0FnS2dBd0lCQWdJUWVlVEFTaWcwQis0eUh0UURKTHhEc1RBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSTBMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRThKeU85c082R2ZFd3JmQjc1djVlMFE1ZDEyMGxsaVVxMS9FcmI3cEtJMk40CjUrSGJndEVGaVVPRzRRMnNIZ2NRVndwZ2gxZm5iZHNnUU9XVWt2VVIxNk9CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqUXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEkwTUFvR0NDcUcKU000OUJBTUNBMGdBTUVVQ0lRRGpwMUdVTWxnQkI1K01BeGZvNlB5bWh5TkNwV1lUTEkrelZ3VEdXVjM4QWdJZwpKaUxDNndTWDg0dW5CVll5UGxVRXRYaVVZVVRMUERYU1BFY1BTTkw5czNVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChISCgU1MDBtcxAKGAEgBSiAgIAIGgZBZG1pbnMiIgoHV3JpdGVycxIXEg0IAxIJCgdXcml0ZXJzGgZBZG1pbnMiIgoGQWRtaW5zEhgSDggDEgoKBkFkbWlucxACGgZBZG1pbnMiKgoPQmxvY2tWYWxpZGF0aW9uEhcSDQgDEgkKB1dyaXRlcnMaBkFkbWlucyIiCgdSZWFkZXJzEhcSDQgDEgkKB1JlYWRlcnMaBkFkbWlucyoGQWRtaW5zEskBCgtDb25zb3J0aXVtcxK5ARJvChBTYW1wbGVDb25zb3J0aXVtElsaQAoVQ2hhbm5lbENyZWF0aW9uUG9saWN5EicSDAgDEggKBkFkbWlucxoXL0NoYW5uZWwvT3JkZXJlci9BZG1pbnMqFy9DaGFubmVsL09yZGVyZXIvQWRtaW5zIi0KBkFkbWlucxIjEggIARIEEgISABoXL0NoYW5uZWwvT3JkZXJlci9BZG1pbnMqFy9DaGFubmVsL09yZGVyZXIvQWRtaW5zGiYKEEhhc2hpbmdBbGdvcml0aG0SEhIICgZTSEEyNTYaBkFkbWlucxotChlCbG9ja0RhdGFIYXNoaW5nU3RydWN0dXJlEhASBgj/////DxoGQWRtaW5zGnoKEE9yZGVyZXJBZGRyZXNzZXMSZhJLCg1vcmRlcmVyMDo3MDUwCg1vcmRlcmVyMTo3MDUwCg1vcmRlcmVyMjo3MDUwCg1vcmRlcmVyMzo3MDUwCg1vcmRlcmVyNDo3MDUwGhcvQ2hhbm5lbC9PcmRlcmVyL0FkbWlucyIiCgZBZG1pbnMSGBIOCAMSCgoGQWRtaW5zEAIaBkFkbWlucyIiCgdSZWFkZXJzEhcSDQgDEgkKB1JlYWRlcnMaBkFkbWlucyIiCgdXcml0ZXJzEhcSDQgDEgkKB1dyaXRlcnMaBkFkbWlucyoGQWRtaW5zGg4KBAoCCgAKAAoACgAKAA== \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/orderer.genesis.block b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/orderer.genesis.block new file mode 100644 index 0000000000000000000000000000000000000000..ebe611fe411b7645d4049a69b5e830bd7ef0bd86 GIT binary patch literal 15310 zcmeI3+l%8^e#fVKdwOcm&h%CkmYEdGrm2KYZ=1%lEZK5kVUO;zE!mPK*>WI6mSkD7 zL0%UZ|z#?&X3&El%F*3|MDOF-g2zxe?9^#@P2|H<7)+aHSMMfpC>s+!1& zG}PE#Es#W!ZU;0C-IfOvk%FG6aQI3UhjY3o)3brdRn4~JXaQ_co;M$jgH~Hn7#L79 zNr@9cD<)$o3eP5WL(f=E$_Iiaouw(Mpb|p&LwNV>M)-i4+vi%g8 zT_Ui0axlnPU82PO!6T{J?~O)-9u@aHL@>b64VOWK@??X8lEy^xs2Lf!*)1ht!0Rg$ zt1Tr8?=hNKk{COc8MZ8CW+HLZyiVHHNx`u$u{5?R!SQY|K#e5YFr*EeL3KZZr_p11 zG~mN%P_D16F1z6ZsPEfsjWO~zpW^L^%LfiKU}EHkV_;|BVXD#Cerm^=sdmEc?-Ro& zL|}G^(B-+M&2PeHB(K3hqxuph@l-nJI}%=l9?R48)%S!IASyzt?R(uR>M2+)TBOuc zW|EkxiLz4J^gt!mW#5TloUX8Oo36HMY1hxVqM}secpViQqR$rFShSgIN@=YW8)Khq zkv<>D^B^C50VIfTZ-&DpELBVtcDoj40d%&PBy@CkfBoKq@>q^iYzBI!*hox@Qgi_( zYyy}hUk56xK}9H1P*3tos+hsq?gR?Xik{+Oo<3n`LKPO$cDc)?6}mC-CT3-Z5)xqR ze6eoz#c`;)ou!n}+YzRHF$>V`Y?zJ$6V($(P+pcxn6uVNSditW&SOL$=hY@am-8|l zCovi0jK7-J7_5##pM{(DkY|T?35K9l_dv0U5JAk1I1pcF=WWFoe0k>EB@gs ziw~f=U%HaU_SD$M_Ug)|SxSy;_*1BB!0gopwhw~OqOM$7VfM-DnkGElJ%yNDsOUhD zj|u|^iQPzHY}1T%hmU-5?plIsP&FBd3&L&twH49n)tZ|rFJhdsT&jgT!v4u&mLt^p461`Z(!$?ahd7 zbwTJPs+cCtmNs>YEu%7Wh+5Qz&nZmJMXN&5GpJ~qkP(Tc?xH0RO`tdf$r*H^Rgy`A z>@ed^kWMgb)Eber$Tfu`E_M=i&}8eXwyrPNe1}A9qo7qOr%5U>IH)I`&7wC5U!t!5 zM;B+ekiWVMPWI|#uTJ*rHP|cUt{wXBWO?!Zlc-KFfv15@|E1xx6myj=NtY=_E$Zjvao11Mks!l{<-7v6jwUvvEZjW}!Rnxx;?w0g2u%B!^WLU!rN6<7;W3H`0Dj zOb*ceK=nLt^yKC;d&CcpjNg+*$WYuCqOR*Uu8h_Bx~vz|alsR3ZJ{#qTNYItuB@g! z^>RjUabc@&(m-SemRiJB61rqSt_w_yXtoWL!WQKk!LBw|alLfAG_kC~?n{u+}fXXpY#=tx@r+AQ^i-W9Y=$o1_z&o}w3Bq{O z=6t4FZ0e5Mpw_y)=~8BQS?4m)w1PPwOLH7n$$G)9ETsw*Xv;9`qhZOwo8oYpb>z-4 zYP6_`p{Y=Vt)0nI$i2zRL$Wkw!9>{Fdld~SYG>cC2MF_U=F$Gq63hcOxp`yv!A3fN z_kl?sP23(FP_&YWQ|NtMDC0$u4A9t*tWva?h@z|ZPayp84$Ih#45DNY&5>ovUs`AO_=$Nrv*MgyzJmeTNs<){>uHo7xv4O>Zd74n!|)8~s-hlLva`pbfhH?Vmp#l5DW;z@BQ z#XSPoZ60!Dv#bK-=(!qvCS`){~!iV?WP-6+e$+)u5#GD}2mv zydGYN>^udA)8?~A%1-bJF{>2xLa$6^eH8FQR0_#1y(SDxOKbCTJ1N_1sSDMF*M)JT zvr=>&t{3z2o9O4I&%QJ~<>y@`oP4aGml@Dtje1K^1l1ij7>*1_NwK&IClz@(-ZXRX z)ysM-Tdq!XKToKY;;xgpyvCA^f;-GaRK}K!K2PTaN1&s+tLdIEOxyMNHT!ud#ckop zYa}Zt#eF8S@@6USy3H%!(B?7Eu+63(c4Mg{s;dH5NEYIBoe_)V#5P}o z5zXPa#9yKPool8lrEg{_jf%&jUqS5;Dd zi1C7tT7(vr{JuiW(f-sEJNN$RFwdh5%(ZTaqKQqVuxIs+2{Lpm0 z&*C=gp=Yvlg)dx6nEX`;h)ClJz<-!tHF-%p;Q4+g{8vOn;Rz9PHgi< znXt38iu|;FBRFvpgL=an2ZCW zAPl@E%lUeX#}zCVJX~#|@-nuGehl06a<-|{qQV5T z60b|4M^QvUf}7#A(oUmMns4~&np#sVWJaR#U879q`++=A_nUMj>GVi^HK7bMZHGF$ z?D@K>Yt1&(>$F+B-I1HMxU9bxn|D&&t8Pa+DNgx;MibsJ#UTiIn?TVhJ_jG%y8rfr z$B!Q$lVC0{!8?cKp7)XW&OV2H{#bEHl*#)Xa(O;L?&V#;p?rS(*ykbmA{9>Uv0;V2 zV{KDyke8hAn1yugbCs5KINu=?2>H`n;0xO%o#|rfuc8?F&MjmL&O25#3*9I6$j@AS z1AOT!-G^Sdy9uLkE1^3jVLE*~9^MScP~%X69T zAh(gXKK*$vz6#C-D<1h14~E_}PpKM32(q2oekiJ|9*d=?i`dh}^3z3pSA5~M g-e_s$OYD$z_M(6HO_t$dNnGSR@W5^G*5UX60X*Tr@&Et; literal 0 HcmV?d00001 diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml new file mode 100644 index 0000000..a40968a --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml @@ -0,0 +1,447 @@ +--- +# Source: fabric-orderer/templates/service-orderer.yaml +apiVersion: v1 +kind: Service +metadata: + name: orderer0 + namespace: hyperledger-fabric +spec: + selector: + app: orderer0 + ports: + - name: grpc + port: 7050 + targetPort: 7050 +--- +# Source: fabric-orderer/templates/service-orderer.yaml +apiVersion: v1 +kind: Service +metadata: + name: orderer1 + namespace: hyperledger-fabric +spec: + selector: + app: orderer1 + ports: + - name: grpc + port: 7050 + targetPort: 7050 +--- +# Source: fabric-orderer/templates/service-orderer.yaml +apiVersion: v1 +kind: Service +metadata: + name: orderer2 + namespace: hyperledger-fabric +spec: + selector: + app: orderer2 + ports: + - name: grpc + port: 7050 + targetPort: 7050 +--- +# Source: fabric-orderer/templates/service-orderer.yaml +apiVersion: v1 +kind: Service +metadata: + name: orderer3 + namespace: hyperledger-fabric +spec: + selector: + app: orderer3 + ports: + - name: grpc + port: 7050 + targetPort: 7050 +--- +# Source: fabric-orderer/templates/service-orderer.yaml +apiVersion: v1 +kind: Service +metadata: + name: orderer4 + namespace: hyperledger-fabric +spec: + selector: + app: orderer4 + ports: + - name: grpc + port: 7050 + targetPort: 7050 +--- +# Source: fabric-orderer/templates/statefulset-orderer.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: orderer0 + namespace: hyperledger-fabric +spec: + serviceName: orderer0 + replicas: 1 + selector: + matchLabels: + app: orderer0 + template: + metadata: + labels: + app: orderer0 + spec: + containers: + - name: orderer + image: "hyperledger/fabric-orderer:2.5" + imagePullPolicy: IfNotPresent + command: ["orderer"] + ports: + - containerPort: 7050 + name: grpc + env: + - name: ORDERER_GENERAL_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_LISTENPORT + value: "7050" + - name: ORDERER_GENERAL_LOCALMSPID + value: "OrdererMSP" + - name: ORDERER_GENERAL_TLS_ENABLED + value: "true" + - name: ORDERER_GENERAL_TLS_PRIVATEKEY + value: /var/hyperledger/tls/server.key + - name: ORDERER_GENERAL_TLS_CERTIFICATE + value: /var/hyperledger/tls/server.crt + - name: ORDERER_GENERAL_TLS_ROOTCAS + value: "[/var/hyperledger/tls/ca.crt]" + - name: ORDERER_FILELEDGER_LOCATION + value: /var/hyperledger/production + - name: ORDERER_GENERAL_BOOTSTRAPMETHOD + value: "file" + - name: ORDERER_GENERAL_BOOTSTRAPFILE + value: /var/hyperledger/genesis/genesis.block + volumeMounts: + - name: msp + mountPath: /var/hyperledger/msp + - name: tls + mountPath: /var/hyperledger/tls + - name: genesis + mountPath: /var/hyperledger/genesis + - name: data + mountPath: /var/hyperledger/production + volumes: + - name: msp + secret: + secretName: orderer0-msp + - name: tls + secret: + secretName: orderer0-tls + - name: genesis + secret: + secretName: orderer-genesis-block + items: + - key: genesis.block + path: genesis.block + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 2Gi +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: orderer1 + namespace: hyperledger-fabric +spec: + serviceName: orderer1 + replicas: 1 + selector: + matchLabels: + app: orderer1 + template: + metadata: + labels: + app: orderer1 + spec: + containers: + - name: orderer + image: "hyperledger/fabric-orderer:2.5" + imagePullPolicy: IfNotPresent + command: ["orderer"] + ports: + - containerPort: 7050 + name: grpc + env: + - name: ORDERER_GENERAL_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_LISTENPORT + value: "7050" + - name: ORDERER_GENERAL_LOCALMSPID + value: "OrdererMSP" + - name: ORDERER_GENERAL_TLS_ENABLED + value: "true" + - name: ORDERER_GENERAL_TLS_PRIVATEKEY + value: /var/hyperledger/tls/server.key + - name: ORDERER_GENERAL_TLS_CERTIFICATE + value: /var/hyperledger/tls/server.crt + - name: ORDERER_GENERAL_TLS_ROOTCAS + value: "[/var/hyperledger/tls/ca.crt]" + - name: ORDERER_FILELEDGER_LOCATION + value: /var/hyperledger/production + - name: ORDERER_GENERAL_BOOTSTRAPMETHOD + value: "file" + - name: ORDERER_GENERAL_BOOTSTRAPFILE + value: /var/hyperledger/genesis/genesis.block + volumeMounts: + - name: msp + mountPath: /var/hyperledger/msp + - name: tls + mountPath: /var/hyperledger/tls + - name: genesis + mountPath: /var/hyperledger/genesis + - name: data + mountPath: /var/hyperledger/production + volumes: + - name: msp + secret: + secretName: orderer1-msp + - name: tls + secret: + secretName: orderer1-tls + - name: genesis + secret: + secretName: orderer-genesis-block + items: + - key: genesis.block + path: genesis.block + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 2Gi +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: orderer2 + namespace: hyperledger-fabric +spec: + serviceName: orderer2 + replicas: 1 + selector: + matchLabels: + app: orderer2 + template: + metadata: + labels: + app: orderer2 + spec: + containers: + - name: orderer + image: "hyperledger/fabric-orderer:2.5" + imagePullPolicy: IfNotPresent + command: ["orderer"] + ports: + - containerPort: 7050 + name: grpc + env: + - name: ORDERER_GENERAL_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_LISTENPORT + value: "7050" + - name: ORDERER_GENERAL_LOCALMSPID + value: "OrdererMSP" + - name: ORDERER_GENERAL_TLS_ENABLED + value: "true" + - name: ORDERER_GENERAL_TLS_PRIVATEKEY + value: /var/hyperledger/tls/server.key + - name: ORDERER_GENERAL_TLS_CERTIFICATE + value: /var/hyperledger/tls/server.crt + - name: ORDERER_GENERAL_TLS_ROOTCAS + value: "[/var/hyperledger/tls/ca.crt]" + - name: ORDERER_FILELEDGER_LOCATION + value: /var/hyperledger/production + - name: ORDERER_GENERAL_BOOTSTRAPMETHOD + value: "file" + - name: ORDERER_GENERAL_BOOTSTRAPFILE + value: /var/hyperledger/genesis/genesis.block + volumeMounts: + - name: msp + mountPath: /var/hyperledger/msp + - name: tls + mountPath: /var/hyperledger/tls + - name: genesis + mountPath: /var/hyperledger/genesis + - name: data + mountPath: /var/hyperledger/production + volumes: + - name: msp + secret: + secretName: orderer2-msp + - name: tls + secret: + secretName: orderer2-tls + - name: genesis + secret: + secretName: orderer-genesis-block + items: + - key: genesis.block + path: genesis.block + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 2Gi +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: orderer3 + namespace: hyperledger-fabric +spec: + serviceName: orderer3 + replicas: 1 + selector: + matchLabels: + app: orderer3 + template: + metadata: + labels: + app: orderer3 + spec: + containers: + - name: orderer + image: "hyperledger/fabric-orderer:2.5" + imagePullPolicy: IfNotPresent + command: ["orderer"] + ports: + - containerPort: 7050 + name: grpc + env: + - name: ORDERER_GENERAL_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_LISTENPORT + value: "7050" + - name: ORDERER_GENERAL_LOCALMSPID + value: "OrdererMSP" + - name: ORDERER_GENERAL_TLS_ENABLED + value: "true" + - name: ORDERER_GENERAL_TLS_PRIVATEKEY + value: /var/hyperledger/tls/server.key + - name: ORDERER_GENERAL_TLS_CERTIFICATE + value: /var/hyperledger/tls/server.crt + - name: ORDERER_GENERAL_TLS_ROOTCAS + value: "[/var/hyperledger/tls/ca.crt]" + - name: ORDERER_FILELEDGER_LOCATION + value: /var/hyperledger/production + - name: ORDERER_GENERAL_BOOTSTRAPMETHOD + value: "file" + - name: ORDERER_GENERAL_BOOTSTRAPFILE + value: /var/hyperledger/genesis/genesis.block + volumeMounts: + - name: msp + mountPath: /var/hyperledger/msp + - name: tls + mountPath: /var/hyperledger/tls + - name: genesis + mountPath: /var/hyperledger/genesis + - name: data + mountPath: /var/hyperledger/production + volumes: + - name: msp + secret: + secretName: orderer3-msp + - name: tls + secret: + secretName: orderer3-tls + - name: genesis + secret: + secretName: orderer-genesis-block + items: + - key: genesis.block + path: genesis.block + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 2Gi +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: orderer4 + namespace: hyperledger-fabric +spec: + serviceName: orderer4 + replicas: 1 + selector: + matchLabels: + app: orderer4 + template: + metadata: + labels: + app: orderer4 + spec: + containers: + - name: orderer + image: "hyperledger/fabric-orderer:2.5" + imagePullPolicy: IfNotPresent + command: ["orderer"] + ports: + - containerPort: 7050 + name: grpc + env: + - name: ORDERER_GENERAL_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_LISTENPORT + value: "7050" + - name: ORDERER_GENERAL_LOCALMSPID + value: "OrdererMSP" + - name: ORDERER_GENERAL_TLS_ENABLED + value: "true" + - name: ORDERER_GENERAL_TLS_PRIVATEKEY + value: /var/hyperledger/tls/server.key + - name: ORDERER_GENERAL_TLS_CERTIFICATE + value: /var/hyperledger/tls/server.crt + - name: ORDERER_GENERAL_TLS_ROOTCAS + value: "[/var/hyperledger/tls/ca.crt]" + - name: ORDERER_FILELEDGER_LOCATION + value: /var/hyperledger/production + - name: ORDERER_GENERAL_BOOTSTRAPMETHOD + value: "file" + - name: ORDERER_GENERAL_BOOTSTRAPFILE + value: /var/hyperledger/genesis/genesis.block + volumeMounts: + - name: msp + mountPath: /var/hyperledger/msp + - name: tls + mountPath: /var/hyperledger/tls + - name: genesis + mountPath: /var/hyperledger/genesis + - name: data + mountPath: /var/hyperledger/production + volumes: + - name: msp + secret: + secretName: orderer4-msp + - name: tls + secret: + secretName: orderer4-tls + - name: genesis + secret: + secretName: orderer-genesis-block + items: + - key: genesis.block + path: genesis.block + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 2Gi diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml new file mode 100644 index 0000000..e55814e --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml @@ -0,0 +1,15 @@ +{{- range $i := until (.Values.replicaCount | int) }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: orderer{{ $i }}-pvc + namespace: {{ $.Values.namespace }} +spec: + accessModes: + - {{ $.Values.storage.accessMode }} + resources: + requests: + storage: {{ $.Values.storage.size }} +--- +{{- end }} + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml new file mode 100644 index 0000000..954124b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml @@ -0,0 +1,17 @@ +{{- $domain := .Values.domain -}} +{{- $root := . -}} +{{- range $i := until (.Values.replicaCount | int) }} +{{- $mspPath := printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/msp" $domain $i $domain }} +apiVersion: v1 +kind: Secret +metadata: + name: orderer{{ $i }}-msp + namespace: {{ $root.Values.namespace }} +type: Opaque +data: + {{- range $file, $content := $root.Files.Glob (printf "%s/*" $mspPath) }} + {{ base $file }}: {{ $content | b64enc }} + {{- end }} +--- +{{- end }} + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml new file mode 100644 index 0000000..649f997 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml @@ -0,0 +1,16 @@ +{{- $domain := .Values.domain -}} +{{- $root := . -}} +{{- range $i := until (.Values.replicaCount | int) }} +apiVersion: v1 +kind: Secret +metadata: + name: orderer{{ $i }}-tls + namespace: {{ $root.Values.namespace }} +type: Opaque +data: + server.crt: {{ $root.Files.Get (printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/tls/server.crt" $domain $i $domain) | b64enc }} + server.key: {{ $root.Files.Get (printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/tls/server.key" $domain $i $domain) | b64enc }} + ca.crt: {{ $root.Files.Get (printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/tls/ca.crt" $domain $i $domain) | b64enc }} +--- +{{- end }} + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml new file mode 100644 index 0000000..d739205 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml @@ -0,0 +1,16 @@ +{{- range .Values.orderer.nodes }} +apiVersion: v1 +kind: Service +metadata: + name: {{ .name }} + namespace: {{ .namespace }} +spec: + selector: + app: {{ .name }} + ports: + - name: grpc + port: 7050 + targetPort: 7050 +--- +{{- end }} + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml new file mode 100644 index 0000000..ccef110 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml @@ -0,0 +1,78 @@ +{{- range .Values.orderer.nodes }} +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ .name }} + namespace: {{ .namespace }} +spec: + serviceName: {{ .name }} + replicas: 1 + selector: + matchLabels: + app: {{ .name }} + template: + metadata: + labels: + app: {{ .name }} + spec: + containers: + - name: orderer + image: "{{ $.Values.image.repository }}:{{ $.Values.image.tag }}" + imagePullPolicy: {{ $.Values.image.pullPolicy }} + command: ["orderer"] + ports: + - containerPort: 7050 + name: grpc + env: + - name: ORDERER_GENERAL_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_LISTENPORT + value: "7050" + - name: ORDERER_GENERAL_LOCALMSPID + value: "{{ $.Values.orderer.mspID }}" + - name: ORDERER_GENERAL_TLS_ENABLED + value: "true" + - name: ORDERER_GENERAL_TLS_PRIVATEKEY + value: /var/hyperledger/tls/server.key + - name: ORDERER_GENERAL_TLS_CERTIFICATE + value: /var/hyperledger/tls/server.crt + - name: ORDERER_GENERAL_TLS_ROOTCAS + value: "[/var/hyperledger/tls/ca.crt]" + - name: ORDERER_FILELEDGER_LOCATION + value: /var/hyperledger/production + - name: ORDERER_GENERAL_BOOTSTRAPMETHOD + value: "file" + - name: ORDERER_GENERAL_BOOTSTRAPFILE + value: /var/hyperledger/genesis/genesis.block + volumeMounts: + - name: msp + mountPath: /var/hyperledger/msp + - name: tls + mountPath: /var/hyperledger/tls + - name: genesis + mountPath: /var/hyperledger/genesis + - name: data + mountPath: /var/hyperledger/production + volumes: + - name: msp + secret: + secretName: {{ .mspSecret }} + - name: tls + secret: + secretName: {{ .tlsSecret }} + - name: genesis + secret: + secretName: {{ $.Values.genesis.secretName }} + items: + - key: {{ $.Values.genesis.fileKey }} + path: genesis.block + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: {{ $.Values.persistence.size }} +{{- end }} + diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml new file mode 100644 index 0000000..689eb13 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml @@ -0,0 +1,38 @@ +namespace: hyperledger-fabric + +image: + repository: hyperledger/fabric-orderer + tag: 2.5 + pullPolicy: IfNotPresent + +orderer: + mspID: OrdererMSP + nodes: + - name: orderer0 + namespace: hyperledger-fabric + mspSecret: orderer0-msp + tlsSecret: orderer0-tls + - name: orderer1 + namespace: hyperledger-fabric + mspSecret: orderer1-msp + tlsSecret: orderer1-tls + - name: orderer2 + namespace: hyperledger-fabric + mspSecret: orderer2-msp + tlsSecret: orderer2-tls + - name: orderer3 + namespace: hyperledger-fabric + mspSecret: orderer3-msp + tlsSecret: orderer3-tls + - name: orderer4 + namespace: hyperledger-fabric + mspSecret: orderer4-msp + tlsSecret: orderer4-tls + +genesis: + secretName: orderer-genesis-block + fileKey: genesis.block + +persistence: + size: 2Gi + diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/Chart.yaml new file mode 100644 index 0000000..9d2839b --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: greenstand-ca +description: Hyperledger Fabric intermediate CA for Greenstand +type: application +version: 0.1.0 +appVersion: 1.5.12 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp new file mode 100644 index 0000000..59d10c5 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp @@ -0,0 +1,40 @@ +name: greenstand-ca +namespace: hlf-ca + +image: + repository: hyperledger/fabric-ca + tag: 1.5.12 + pullPolicy: IfNotPresent + +port: 7054 + +storage: + accessMode: ReadWriteOnce + size: 2Gi + storageClass: do-block-storage + pvcName: pvc-greenstand-ca + +parentID: greenstand-ca +parentSecret: greenstandcapw +parentHost: root-ca.hlf-ca.svc.cluster.local + +csr: + cn: greenstand-ca + hosts: + - greenstand-ca + - greenstand-ca.hlf-ca.svc.cluster.local + - localhost + +tls: + enabled: true + secretName: greenstand-ca-tls-cert + +msp: + secretName: greenstand-ca-msp + +bootstrapUser: greenstand-ca +bootstrapPassword: greenstandcapw + +service: + port: 7054 + diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml new file mode 100644 index 0000000..ed975b1 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml @@ -0,0 +1,46 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + - name: FABRIC_CA_SERVER_PARENT_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.intermediateCA.name }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp new file mode 100644 index 0000000..59e17aa --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp @@ -0,0 +1,63 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + # Set the Fabric CA server's home directory within the container. + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + # Set the logical name of the CA. This is used as the + # certificate "Common Name" and to tag issued certificates. + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + # Configure the listening port of the CA server. + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + # Configure the URL of the parent CA. When specified, the + # intermediate CA's certificate will be signed by the parent CA + # instead of being self‑signed. The parent URL must embed + # credentials registered at the parent CA (hf.IntermediateCA=true) + - name: FABRIC_CA_SERVER_PARENT_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + # Enable TLS for the CA server. Without TLS, the server will + # listen on HTTP and be vulnerable to network attacks【414858305040423†L546-L551】. + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + # Provide a list of hostnames for the CSR. The Fabric CA will + # embed these values in the certificate's SAN extension so that + # clients can verify the certificate when connecting via any of + # these names【414858305040423†L330-L333】. + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + volumeMounts: + # Persist the CA's state (keys, certificates, configuration) in + # a persistent volume. Without a volume, data will be lost if the + # pod is rescheduled. + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.intermediateCA.name }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp-startingPoint b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp-startingPoint new file mode 100644 index 0000000..ed975b1 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp-startingPoint @@ -0,0 +1,46 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + - name: FABRIC_CA_SERVER_PARENT_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.intermediateCA.name }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp1 b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp1 new file mode 100644 index 0000000..ff5f0b3 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkp1 @@ -0,0 +1,64 @@ +{{- if .Values.intermediateCA.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_PARENT_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + - name: FABRIC_CA_SERVER_TLS_CERTFILE + value: /etc/hyperledger/fabric-ca-server-config/cert.pem + - name: FABRIC_CA_SERVER_TLS_KEYFILE + value: /etc/hyperledger/fabric-ca-server-config/key.pem + - name: FABRIC_CA_SERVER_TLS_CHAINFILE + value: /etc/hyperledger/fabric-ca-server-config/ca-chain.pem + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + - name: tls-cert + mountPath: /etc/hyperledger/fabric-ca-server-config + readOnly: true + - name: ca-msp + mountPath: /etc/hyperledger/fabric-ca-server/msp + readOnly: false + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.intermediateCA.name }} + - name: tls-cert + secret: + secretName: {{ .Values.intermediateCA.tls.secretName }} + - name: ca-msp + secret: + secretName: {{ .Values.intermediateCA.msp.secretName }} +{{- end }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkpios b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkpios new file mode 100644 index 0000000..e8978ad --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/deployment.yaml.bkpios @@ -0,0 +1,57 @@ +{{- if .Values.intermediateCA.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_CSR_CN + value: {{ .Values.intermediateCA.csr.cn }} + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + - name: FABRIC_CA_SERVER_INTERMEDIATE_TLS_CERTFILES + value: "/etc/hyperledger/fabric-ca-server/root-tls-cert.pem" + - name: FABRIC_CA_SERVER_INTERMEDIATE_PARENTSERVER_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + - name: root-tls-cert + mountPath: /etc/hyperledger/fabric-ca-server/root-tls-cert.pem + subPath: root-tls-cert.pem + readOnly: true + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: {{ .Values.intermediateCA.storage.pvcName }} + - name: root-tls-cert + secret: + secretName: {{ .Values.intermediateCA.tls.secretName }} +{{- end }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml new file mode 100644 index 0000000..2d3c8f6 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Values.intermediateCA.storage.pvcName }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + accessModes: + - {{ .Values.intermediateCA.storage.accessMode | quote }} + resources: + requests: + storage: {{ .Values.intermediateCA.storage.size | quote }} + storageClassName: {{ .Values.intermediateCA.storage.storageClass | quote }} +{{- end }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml.bkp-startingPoint b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml.bkp-startingPoint new file mode 100644 index 0000000..0e654d6 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/pvc.yaml.bkp-startingPoint @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-{{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + accessModes: + - {{ .Values.intermediateCA.storage.accessMode }} + resources: + requests: + storage: {{ .Values.intermediateCA.storage.size }} + storageClassName: {{ .Values.intermediateCA.storage.storageClass }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/service.yaml new file mode 100644 index 0000000..da5f903 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/templates/service.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + selector: + app: {{ .Values.intermediateCA.name }} + ports: + - name: ca-port + port: {{ .Values.intermediateCA.port }} + targetPort: ca-port +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml new file mode 100644 index 0000000..1698aa9 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml @@ -0,0 +1,41 @@ +intermediateCA: + enabled: true + name: greenstand-ca + namespace: hlf-ca + + image: + repository: hyperledger/fabric-ca + tag: 1.5.12 + pullPolicy: IfNotPresent + + port: 7054 + + storage: + accessMode: ReadWriteOnce + size: 2Gi + storageClass: do-block-storage + pvcName: greenstand-ca-pvc + + parentID: greenstand-ca + parentSecret: greenstandcapw + parentHost: root-ca.hlf-ca.svc.cluster.local + + csr: + cn: greenstand-ca + hosts: + - greenstand-ca + - greenstand-ca.hlf-ca.svc.cluster.local + - localhost + + tls: + enabled: true + secretName: root-tls-cert # This must match the secret with the root ca-cert.pem + + msp: + secretName: greenstand-ca-msp + + bootstrapUser: greenstand-ca + bootstrapPassword: greenstandcapw + + service: + port: 7054 diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint new file mode 100644 index 0000000..9d73e63 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint @@ -0,0 +1,41 @@ +intermediateCA: + enabled: true + name: greenstand-ca + namespace: hlf-ca + + image: + repository: hyperledger/fabric-ca + tag: 1.5.12 + pullPolicy: IfNotPresent + + port: 7054 + + storage: + accessMode: ReadWriteOnce + size: 2Gi + storageClass: do-block-storage + pvcName: pvc-greenstand-ca # Added from second block + + parentID: greenstand-ca + parentSecret: greenstandcapw + parentHost: root-ca.hlf-ca.svc.cluster.local + + csr: + cn: greenstand-ca # Added from second block + hosts: + - greenstand-ca + - greenstand-ca.hlf-ca.svc.cluster.local + - localhost + + tls: + enabled: true + secretName: greenstand-ca-tls-cert + + msp: + secretName: greenstand-ca-msp + + bootstrapUser: greenstand-ca + bootstrapPassword: greenstandcapw + + service: + port: 7054 diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml new file mode 100644 index 0000000..e8d5d41 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: greenstand-peer +description: Hyperledger Fabric Peer Helm chart for Greenstand organization +type: application +version: 0.1.0 +appVersion: "2.5.0" diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl new file mode 100644 index 0000000..a9d308a --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl @@ -0,0 +1,3 @@ +{{- define "greenstand-peer.fullname" -}} +{{ printf "%s" .Release.Name }} +{{- end }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml new file mode 100644 index 0000000..811b444 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml @@ -0,0 +1,145 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ .Values.peer.name }} + namespace: {{ .Values.peer.namespace }} + labels: + app: {{ .Values.peer.name }} +spec: + serviceName: {{ .Values.peer.name }} + replicas: 1 + selector: + matchLabels: + app: {{ .Values.peer.name }} + template: + metadata: + labels: + app: {{ .Values.peer.name }} + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: {{ .Values.peer.name }} + image: "{{ .Values.peer.image.repository }}:{{ .Values.peer.image.tag }}" + imagePullPolicy: {{ .Values.peer.image.pullPolicy }} + ports: + - containerPort: {{ .Values.peer.ports.peer }} + name: peer + - containerPort: {{ .Values.peer.ports.chaincode }} + name: chaincode + - containerPort: {{ .Values.peer.ports.operations }} + name: operations + env: + - name: CORE_PEER_ID + value: {{ .Values.peer.peerID }} + - name: CORE_PEER_LOCALMSPID + value: {{ .Values.peer.mspID }} + - name: CORE_PEER_ADDRESS + value: "{{ .Values.peer.name }}:{{ .Values.peer.ports.peer }}" + - name: CORE_PEER_GOSSIP_EXTERNALENDPOINT + value: {{ .Values.peer.gossip.externalEndpoint }} + - name: CORE_PEER_GOSSIP_BOOTSTRAP + value: {{ .Values.peer.gossip.bootstrap }} + - name: CORE_PEER_MSPCONFIGPATH + value: {{ .Values.peer.msp.configPath }} + - name: CORE_PEER_TLS_ENABLED + value: "{{ .Values.peer.tls.enabled }}" + - name: CORE_PEER_TLS_CERT_FILE + value: {{ printf "%s/%s" .Values.peer.tls.configPath .Values.peer.tls.certFile }} + - name: CORE_PEER_TLS_KEY_FILE + value: {{ printf "%s/%s" .Values.peer.tls.configPath .Values.peer.tls.keyFile }} + - name: CORE_PEER_TLS_ROOTCERT_FILE + value: "/etc/hyperledger/fabric/msp/cacerts/greenstand-ca-hlf-ca-svc-cluster-local-7054-greenstand-ca.pem" + - name: FABRIC_LOGGING_SPEC + value: DEBUG +{{- with .Values.peer.env }} +{{- range . }} + - name: {{ .name }} + value: {{ .value | quote }} +{{- end }} +{{- end }} + volumeMounts: + - name: signcerts + mountPath: /etc/hyperledger/fabric/msp/signcerts + readOnly: true + - name: cacerts + mountPath: /etc/hyperledger/fabric/msp/cacerts + readOnly: true + - name: config + mountPath: /etc/hyperledger/fabric/msp/config.yaml + subPath: config.yaml + readOnly: true + - name: keystore + mountPath: /etc/hyperledger/fabric/msp/keystore + readOnly: false + - name: tls + mountPath: {{ .Values.peer.tls.configPath }} + readOnly: true + - name: admincerts + mountPath: /etc/hyperledger/fabric/msp/admincerts + readOnly: true + - name: tlscacerts + mountPath: /etc/hyperledger/fabric/msp/tlscacerts + readOnly: true + - name: tlsintermediatecerts + mountPath: /etc/hyperledger/fabric/msp/tlsintermediatecerts + readOnly: true + - name: peer-data + mountPath: /var/hyperledger/production + readOnly: false + volumes: + - name: signcerts + secret: + secretName: {{ .Values.peer.msp.secret }} + items: + - key: cert.pem + path: cert.pem + - name: cacerts + secret: + secretName: {{ .Values.peer.msp.secret }} + items: + - key: greenstand-ca-hlf-ca-svc-cluster-local-7054-greenstand-ca.pem + path: greenstand-ca-hlf-ca-svc-cluster-local-7054-greenstand-ca.pem + - name: config + secret: + secretName: {{ .Values.peer.msp.secret }} + items: + - key: config.yaml + path: config.yaml + - name: keystore + secret: + secretName: {{ .Values.peer.msp.secret }} + items: + - key: key.pem + path: key.pem + - name: tls + secret: + secretName: {{ .Values.peer.tls.secret }} + defaultMode: 420 + - name: admincerts + secret: + secretName: {{ .Values.peer.msp.secret }} + items: + - key: cert.pem + path: admincert.pem + - name: tlscacerts + secret: + secretName: {{ .Values.peer.tls.secret }} + items: + - key: ca.crt + path: tlsroot.pem + - name: tlsintermediatecerts + secret: + secretName: {{ .Values.peer.tls.secret }} + items: + - key: ca.crt + path: tlsintermediate.pem + volumeClaimTemplates: + - metadata: + name: peer-data + spec: + accessModes: + - ReadWriteOnce + storageClassName: {{ .Values.peer.storage.storageClass }} + resources: + requests: + storage: {{ .Values.peer.storage.size }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml new file mode 100644 index 0000000..2ed0018 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-{{ .Values.peer.name }} + namespace: {{ .Values.peer.namespace }} +spec: + accessModes: + - ReadWriteOnce + storageClassName: {{ .Values.peer.storage.storageClass }} + resources: + requests: + storage: {{ .Values.peer.storage.size }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml new file mode 100644 index 0000000..dd3fab2 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.peer.name }} + namespace: {{ .Values.peer.namespace }} + labels: + app: {{ .Values.peer.name }} +spec: + type: ClusterIP + ports: + - name: peer + port: {{ .Values.peer.ports.peer }} + targetPort: {{ .Values.peer.ports.peer }} + - name: chaincode + port: {{ .Values.peer.ports.chaincode }} + targetPort: {{ .Values.peer.ports.chaincode }} + - name: operations + port: {{ .Values.peer.ports.operations }} + targetPort: {{ .Values.peer.ports.operations }} + selector: + app: {{ .Values.peer.name }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml new file mode 100644 index 0000000..0f106c9 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml @@ -0,0 +1,53 @@ +peer: + name: greenstand-peer0 + peerID: peer0.greenstand.v2 + mspID: GreenstandMSP + org: greenstand + namespace: hlf-greenstand-peer + + image: + repository: hyperledger/fabric-peer + tag: 2.5.7 + pullPolicy: IfNotPresent + + storage: + size: 5Gi + storageClass: do-block-storage + + msp: + secret: peer0-greenstand-v2-msp + configPath: /etc/hyperledger/fabric/msp + certFile: cert.pem + keyFile: key.pem + caCertFile: ca.pem + + tls: + enabled: true + secret: peer0-greenstand-v2-tls + certFile: cert.pem + keyFile: key.pem + caCertFile: ca.crt + configPath: /etc/hyperledger/fabric/tls + + ports: + peer: 7051 + chaincode: 7052 + operations: 9443 + + gossip: + bootstrap: peer0.greenstand.hlf-greenstand-peer.svc.cluster.local:7051 + externalEndpoint: peer0.greenstand.hlf-greenstand-peer.svc.cluster.local:7051 + + env: + - name: CORE_BCCSP_SW_FILEKEYSTORE_KEYSTORE + value: /etc/hyperledger/fabric/msp + - name: CORE_BCCSP_DEFAULT + value: SW + - name: CORE_PEER_MSPCERT_FILE + value: /etc/hyperledger/fabric/msp/cert.pem + - name: CORE_PEER_MSPKEY_FILE + value: /etc/hyperledger/fabric/msp/key.pem + - name: CORE_PEER_MSPCACERT_FILE + value: /etc/hyperledger/fabric/msp/ca.pem + - name: CORE_PEER_CHAINCODELISTENADDRESS + value: "0.0.0.0:7052" diff --git a/hyperledger-fabric-network/ca/helm-charts/investor-ca/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/investor-ca/Chart.yaml new file mode 100644 index 0000000..7c51fd4 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/investor-ca/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: investor-ca +description: Hyperledger Fabric intermediate CA for Investor +type: application +version: 0.1.0 +appVersion: 1.5.12 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/deployment.yaml new file mode 100644 index 0000000..90ee72f --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/deployment.yaml @@ -0,0 +1,46 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + - name: FABRIC_CA_SERVER_PARENT_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.intermediateCA.name }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/pvc.yaml new file mode 100644 index 0000000..0e654d6 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/pvc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-{{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + accessModes: + - {{ .Values.intermediateCA.storage.accessMode }} + resources: + requests: + storage: {{ .Values.intermediateCA.storage.size }} + storageClassName: {{ .Values.intermediateCA.storage.storageClass }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/service.yaml new file mode 100644 index 0000000..da5f903 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/investor-ca/templates/service.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + selector: + app: {{ .Values.intermediateCA.name }} + ports: + - name: ca-port + port: {{ .Values.intermediateCA.port }} + targetPort: ca-port +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/investor-ca/values.yaml b/hyperledger-fabric-network/ca/helm-charts/investor-ca/values.yaml new file mode 100644 index 0000000..e646784 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/investor-ca/values.yaml @@ -0,0 +1,43 @@ +# Default values for the Investor intermediate CA chart. + +intermediateCA: + enabled: true + name: investor-ca + namespace: hlf-ca + + image: + repository: hyperledger/fabric-ca + tag: 1.5.12 + pullPolicy: IfNotPresent + + port: 7054 + + storage: + accessMode: ReadWriteOnce + size: 2Gi + storageClass: do-block-storage + pvcName: pvc-investor-ca # Added from second block + + parentID: investor-ca + parentSecret: investorcapw + parentHost: root-ca.hlf-ca.svc.cluster.local + + csr: + cn: investor-ca # Added from second block + hosts: + - investor-ca + - investor-ca.hlf-ca.svc.cluster.local + - localhost + + tls: + enabled: true + secretName: investor-ca-tls-cert + + msp: + secretName: investor-ca-msp + + bootstrapUser: investor-ca + bootstrapPassword: investorcapw + + service: + port: 7054 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/root-ca/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/root-ca/Chart.yaml new file mode 100644 index 0000000..a95e77d --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/root-ca/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: fabric-ca +description: Fabric CA deployment chart for Hyperledger Fabric Root and Intermediate CAs +type: application +version: 0.1.0 +appVersion: "1.5.12" diff --git a/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/deployment.yaml new file mode 100644 index 0000000..bbb46c1 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/deployment.yaml @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.rootCA.name }} + namespace: {{ .Values.rootCA.namespace }} + labels: + app: {{ .Values.rootCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.rootCA.name }} + template: + metadata: + labels: + app: {{ .Values.rootCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.rootCA.image.repository }}:{{ .Values.rootCA.image.tag }}" + imagePullPolicy: {{ .Values.rootCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.rootCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.rootCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.rootCA.port }}" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "root-ca,root-ca.hlf-ca.svc.cluster.local,localhost" + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.rootCA.name }} diff --git a/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/pvc.yaml new file mode 100644 index 0000000..3ee8fcf --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/pvc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-{{ .Values.rootCA.name }} + namespace: {{ .Values.rootCA.namespace }} + labels: + app: {{ .Values.rootCA.name }} +spec: + accessModes: + - {{ .Values.rootCA.storage.accessMode }} + resources: + requests: + storage: {{ .Values.rootCA.storage.size }} + storageClassName: {{ .Values.rootCA.storage.storageClass }} diff --git a/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/service.yaml new file mode 100644 index 0000000..7f4343a --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/root-ca/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.rootCA.name }} + namespace: {{ .Values.rootCA.namespace }} + labels: + app: {{ .Values.rootCA.name }} +spec: + selector: + app: {{ .Values.rootCA.name }} + ports: + - protocol: TCP + port: {{ .Values.rootCA.port }} + targetPort: ca-port + type: ClusterIP diff --git a/hyperledger-fabric-network/ca/helm-charts/root-ca/values.yaml b/hyperledger-fabric-network/ca/helm-charts/root-ca/values.yaml new file mode 100644 index 0000000..59cc9ae --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/root-ca/values.yaml @@ -0,0 +1,28 @@ +rootCA: + enabled: true + name: root-ca + namespace: hlf-ca + + image: + repository: hyperledger/fabric-ca + tag: 1.5.12 + pullPolicy: IfNotPresent + + port: 7054 + + tlsSecret: root-ca-tls-cert + + configMountPath: /etc/hyperledger/fabric-ca-server-config + + storage: + accessMode: ReadWriteOnce + size: 2Gi + storageClass: do-block-storage + + # ? Add this section + csr: + cn: root-ca + hosts: + - root-ca + - root-ca.hlf-ca.svc.cluster.local + - localhost diff --git a/hyperledger-fabric-network/ca/helm-charts/verifier-ca/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/Chart.yaml new file mode 100644 index 0000000..94598b9 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: verifier-ca +description: Hyperledger Fabric intermediate CA for Verifier +type: application +version: 0.1.0 +appVersion: 1.5.12 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/deployment.yaml new file mode 100644 index 0000000..90ee72f --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/deployment.yaml @@ -0,0 +1,46 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.intermediateCA.name }} + template: + metadata: + labels: + app: {{ .Values.intermediateCA.name }} + spec: + containers: + - name: fabric-ca + image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" + imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} + ports: + - containerPort: {{ .Values.intermediateCA.port }} + name: ca-port + env: + - name: FABRIC_CA_HOME + value: /etc/hyperledger/fabric-ca-server + - name: FABRIC_CA_SERVER_CA_NAME + value: {{ .Values.intermediateCA.name }} + - name: FABRIC_CA_SERVER_PORT + value: "{{ .Values.intermediateCA.port }}" + - name: FABRIC_CA_SERVER_PARENT_URL + value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" + - name: FABRIC_CA_SERVER_TLS_ENABLED + value: "true" + - name: FABRIC_CA_SERVER_CSR_HOSTS + value: "{{ join "," .Values.intermediateCA.csr.hosts }}" + volumeMounts: + - name: fabric-ca-data + mountPath: /etc/hyperledger/fabric-ca-server + volumes: + - name: fabric-ca-data + persistentVolumeClaim: + claimName: pvc-{{ .Values.intermediateCA.name }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/pvc.yaml new file mode 100644 index 0000000..0e654d6 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/pvc.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-{{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + accessModes: + - {{ .Values.intermediateCA.storage.accessMode }} + resources: + requests: + storage: {{ .Values.intermediateCA.storage.size }} + storageClassName: {{ .Values.intermediateCA.storage.storageClass }} +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/service.yaml new file mode 100644 index 0000000..da5f903 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/templates/service.yaml @@ -0,0 +1,16 @@ +{{- if .Values.intermediateCA.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.intermediateCA.name }} + namespace: {{ .Values.intermediateCA.namespace }} + labels: + app: {{ .Values.intermediateCA.name }} +spec: + selector: + app: {{ .Values.intermediateCA.name }} + ports: + - name: ca-port + port: {{ .Values.intermediateCA.port }} + targetPort: ca-port +{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/verifier-ca/values.yaml b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/values.yaml new file mode 100644 index 0000000..a19a876 --- /dev/null +++ b/hyperledger-fabric-network/ca/helm-charts/verifier-ca/values.yaml @@ -0,0 +1,41 @@ +intermediateCA: + enabled: true + name: verifier-ca + namespace: hlf-ca + + image: + repository: hyperledger/fabric-ca + tag: 1.5.12 + pullPolicy: IfNotPresent + + port: 7054 + + storage: + accessMode: ReadWriteOnce + size: 2Gi + storageClass: do-block-storage + pvcName: pvc-verifier-ca # Added from second block + + parentID: verifier-ca + parentSecret: verifiercapw + parentHost: root-ca.hlf-ca.svc.cluster.local + + csr: + cn: verifier-ca # Added from second block + hosts: + - verifier-ca + - verifier-ca.hlf-ca.svc.cluster.local + - localhost + + tls: + enabled: true + secretName: verifier-ca-tls-cert + + msp: + secretName: verifier-ca-msp + + bootstrapUser: verifier-ca + bootstrapPassword: verifiercapw + + service: + port: 7054 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/scripts/backup-ca.sh b/hyperledger-fabric-network/ca/scripts/backup-ca.sh new file mode 100644 index 0000000..72c8a99 --- /dev/null +++ b/hyperledger-fabric-network/ca/scripts/backup-ca.sh @@ -0,0 +1,162 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ------------------------------------------------------------------------------ +# Hyperledger Fabric CA backup script +# - Backs up CA server data dirs from pods (DB, certs, CSR, keys) +# - Backs up fabric-ca-client enrollments from client pod +# - Backs up K8s secrets & configmaps in the CA namespace +# - Backs up Helm release configs in the CA namespace +# +# Usage: +# ./backup-ca.sh [--namespace hlf-ca] [--client-pod fabric-ca-client-0] \ +# [--label "app.kubernetes.io/component=fabric-ca"] +# +# Result: +# ./fabric-ca-backup-YYYY-MM-DD_HHMMSS.tgz +# +# Notes: +# - Requires: kubectl, jq, helm (for Helm release manifests) +# - The script is read-only on the cluster; it just fetches and packages. +# ------------------------------------------------------------------------------ + +NS="${NS:-hlf-ca}" +CLIENT_POD="${CLIENT_POD:-fabric-ca-client-0}" +CA_LABEL="${CA_LABEL:-app in (root-ca,greenstand-ca,cbo-ca,investor-ca,verifier-ca)}" +OUTDIR="${OUTDIR:-./backup-ca}" +STAMP="$(date +%F_%H%M%S)" +ARCHIVE="fabric-ca-backup-${STAMP}.tgz" + +# Parse args (tiny parser) +while [[ $# -gt 0 ]]; do + case "$1" in + --namespace|-n) NS="$2"; shift 2;; + --client-pod) CLIENT_POD="$2"; shift 2;; + --label) CA_LABEL="$2"; shift 2;; + --outdir) OUTDIR="$2"; shift 2;; + -h|--help) + grep -E '^# ' "$0" | sed 's/^# //' + exit 0;; + *) + echo "Unknown arg: $1" >&2; exit 1;; + esac +done + +echo "Namespace : $NS" +echo "CA selector label : $CA_LABEL" +echo "CA client pod : $CLIENT_POD" +echo "Output dir : $OUTDIR" +echo + +mkdir -p "$OUTDIR" + +# ------------------------------------------------------------------------------ +# 1) Discover CA server pods (Root + Intermediate CAs) +# ------------------------------------------------------------------------------ +echo ">> Discovering CA pods in $NS ..." +mapfile -t CA_PODS < <(kubectl -n "$NS" get pods -l "$CA_LABEL" -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}') +if [[ "${#CA_PODS[@]}" -eq 0 ]]; then + echo "No CA pods found with label: $CA_LABEL in namespace: $NS" >&2 + exit 1 +fi +printf " Found CA pods:\n"; printf " - %s\n" "${CA_PODS[@]}"; echo + +# ------------------------------------------------------------------------------ +# 2) Backup CA server data from each CA pod +# Common locations (adjust if your container image differs): +# - /etc/hyperledger/fabric-ca-server (config, certs, db) +# - /data/hyperledger/fabric-ca-server (PVC mount in many charts) +# ------------------------------------------------------------------------------ +for pod in "${CA_PODS[@]}"; do + echo ">> Backing up server data from pod: $pod" + + # Use tar-from-pod to preserve perms & symlinks + TMP_DIR="$(mktemp -d)" + ( + set -x + # Try both common paths; ignore if missing + kubectl -n "$NS" exec "$pod" -- sh -lc 'tar -C / -czf - \ + etc/hyperledger/fabric-ca-server 2>/dev/null || true' > "${TMP_DIR}/server-etc.tgz" + kubectl -n "$NS" exec "$pod" -- sh -lc 'tar -C / -czf - \ + data/hyperledger/fabric-ca-server 2>/dev/null || true' > "${TMP_DIR}/server-data.tgz" + ) + + DEST_DIR="${OUTDIR}/${pod}" + mkdir -p "$DEST_DIR" + # Store tarballs raw (so we can untar to exact paths on restore) + mv "${TMP_DIR}/server-etc.tgz" "${DEST_DIR}/server-etc.tgz" + mv "${TMP_DIR}/server-data.tgz" "${DEST_DIR}/server-data.tgz" + rm -rf "$TMP_DIR" + + echo " Saved: ${DEST_DIR}/server-etc.tgz, server-data.tgz" +done +echo + +# ------------------------------------------------------------------------------ +# 3) Backup the fabric-ca-client enrollments +# Typical path: /data/hyperledger/fabric-ca-client +# (Your earlier logs confirm this path.) +# ------------------------------------------------------------------------------ +echo ">> Backing up fabric-ca-client enrollments from pod: $CLIENT_POD" +if kubectl -n "$NS" get pod "$CLIENT_POD" >/dev/null 2>&1; then + kubectl -n "$NS" exec "$CLIENT_POD" -- sh -lc 'tar -C / -czf - data/hyperledger/fabric-ca-client' \ + > "${OUTDIR}/fabric-ca-client.tgz" + echo " Saved: ${OUTDIR}/fabric-ca-client.tgz" +else + echo " WARN: client pod $CLIENT_POD not found; skipping client enrollments" +fi +echo + +# ------------------------------------------------------------------------------ +# 4) Backup Kubernetes secrets & configmaps in CA namespace +# (This captures TLS certs/keys, CA configs, issuers, etc.) +# ------------------------------------------------------------------------------ +echo ">> Exporting all secrets & configmaps in namespace: $NS" +kubectl -n "$NS" get secret -o yaml > "${OUTDIR}/k8s-secrets-${NS}.yaml" +kubectl -n "$NS" get cm -o yaml > "${OUTDIR}/k8s-configmaps-${NS}.yaml" +echo " Saved: k8s-secrets-${NS}.yaml, k8s-configmaps-${NS}.yaml" +echo + +# ------------------------------------------------------------------------------ +# 5) Backup Helm release configs for the namespace (if helm is in use here) +# ------------------------------------------------------------------------------ +if command -v helm >/dev/null 2>&1; then + echo ">> Capturing Helm releases in $NS" + mapfile -t HELM_RELEASES < <(helm list -n "$NS" -o json | jq -r '.[].name') + if [[ "${#HELM_RELEASES[@]}" -gt 0 ]]; then + for rel in "${HELM_RELEASES[@]}"; do + mkdir -p "${OUTDIR}/helm-releases/${rel}" + # Get history & manifest + helm history "$rel" -n "$NS" -o yaml > "${OUTDIR}/helm-releases/${rel}/history.yaml" || true + helm get all "$rel" -n "$NS" > "${OUTDIR}/helm-releases/${rel}/all.txt" || true + # If you store Helm release objects as secrets, grab them too: + kubectl -n "$NS" get secret -l "owner=helm,name=${rel}" -o yaml \ + > "${OUTDIR}/helm-releases/${rel}/release-secrets.yaml" || true + done + echo " Saved Helm release details under ${OUTDIR}/helm-releases/" + else + echo " No Helm releases found in ${NS}." + fi +else + echo ">> helm not found in PATH; skipping Helm release capture." +fi +echo + +# ------------------------------------------------------------------------------ +# 6) Sanity: list what we collected +# ------------------------------------------------------------------------------ +echo ">> Collected artifacts:" +( cd "$OUTDIR" && find . -maxdepth 3 -type f | sed 's@^\./@@' | sort ) + +# ------------------------------------------------------------------------------ +# 7) Package +# ------------------------------------------------------------------------------ +echo +echo ">> Creating archive: ${ARCHIVE}" +tar -C "$(dirname "$OUTDIR")" -czf "$ARCHIVE" "$(basename "$OUTDIR")" + +echo +echo "✅ CA backup complete:" +echo " $(pwd)/${ARCHIVE}" +echo " (Keep this archive outside Git; rotate & encrypt as needed.)" + diff --git a/hyperledger-fabric-network/ca/scripts/create-ca-secrets.sh b/hyperledger-fabric-network/ca/scripts/create-ca-secrets.sh new file mode 100644 index 0000000..8990c17 --- /dev/null +++ b/hyperledger-fabric-network/ca/scripts/create-ca-secrets.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Create Kubernetes secrets for ICA MSP and TLS +set -e + +NAMESPACE="hlf-ca" +ICAS=("greenstand-ca" "cbo-ca" "investor-ca" "verifier-ca") +BASE_PATH="/root/hyperledger-fabric-network" + +echo "🔐 Creating Kubernetes secrets for each Intermediate CA..." + +for ICA in "${ICAS[@]}"; do + ICA_DIR="${BASE_PATH}/${ICA}" + + MSP_DIR="${ICA_DIR}/msp" + TLS_DIR="${ICA_DIR}/tls" + + echo "📦 Creating secrets for $ICA..." + + TLS_CA=$(find ${TLS_DIR}/tlscacerts -name "*.pem" 2>/dev/null) + TLS_CERT="${TLS_DIR}/signcerts/cert.pem" + TLS_KEY=$(find ${TLS_DIR}/keystore -name "*.pem" | head -n 1) + + if [[ -f "$TLS_CA" && -f "$TLS_CERT" && -f "$TLS_KEY" ]]; then + kubectl create secret generic ${ICA}-tls-cert \ + --from-file=ca.crt=$TLS_CA \ + --from-file=server.crt=$TLS_CERT \ + --from-file=server.key=$TLS_KEY \ + -n ${NAMESPACE} --dry-run=client -o yaml | kubectl apply -f - + echo "✅ TLS secret created for $ICA" + else + echo "⚠️ Skipping TLS secret for $ICA — missing files" + fi + + # MSP Secret + if [[ -d "$MSP_DIR" ]]; then + kubectl create secret generic ${ICA}-msp-cert \ + --from-file=signcerts=${MSP_DIR}/signcerts \ + --from-file=keystore=${MSP_DIR}/keystore \ + --from-file=cacerts=${MSP_DIR}/cacerts \ + --from-file=config.yaml=${MSP_DIR}/config.yaml \ + -n ${NAMESPACE} --dry-run=client -o yaml | kubectl apply -f - + echo "✅ MSP secret created for $ICA" + else + echo "⚠️ Skipping MSP secret for $ICA — missing directory" + fi +done + +echo "🎉 All ICA secrets created and applied." + diff --git a/hyperledger-fabric-network/ca/scripts/enroll-admin.sh b/hyperledger-fabric-network/ca/scripts/enroll-admin.sh new file mode 100644 index 0000000..cbaa895 --- /dev/null +++ b/hyperledger-fabric-network/ca/scripts/enroll-admin.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Root CA Enroll Admin Script + +set -e + +# Configuration +CA_NAME="root-ca" +NAMESPACE="hlf-ca" +FABRIC_CA_CLIENT_HOME=/data/hyperledger/fabric-ca-client/root-ca +TLS_CERT_PATH=$FABRIC_CA_CLIENT_HOME/tls-cert.pem +CA_HOST="root-ca.hlf-ca.svc.cluster.local:7054" +ADMIN_USER="admin" +ADMIN_PASS="adminpw" + +echo "📂 Setting FABRIC_CA_CLIENT_HOME=$FABRIC_CA_CLIENT_HOME" +export FABRIC_CA_CLIENT_HOME=$FABRIC_CA_CLIENT_HOME + +echo "📥 Creating directories..." +mkdir -p $FABRIC_CA_CLIENT_HOME + +echo "🔍 Fetching Root CA pod name..." +ROOT_CA_POD=$(kubectl get pods -n $NAMESPACE -l app=$CA_NAME -o jsonpath="{.items[0].metadata.name}") +echo "📦 Found pod: $ROOT_CA_POD" + +echo "📦 Copying TLS cert from pod to local..." +kubectl cp $NAMESPACE/$ROOT_CA_POD:/etc/hyperledger/fabric-ca-server/ca-cert.pem ./tls-cert.pem + +echo "📦 Copying TLS cert to fabric-ca-client pod..." +kubectl cp ./tls-cert.pem $NAMESPACE/fabric-ca-client-0:$TLS_CERT_PATH + +echo "🔐 Enrolling admin..." +kubectl exec -n $NAMESPACE fabric-ca-client-0 -- \ + fabric-ca-client enroll \ + --url https://$ADMIN_USER:$ADMIN_PASS@$CA_HOST \ + --tls.certfiles $TLS_CERT_PATH + +echo "✅ Root CA Admin enrolled successfully." + diff --git a/hyperledger-fabric-network/ca/scripts/enroll-ica.sh b/hyperledger-fabric-network/ca/scripts/enroll-ica.sh new file mode 100644 index 0000000..cb4109c --- /dev/null +++ b/hyperledger-fabric-network/ca/scripts/enroll-ica.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Enroll Intermediate CA identities (MSP + TLS) +set -e + +NAMESPACE="hlf-ca" +ROOT_CA_URL="https://root-ca.hlf-ca.svc.cluster.local:7054" +TLS_CERT_PATH="/data/hyperledger/fabric-ca-client/root-ca/tls-cert.pem" + +# ICA identities and passwords +declare -A ICAS=( + ["greenstand-ca"]="greenstandcapw" + ["cbo-ca"]="cbocapw" + ["investor-ca"]="investorcapw" + ["verifier-ca"]="verifiercapw" +) + +echo "🔐 Enrolling Intermediate CAs (MSP + TLS)..." + +for ICA in "${!ICAS[@]}"; do + PASSWORD="${ICAS[$ICA]}" + ICA_DIR="/root/hyperledger-fabric-network/${ICA}" + + echo "➡️ Enrolling MSP for $ICA..." + kubectl exec -n $NAMESPACE fabric-ca-client-0 -- \ + fabric-ca-client enroll \ + --url https://$ICA:$PASSWORD@root-ca.hlf-ca.svc.cluster.local:7054 \ + --tls.certfiles $TLS_CERT_PATH \ + --mspdir $ICA_DIR/msp + + echo "➡️ Enrolling TLS for $ICA..." + kubectl exec -n $NAMESPACE fabric-ca-client-0 -- \ + fabric-ca-client enroll \ + --url https://$ICA:$PASSWORD@root-ca.hlf-ca.svc.cluster.local:7054 \ + --tls.certfiles $TLS_CERT_PATH \ + --enrollment.profile tls \ + --mspdir $ICA_DIR/tls + + echo "✅ Enrolled $ICA (MSP + TLS)" +done + +echo "🎉 All Intermediate CAs enrolled successfully." + diff --git a/hyperledger-fabric-network/ca/scripts/notes-guide.sh b/hyperledger-fabric-network/ca/scripts/notes-guide.sh new file mode 100644 index 0000000..76b1394 --- /dev/null +++ b/hyperledger-fabric-network/ca/scripts/notes-guide.sh @@ -0,0 +1,25 @@ +cd hyperledger-fabric-network/ca/scripts +chmod +x backup-ca.sh + +./backup-ca.sh \ + --namespace hlf-ca \ + --client-pod fabric-ca-client-0 \ + --label 'app in (root-ca,greenstand-ca,cbo-ca,investor-ca,verifier-ca)' + + +cd hyperledger-fabric-network/ca/scripts +chmod +x restore-ca.sh + +# Basic restore back into hlf-ca +./restore-ca.sh --archive /path/to/fabric-ca-backup-2025-08-08_201755.tgz + +# Only re-apply K8s objects (Secrets/ConfigMaps) +./restore-ca.sh --archive ./fabric-ca-backup-*.tgz --no-data + +# Restore into a different namespace (e.g., a test restore) +kubectl create ns test-ca +./restore-ca.sh --archive ./fabric-ca-backup-*.tgz --namespace test-ca + +# Preview what would happen +./restore-ca.sh --archive ./fabric-ca-backup-*.tgz --dry-run --verbose + diff --git a/hyperledger-fabric-network/ca/scripts/register-identities.sh b/hyperledger-fabric-network/ca/scripts/register-identities.sh new file mode 100644 index 0000000..cbf190d --- /dev/null +++ b/hyperledger-fabric-network/ca/scripts/register-identities.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Register Intermediate CA identities with Root CA +set -e + +# Root CA configuration +CA_NAME="root-ca" +NAMESPACE="hlf-ca" +FABRIC_CA_CLIENT_HOME=/data/hyperledger/fabric-ca-client/root-ca +TLS_CERT_PATH=$FABRIC_CA_CLIENT_HOME/tls-cert.pem +CA_HOST="root-ca.hlf-ca.svc.cluster.local:7054" + +# Export environment +export FABRIC_CA_CLIENT_HOME=$FABRIC_CA_CLIENT_HOME + +# ICA identities to register +declare -A ICAS=( + ["greenstand-ca"]="greenstandcapw" + ["cbo-ca"]="cbocapw" + ["investor-ca"]="investorcapw" + ["verifier-ca"]="verifiercapw" +) + +echo "🔐 Registering Intermediate CAs with Root CA..." + +for ICA in "${!ICAS[@]}"; do + PASSWORD="${ICAS[$ICA]}" + + echo "➡️ Registering $ICA with password '$PASSWORD'..." + kubectl exec -n $NAMESPACE fabric-ca-client-0 -- \ + fabric-ca-client register \ + --id.name "$ICA" \ + --id.secret "$PASSWORD" \ + --id.type client \ + --id.attrs "hf.IntermediateCA=true" \ + --tls.certfiles "$TLS_CERT_PATH" \ + --url "https://$CA_HOST" + + echo "✅ Registered $ICA" +done + +echo "🎉 All Intermediate CAs registered successfully." + diff --git a/hyperledger-fabric-network/ca/scripts/restore-ca.sh b/hyperledger-fabric-network/ca/scripts/restore-ca.sh new file mode 100644 index 0000000..69e2bd2 --- /dev/null +++ b/hyperledger-fabric-network/ca/scripts/restore-ca.sh @@ -0,0 +1,168 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +# === Defaults === +NS="hlf-ca" +ARCHIVE="" +LABEL_SELECTOR="app in (root-ca,greenstand-ca,cbo-ca,investor-ca,verifier-ca)" +APPLY_K8S="true" +RESTORE_DATA="true" +DRY_RUN="false" +VERBOSE="false" + +usage() { + cat <<'EOF' +Usage: + restore-ca.sh --archive + [--namespace ] + [--label ""] + [--no-k8s] [--no-data] + [--dry-run] [--verbose] + +What it does: + 1) Extracts the backup archive to a temp dir + 2) (default) Applies Secrets/ConfigMaps from the backup into the target namespace (namespaced swap if needed) + 3) (default) Restores CA server data (server-etc.tgz + server-data.tgz) into each CA pod discovered by label: + - copies tarballs into the pod + - extracts to /etc/hyperledger/fabric-ca-server and /data/hyperledger/fabric-ca-server + - then deletes the pod to let Deployment recreate it with the restored data + +Options: + --archive Path to backup archive (required) + --namespace Target namespace (default: hlf-ca) + --label "" Label selector for CA pods (default covers: root/greenstand/cbo/investor/verifier) + --no-k8s Skip restoring K8s Secrets/ConfigMaps + --no-data Skip restoring CA server data into pods + --dry-run Show what would happen, do not modify cluster + --verbose Extra logs + +Examples: + ./restore-ca.sh --archive fabric-ca-backup-2025-08-08_201755.tgz + ./restore-ca.sh --archive ./backup.tgz --namespace test-ca --label 'app in (root-ca)' + ./restore-ca.sh --archive ./backup.tgz --no-data # only re-apply secrets/configmaps +EOF +} + +log() { echo "[$(date +%H:%M:%S)] $*"; } +vlog() { [[ "$VERBOSE" == "true" ]] && echo "[$(date +%H:%M:%S)] $*" || true; } + +# === Parse args === +while [[ $# -gt 0 ]]; do + case "$1" in + --archive) ARCHIVE="$2"; shift 2;; + --namespace) NS="$2"; shift 2;; + --label) LABEL_SELECTOR="$2"; shift 2;; + --no-k8s) APPLY_K8S="false"; shift;; + --no-data) RESTORE_DATA="false"; shift;; + --dry-run) DRY_RUN="true"; shift;; + --verbose) VERBOSE="true"; shift;; + -h|--help) usage; exit 0;; + *) echo "Unknown arg: $1"; usage; exit 1;; + esac +done + +[[ -z "$ARCHIVE" ]] && { echo "ERROR: --archive is required"; usage; exit 1; } +[[ -f "$ARCHIVE" ]] || { echo "ERROR: archive not found: $ARCHIVE"; exit 1; } + +# === Prep temp workspace === +WORKDIR="$(mktemp -d -t ca-restore-XXXXXX)" +cleanup() { rm -rf "$WORKDIR"; } +trap cleanup EXIT + +log "Extracting archive: $ARCHIVE" +tar -xzf "$ARCHIVE" -C "$WORKDIR" + +# Sanity: show what we’ve got +vlog "Archive layout:" +vlog "$(find "$WORKDIR" -maxdepth 2 -type f | sed "s|$WORKDIR/||")" + +# === 1) Restore K8s objects (Secrets/ConfigMaps) === +if [[ "$APPLY_K8S" == "true" ]]; then + for f in k8s-secrets-*.yaml k8s-configmaps-*.yaml; do + SRC="$WORKDIR/$f" + [[ -f "$SRC" ]] || { vlog "Skip missing $f"; continue; } + # Swap namespace in the manifests if needed + TMP="$WORKDIR/$f.patched" + # Replace only explicit "namespace: " occurrences. If no namespace lines present, we’ll apply with -n. + sed "s/^\(\s*namespace:\s*\).*/\1$NS/" "$SRC" > "$TMP" || cp "$SRC" "$TMP" + + if [[ "$DRY_RUN" == "true" ]]; then + log "[DRY-RUN] kubectl apply -n $NS -f $TMP" + else + log "Applying $(basename "$TMP") to namespace $NS" + kubectl apply -n "$NS" -f "$TMP" + fi + done +else + log "Skipping K8s Secrets/ConfigMaps restore (--no-k8s)" +fi + +# === 2) Discover CA pods in target namespace === +if [[ "$RESTORE_DATA" == "true" ]]; then + log "Discovering CA pods in namespace: $NS (selector: $LABEL_SELECTOR)" + mapfile -t CA_PODS < <(kubectl get pods -n "$NS" -l "$LABEL_SELECTOR" -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}') + if [[ ${#CA_PODS[@]} -eq 0 ]]; then + echo "ERROR: No CA pods matched selector in namespace $NS"; exit 1 + fi + printf " Found CA pods:\n"; for p in "${CA_PODS[@]}"; do printf " - %s\n" "$p"; done + + # Build a mapping of -> by using the app label (e.g. root-ca) and matching a dir like root-ca-* + for POD in "${CA_PODS[@]}"; do + APP=$(kubectl -n "$NS" get pod "$POD" -o jsonpath='{.metadata.labels.app}') + if [[ -z "$APP" ]]; then + echo "WARN: Pod $POD has no 'app' label; trying to infer from pod name" + APP="${POD%-*}" # strip trailing hash if any + fi + + # Find dir in archive that starts with APP- + MATCH_DIR="$(find "$WORKDIR" -maxdepth 1 -type d -name "${APP}-*" | head -n1 || true)" + if [[ -z "$MATCH_DIR" ]]; then + echo "WARN: No archive dir matching '${APP}-*' for pod $POD; skipping data restore for this pod" + continue + fi + + ETC_TGZ="$MATCH_DIR/server-etc.tgz" + DATA_TGZ="$MATCH_DIR/server-data.tgz" + if [[ ! -f "$ETC_TGZ" && ! -f "$DATA_TGZ" ]]; then + echo "WARN: No server-*.tgz for $APP in archive; skipping $POD" + continue + fi + + log "Restoring CA data into pod: $POD (from: $(basename "$MATCH_DIR"))" + + if [[ "$DRY_RUN" == "true" ]]; then + [[ -f "$ETC_TGZ" ]] && log "[DRY-RUN] kubectl -n $NS cp $ETC_TGZ $POD:/tmp/server-etc.tgz" + [[ -f "$DATA_TGZ" ]] && log "[DRY-RUN] kubectl -n $NS cp $DATA_TGZ $POD:/tmp/server-data.tgz" + log "[DRY-RUN] kubectl -n $NS exec $POD -- sh -lc 'set -e; [[ -f /tmp/server-etc.tgz ]] && tar -C / -xzf /tmp/server-etc.tgz; [[ -f /tmp/server-data.tgz ]] && tar -C / -xzf /tmp/server-data.tgz; rm -f /tmp/server-*.tgz'" + log "[DRY-RUN] kubectl -n $NS delete pod $POD" + continue + fi + + # Copy tarballs into the pod + [[ -f "$ETC_TGZ" ]] && kubectl -n "$NS" cp "$ETC_TGZ" "$POD":/tmp/server-etc.tgz + [[ -f "$DATA_TGZ" ]] && kubectl -n "$NS" cp "$DATA_TGZ" "$POD":/tmp/server-data.tgz + + # Extract in-place; paths inside tarballs are already absolute (/etc/... and /data/...) + kubectl -n "$NS" exec "$POD" -- sh -lc ' + set -e + [[ -f /tmp/server-etc.tgz ]] && tar -C / -xzf /tmp/server-etc.tgz || true + [[ -f /tmp/server-data.tgz ]] && tar -C / -xzf /tmp/server-data.tgz || true + rm -f /tmp/server-etc.tgz /tmp/server-data.tgz || true + # show result + ls -ld /etc/hyperledger/fabric-ca-server || true + ls -ld /data/hyperledger/fabric-ca-server || true + ' + + # Bounce the pod so CA re-reads files from disk + log "Restarting pod $POD to pick up restored data" + kubectl -n "$NS" delete pod "$POD" --wait=false >/dev/null 2>&1 || true + done + + log "Waiting for CA pods to become Ready..." + kubectl -n "$NS" wait --for=condition=Ready pod -l "$LABEL_SELECTOR" --timeout=180s || true +else + log "Skipping CA data restore (--no-data)" +fi + +log "✅ Restore completed." + From df6978bdb205e6eb16e9dfbfc552edbe1fc36e70 Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:00:35 -0400 Subject: [PATCH 05/11] **Cryptographic Security**: Key management and certificate validation --- .../ca/fabric-ca/cbo-ca/tls-cert.pem | 1 + .../fabric-ca-server-config.yaml | 72 +++ .../ca/fabric-ca/greenstand-ca/tls-cert.pem | 1 + .../ca/fabric-ca/investor-ca/tls-cert.pem | 1 + .../fabric-ca-client-config.yaml | 175 ++++++ .../msp/IssuerPublicKey | 0 .../msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 1 + ...494f48d8624469eb7c22f768fd52fb396e23a77_sk | 1 + .../msp/signcerts/cert.pem | 1 + .../fabric-ca-client-root-ca/tls-cert.pem | 0 .../root-ca/fabric-ca-server/IssuerPublicKey | 0 .../IssuerRevocationPublicKey | 0 .../root-ca/fabric-ca-server/ca-cert.pem | 0 .../fabric-ca-server-config.yaml | 510 ++++++++++++++++++ .../fabric-ca-server/fabric-ca-server.db | Bin 0 -> 65536 bytes ...0b907920095c657758558d61d690ceba998cc90_sk | 0 ...c58065548ae1b61716e4bc6aa994364290171a4_sk | 0 .../msp/keystore/IssuerRevocationPrivateKey | 0 .../msp/keystore/IssuerSecretKey | 0 .../root-ca/fabric-ca-server/tls-cert.pem | 0 .../ca/fabric-ca/root-ca/root-tls-cert.pem | 1 + .../ca/fabric-ca/verifier-ca/tls-cert.pem | 1 + 23 files changed, 765 insertions(+) create mode 100644 hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml create mode 100644 hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerPublicKey create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/tls-cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerPublicKey create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/ca-cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server.db create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/7d5d91f1f6e6ac09cba8fbee30b907920095c657758558d61d690ceba998cc90_sk create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/85e1f8ec6b2fe4c0aab2fc044c58065548ae1b61716e4bc6aa994364290171a4_sk create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerRevocationPrivateKey create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerSecretKey create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/tls-cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem create mode 100644 hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem diff --git a/hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml b/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml new file mode 100644 index 0000000..c9dc5dc --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml @@ -0,0 +1,72 @@ +# fabric-ca-server-config.yaml + +# Server info +version: 1.5.0 +ca: + name: {{ ICA_NAME }} # e.g., greenstand-ca + keyfile: /etc/hyperledger/fabric-ca-server/ca-key.pem + certfile: /etc/hyperledger/fabric-ca-server/ca-cert.pem + +# Database (default: sqlite3) +db: + type: sqlite3 + datasource: fabric-ca-server.db + tls: + enabled: false + +# TLS Configuration +tls: + enabled: true + certfile: /etc/hyperledger/fabric-ca-server/tls-cert.pem + keyfile: /etc/hyperledger/fabric-ca-server/tls-key.pem + clientauth: + type: noclientcert + +# Registry - identities this CA can issue +registry: + maxenrollments: -1 + identities: + - name: {{ ICA_NAME }} + pass: {{ ICA_PASSWORD }} # e.g., greenstandcapw + type: client + attrs: + hf.IntermediateCA: "true" + +# Affiliations - organizational hierarchy +affiliations: + {{ ORG_NAME }}: # e.g., greenstand + - department1 + - department2 + +# Signing options +csr: + cn: {{ ICA_NAME }} + hosts: + - {{ ICA_NAME }} + - {{ ICA_NAME }}.hlf-ca.svc.cluster.local + - localhost + names: + - C: US + ST: North Carolina + L: Durham + O: Treetracker + OU: {{ ORG_NAME }} Department + +# Certificate expiration settings +caexpiry: 8760h # 1 year +certfileexpiry: 8760h +crl: + expiry: 24h + +# LDAP (not used here) +ldap: + enabled: false + +# Intermediate CA settings (pointing to Root CA) +intermediate: + parentserver: + url: https://admin:adminpw@root-ca.hlf-ca.svc.cluster.local:7054 + caname: root-ca + tls: + certfiles: + - /etc/hyperledger/fabric-ca-server/root-tls-cert.pem diff --git a/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml new file mode 100644 index 0000000..0c451ab --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml @@ -0,0 +1,175 @@ + +############################################################################# +# This is a configuration file for the fabric-ca-client command. +# +# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES +# ------------------------------------------------ +# Each configuration element can be overridden via command line +# arguments or environment variables. The precedence for determining +# the value of each element is as follows: +# 1) command line argument +# Examples: +# a) --url https://localhost:7054 +# To set the fabric-ca server url +# b) --tls.client.certfile certfile.pem +# To set the client certificate for TLS +# 2) environment variable +# Examples: +# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 +# To set the fabric-ca server url +# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem +# To set the client certificate for TLS +# 3) configuration file +# 4) default value (if there is one) +# All default values are shown beside each element below. +# +# FILE NAME ELEMENTS +# ------------------ +# The value of all fields whose name ends with "file" or "files" are +# name or names of other files. +# For example, see "tls.certfiles" and "tls.client.certfile". +# The value of each of these fields can be a simple filename, a +# relative path, or an absolute path. If the value is not an +# absolute path, it is interpreted as being relative to the location +# of this configuration file. +# +############################################################################# + +############################################################################# +# Client Configuration +############################################################################# + +# URL of the Fabric-ca-server (default: http://localhost:7054) +url: https://root-ca.hlf-ca.svc.cluster.local:7054 + +# Membership Service Provider (MSP) directory +# This is useful when the client is used to enroll a peer or orderer, so +# that the enrollment artifacts are stored in the format expected by MSP. +mspdir: /data/hyperledger/fabric-ca-client/root-ca/msp + +############################################################################# +# TLS section for secure socket connection +# +# certfiles - PEM-encoded list of trusted root certificate files +# client: +# certfile - PEM-encoded certificate file for when client authentication +# is enabled on server +# keyfile - PEM-encoded key file for when client authentication +# is enabled on server +############################################################################# +tls: + # TLS section for secure socket connection + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# Certificate Signing Request section for generating the CSR for an +# enrollment certificate (ECert) +# +# cn - Used by CAs to determine which domain the certificate is to be generated for +# +# keyrequest - Properties to use when generating a private key. +# algo - key generation algorithm to use +# size - size of key to generate +# reusekey - reuse existing key during reenrollment +# +# serialnumber - The serialnumber field, if specified, becomes part of the issued +# certificate's DN (Distinguished Name). For example, one use case for this is +# a company with its own CA (Certificate Authority) which issues certificates +# to its employees and wants to include the employee's serial number in the DN +# of its issued certificates. +# WARNING: The serialnumber field should not be confused with the certificate's +# serial number which is set by the CA but is not a component of the +# certificate's DN. +# +# names - A list of name objects. Each name object should contain at least one +# "C", "L", "O", or "ST" value (or any combination of these) where these +# are abbreviations for the following: +# "C": country +# "L": locality or municipality (such as city or town name) +# "O": organization +# "OU": organizational unit, such as the department responsible for owning the key; +# it can also be used for a "Doing Business As" (DBS) name +# "ST": the state or province +# +# Note that the "OU" or organizational units of an ECert are always set according +# to the values of the identities type and affiliation. OUs are calculated for an enroll +# as OU=, OU=, ..., OU=. For example, an identity +# of type "client" with an affiliation of "org1.dept2.team3" would have the following +# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 +# +# hosts - A list of host names for which the certificate should be valid +# +############################################################################# +csr: + cn: admin + keyrequest: + algo: ecdsa + size: 256 + reusekey: false + serialnumber: + names: + - C: US + ST: North Carolina + L: + O: Hyperledger + OU: Fabric + hosts: + - fabric-ca-client-0 + +############################################################################# +# Registration section used to register a new identity with fabric-ca server +# +# name - Unique name of the identity +# type - Type of identity being registered (e.g. 'peer, app, user') +# affiliation - The identity's affiliation +# maxenrollments - The maximum number of times the secret can be reused to enroll. +# Specially, -1 means unlimited; 0 means to use CA's max enrollment +# value. +# attributes - List of name/value pairs of attribute for identity +############################################################################# +id: + name: + type: + affiliation: + maxenrollments: 0 + attributes: + # - name: + # value: + +############################################################################# +# Enrollment section used to enroll an identity with fabric-ca server +# +# profile - Name of the signing profile to use in issuing the certificate +# label - Label to use in HSM operations +############################################################################# +enrollment: + profile: + label: + +############################################################################# +# Name of the CA to connect to within the fabric-ca server +############################################################################# +caname: + +############################################################################# +# BCCSP (BlockChain Crypto Service Provider) section allows to select which +# crypto implementation library to use +############################################################################# +bccsp: + default: SW + sw: + hash: SHA2 + security: 256 + filekeystore: + # The directory used for the software file-based keystore + keystore: msp/keystore + +############################################################################# +# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. +# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. +# If unspecified, it defaults to 'amcl.Fp256bn'. +############################################################################# +idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/tls-cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerRevocationPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/ca-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/ca-cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml new file mode 100644 index 0000000..7c717e9 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml @@ -0,0 +1,510 @@ +############################################################################# +# This is a configuration file for the fabric-ca-server command. +# +# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES +# ------------------------------------------------ +# Each configuration element can be overridden via command line +# arguments or environment variables. The precedence for determining +# the value of each element is as follows: +# 1) command line argument +# Examples: +# a) --port 443 +# To set the listening port +# b) --ca.keyfile ../mykey.pem +# To set the "keyfile" element in the "ca" section below; +# note the '.' separator character. +# 2) environment variable +# Examples: +# a) FABRIC_CA_SERVER_PORT=443 +# To set the listening port +# b) FABRIC_CA_SERVER_CA_KEYFILE="../mykey.pem" +# To set the "keyfile" element in the "ca" section below; +# note the '_' separator character. +# 3) configuration file +# 4) default value (if there is one) +# All default values are shown beside each element below. +# +# FILE NAME ELEMENTS +# ------------------ +# The value of all fields whose name ends with "file" or "files" are +# name or names of other files. +# For example, see "tls.certfile" and "tls.clientauth.certfiles". +# The value of each of these fields can be a simple filename, a +# relative path, or an absolute path. If the value is not an +# absolute path, it is interpreted as being relative to the location +# of this configuration file. +# +############################################################################# + +# Version of config file +version: v1.5.12 + +# Server's listening port (default: 7054) +port: 7054 + +# Cross-Origin Resource Sharing (CORS) +cors: + enabled: false + origins: + - "*" + +# Enables debug logging (default: false) +debug: false + +# Size limit of an acceptable CRL in bytes (default: 512000) +crlsizelimit: 512000 + +############################################################################# +# TLS section for the server's listening port +# +# The following types are supported for client authentication: NoClientCert, +# RequestClientCert, RequireAnyClientCert, VerifyClientCertIfGiven, +# and RequireAndVerifyClientCert. +# +# Certfiles is a list of root certificate authorities that the server uses +# when verifying client certificates. +############################################################################# +tls: + # Enable TLS (default: false) + enabled: false + # TLS for the server's listening port + certfile: + keyfile: + clientauth: + type: noclientcert + certfiles: + +############################################################################# +# The CA section contains information related to the Certificate Authority +# including the name of the CA, which should be unique for all members +# of a blockchain network. It also includes the key and certificate files +# used when issuing enrollment certificates (ECerts). +# The chainfile (if it exists) contains the certificate chain which +# should be trusted for this CA, where the 1st in the chain is always the +# root CA certificate. +############################################################################# +ca: + # Name of this CA + name: + # Key file (is only used to import a private key into BCCSP) + keyfile: + # Certificate file (default: ca-cert.pem) + certfile: + # Chain file + chainfile: + # Ignore Certificate Expiration in the case of re-enroll + reenrollIgnoreCertExpiry: false + +############################################################################# +# The gencrl REST endpoint is used to generate a CRL that contains revoked +# certificates. This section contains configuration options that are used +# during gencrl request processing. +############################################################################# +crl: + # Specifies expiration for the generated CRL. The number of hours + # specified by this property is added to the UTC time, the resulting time + # is used to set the 'Next Update' date of the CRL. + expiry: 24h + +############################################################################# +# The registry section controls how the fabric-ca-server does two things: +# 1) authenticates enrollment requests which contain a username and password +# (also known as an enrollment ID and secret). +# 2) once authenticated, retrieves the identity's attribute names and values. +# These attributes are useful for making access control decisions in +# chaincode. +# There are two main configuration options: +# 1) The fabric-ca-server is the registry. +# This is true if "ldap.enabled" in the ldap section below is false. +# 2) An LDAP server is the registry, in which case the fabric-ca-server +# calls the LDAP server to perform these tasks. +# This is true if "ldap.enabled" in the ldap section below is true, +# which means this "registry" section is ignored. +############################################################################# +registry: + # Maximum number of times a password/secret can be reused for enrollment + # (default: -1, which means there is no limit) + maxenrollments: -1 + + # Contains identity information which is used when LDAP is disabled + identities: + - name: admin + pass: adminpw + type: client + affiliation: "" + attrs: + hf.Registrar.Roles: "*" + hf.Registrar.DelegateRoles: "*" + hf.Revoker: true + hf.IntermediateCA: true + hf.GenCRL: true + hf.Registrar.Attributes: "*" + hf.AffiliationMgr: true + +############################################################################# +# Database section +# Supported types are: "sqlite3", "postgres", and "mysql". +# The datasource value depends on the type. +# If the type is "sqlite3", the datasource value is a file name to use +# as the database store. Since "sqlite3" is an embedded database, it +# may not be used if you want to run the fabric-ca-server in a cluster. +# To run the fabric-ca-server in a cluster, you must choose "postgres" +# or "mysql". +############################################################################# +db: + type: sqlite3 + datasource: fabric-ca-server.db + tls: + enabled: false + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# LDAP section +# If LDAP is enabled, the fabric-ca-server calls LDAP to: +# 1) authenticate enrollment ID and secret (i.e. username and password) +# for enrollment requests; +# 2) To retrieve identity attributes +############################################################################# +ldap: + # Enables or disables the LDAP client (default: false) + # If this is set to true, the "registry" section is ignored. + enabled: false + # The URL of the LDAP server + url: ldap://:@:/ + # TLS configuration for the client connection to the LDAP server + tls: + certfiles: + client: + certfile: + keyfile: + # Attribute related configuration for mapping from LDAP entries to Fabric CA attributes + attribute: + # 'names' is an array of strings containing the LDAP attribute names which are + # requested from the LDAP server for an LDAP identity's entry + names: ['uid','member'] + # The 'converters' section is used to convert an LDAP entry to the value of + # a fabric CA attribute. + # For example, the following converts an LDAP 'uid' attribute + # whose value begins with 'revoker' to a fabric CA attribute + # named "hf.Revoker" with a value of "true" (because the boolean expression + # evaluates to true). + # converters: + # - name: hf.Revoker + # value: attr("uid") =~ "revoker*" + converters: + - name: + value: + # The 'maps' section contains named maps which may be referenced by the 'map' + # function in the 'converters' section to map LDAP responses to arbitrary values. + # For example, assume a user has an LDAP attribute named 'member' which has multiple + # values which are each a distinguished name (i.e. a DN). For simplicity, assume the + # values of the 'member' attribute are 'dn1', 'dn2', and 'dn3'. + # Further assume the following configuration. + # converters: + # - name: hf.Registrar.Roles + # value: map(attr("member"),"groups") + # maps: + # groups: + # - name: dn1 + # value: peer + # - name: dn2 + # value: client + # The value of the user's 'hf.Registrar.Roles' attribute is then computed to be + # "peer,client,dn3". This is because the value of 'attr("member")' is + # "dn1,dn2,dn3", and the call to 'map' with a 2nd argument of + # "group" replaces "dn1" with "peer" and "dn2" with "client". + maps: + groups: + - name: + value: + +############################################################################# +# Affiliations section. Fabric CA server can be bootstrapped with the +# affiliations specified in this section. Affiliations are specified as maps. +# For example: +# businessunit1: +# department1: +# - team1 +# businessunit2: +# - department2 +# - department3 +# +# Affiliations are hierarchical in nature. In the above example, +# department1 (used as businessunit1.department1) is the child of businessunit1. +# team1 (used as businessunit1.department1.team1) is the child of department1. +# department2 (used as businessunit2.department2) and department3 (businessunit2.department3) +# are children of businessunit2. +# Note: Affiliations are case sensitive except for the non-leaf affiliations +# (like businessunit1, department1, businessunit2) that are specified in the configuration file, +# which are always stored in lower case. +############################################################################# +affiliations: + org1: + - department1 + - department2 + org2: + - department1 + +############################################################################# +# Signing section +# +# The "default" subsection is used to sign enrollment certificates; +# the default expiration ("expiry" field) is "8760h", which is 1 year in hours. +# +# The "ca" profile subsection is used to sign intermediate CA certificates; +# the default expiration ("expiry" field) is "43800h" which is 5 years in hours. +# Note that "isca" is true, meaning that it issues a CA certificate. +# A maxpathlen of 0 means that the intermediate CA cannot issue other +# intermediate CA certificates, though it can still issue end entity certificates. +# (See RFC 5280, section 4.2.1.9) +# +# The "tls" profile subsection is used to sign TLS certificate requests; +# the default expiration ("expiry" field) is "8760h", which is 1 year in hours. +############################################################################# +signing: + default: + usage: + - digital signature + expiry: 8760h + profiles: + ca: + usage: + - cert sign + - crl sign + expiry: 43800h + caconstraint: + isca: true + maxpathlen: 0 + tls: + usage: + - signing + - key encipherment + - server auth + - client auth + - key agreement + expiry: 8760h + +########################################################################### +# Certificate Signing Request (CSR) section. +# This controls the creation of the root CA certificate. +# The expiration for the root CA certificate is configured with the +# "ca.expiry" field below, whose default value is "131400h" which is +# 15 years in hours. +# The pathlength field is used to limit CA certificate hierarchy as described +# in section 4.2.1.9 of RFC 5280. +# Examples: +# 1) No pathlength value means no limit is requested. +# 2) pathlength == 1 means a limit of 1 is requested which is the default for +# a root CA. This means the root CA can issue intermediate CA certificates, +# but these intermediate CAs may not in turn issue other CA certificates +# though they can still issue end entity certificates. +# 3) pathlength == 0 means a limit of 0 is requested; +# this is the default for an intermediate CA, which means it can not issue +# CA certificates though it can still issue end entity certificates. +# The "hosts" field will be used to specify Subject Alternative Names +# if the server creates a self-signed TLS certificate. +########################################################################### +csr: + cn: fabric-ca-server + keyrequest: + algo: ecdsa + size: 256 + names: + - C: US + ST: "North Carolina" + L: + O: Hyperledger + OU: Fabric + hosts: + - root-ca-f4b6dfcb4-7xdh8 + - localhost + ca: + expiry: 131400h + pathlength: 1 + +########################################################################### +# Each CA can issue both X509 enrollment certificate as well as Idemix +# Credential. This section specifies configuration for the issuer component +# that is responsible for issuing Idemix credentials. +########################################################################### +idemix: + # Specifies pool size for revocation handles. A revocation handle is an unique identifier of an + # Idemix credential. The issuer will create a pool revocation handles of this specified size. When + # a credential is requested, issuer will get handle from the pool and assign it to the credential. + # Issuer will repopulate the pool with new handles when the last handle in the pool is used. + # A revocation handle and credential revocation information (CRI) are used to create non revocation proof + # by the prover to prove to the verifier that her credential is not revoked. + rhpoolsize: 1000 + + # The Idemix credential issuance is a two step process. First step is to get a nonce from the issuer + # and second step is send credential request that is constructed using the nonce to the isuser to + # request a credential. This configuration property specifies expiration for the nonces. By default is + # nonces expire after 15 seconds. The value is expressed in the time.Duration format (see https://golang.org/pkg/time/#ParseDuration). + nonceexpiration: 15s + + # Specifies interval at which expired nonces are removed from datastore. Default value is 15 minutes. + # The value is expressed in the time.Duration format (see https://golang.org/pkg/time/#ParseDuration) + noncesweepinterval: 15m + + # Specifies the Elliptic Curve used by Identity Mixer. + # It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. + # If unspecified, it defaults to 'amcl.Fp256bn'. + curve: amcl.Fp256bn + +############################################################################# +# BCCSP (BlockChain Crypto Service Provider) section is used to select which +# crypto library implementation to use +############################################################################# +bccsp: + default: SW + sw: + hash: SHA2 + security: 256 + filekeystore: + # The directory used for the software file-based keystore + keystore: msp/keystore + +############################################################################# +# Multi CA section +# +# Each Fabric CA server contains one CA by default. This section is used +# to configure multiple CAs in a single server. +# +# 1) --cacount +# Automatically generate non-default CAs. The names of these +# additional CAs are "ca1", "ca2", ... "caN", where "N" is +# This is particularly useful in a development environment to quickly set up +# multiple CAs. Note that, this config option is not applicable to intermediate CA server +# i.e., Fabric CA server that is started with intermediate.parentserver.url config +# option (-u command line option) +# +# 2) --cafiles +# For each CA config file in the list, generate a separate signing CA. Each CA +# config file in this list MAY contain all of the same elements as are found in +# the server config file except port, debug, and tls sections. +# +# Examples: +# fabric-ca-server start -b admin:adminpw --cacount 2 +# +# fabric-ca-server start -b admin:adminpw --cafiles ca/ca1/fabric-ca-server-config.yaml +# --cafiles ca/ca2/fabric-ca-server-config.yaml +# +############################################################################# + +cacount: + +cafiles: + +############################################################################# +# Intermediate CA section +# +# The relationship between servers and CAs is as follows: +# 1) A single server process may contain or function as one or more CAs. +# This is configured by the "Multi CA section" above. +# 2) Each CA is either a root CA or an intermediate CA. +# 3) Each intermediate CA has a parent CA which is either a root CA or another intermediate CA. +# +# This section pertains to configuration of #2 and #3. +# If the "intermediate.parentserver.url" property is set, +# then this is an intermediate CA with the specified parent +# CA. +# +# parentserver section +# url - The URL of the parent server +# caname - Name of the CA to enroll within the server +# +# enrollment section used to enroll intermediate CA with parent CA +# profile - Name of the signing profile to use in issuing the certificate +# label - Label to use in HSM operations +# +# tls section for secure socket connection +# certfiles - PEM-encoded list of trusted root certificate files +# client: +# certfile - PEM-encoded certificate file for when client authentication +# is enabled on server +# keyfile - PEM-encoded key file for when client authentication +# is enabled on server +############################################################################# +intermediate: + parentserver: + url: + caname: + + enrollment: + hosts: + profile: + label: + + tls: + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# CA configuration section +# +# Configure the number of incorrect password attempts are allowed for +# identities. By default, the value of 'passwordattempts' is 10, which +# means that 10 incorrect password attempts can be made before an identity get +# locked out. +############################################################################# +cfg: + identities: + passwordattempts: 10 + +############################################################################### +# +# Operations section +# +############################################################################### +operations: + # host and port for the operations server + listenAddress: 127.0.0.1:9443 + + # TLS configuration for the operations endpoint + tls: + # TLS enabled + enabled: false + + # path to PEM encoded server certificate for the operations server + cert: + file: + + # path to PEM encoded server key for the operations server + key: + file: + + # require client certificate authentication to access all resources + clientAuthRequired: false + + # paths to PEM encoded ca certificates to trust for client authentication + clientRootCAs: + files: [] + +############################################################################### +# +# Metrics section +# +############################################################################### +metrics: + # statsd, prometheus, or disabled + provider: disabled + + # statsd configuration + statsd: + # network type: tcp or udp + network: udp + + # statsd server address + address: 127.0.0.1:8125 + + # the interval at which locally cached counters and gauges are pushed + # to statsd; timings are pushed immediately + writeInterval: 10s + + # prefix is prepended to all emitted statsd metrics + prefix: server diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server.db b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server.db new file mode 100644 index 0000000000000000000000000000000000000000..cee2e63bf55b1284ff95482620a9fc3b28bad137 GIT binary patch literal 65536 zcmeI*O>Em(egJUE@~2`CGud%9IYr}4uu=U*eM?ykQc|R4S)y#}!Rdr3hV*_5CDO@F7WC%7M6V5+wL!PQxIE7LWZfW_f&7mv)hZQ0!x)xe~F@V ztbb#6_lEzeD*KPALTaBXJPk#ofh~U*8LH4a)p~6a8Gf;)i~js!$)7Lha$A0(XEt<0 zHAkmsXmqN|NVDGl_2VSrv?YkBW#`9bnu6Ku&K71Mp{r|tRWrBzXxLGWk>6C?2p`<; zZ21k;*UylAipLB`Y6rDvi)o=gexppj#HQJTpJDf?a<1ejxBN$i3`Z5J{w!O4I(1ez zpGP3@YUTct&*yW0er^NzaK^6vG&e#C6vE;>bk8mfsw8kV7|yb%lCeZK;B( z;uF7e50asXwaYXORqWv_=`XRB(pU{$o!FMYEeubQX6UU}8?$#OJ8lF}HAy!NB$=lj zq1zqkhNWquc4w0N1~2Q(0)gejjlaY#0k`ql{X#vyzUa$7x#=CI z8hOyUwXmwVGFBa*FWy!~XBO)$Pp1m8QkK5Gy5#%h6ZcEXu3^W}J61Fakk*AY=J;{ZPAzhNw5+6xZjvhIR|R4g>yjKEs#UH+9+@o1*hfaLIwd=DkJV^M^N`#JCct z!SUUGchx?G#ur33Vs^L$VH|_9Fo#Ks$`JbYWE;S}yOG88R zv>|A6%h3^ALf0IpovPYtN7t{T&zAp70oZSXL(NA^OTNdC-Jf5^as%1%RA_aj$?Eb{ z%^f@55PTfxby??`@NH$E4WI8VRDUUo*Qy){M3)zRna4M^42J;jmlLNI;-~Hhz9&!I zUr2Tvadu+o`t*qC-17#|sZnDVZqoGb=vesb=%b}CAu>PR!W^F{{@;n*Fxq|jPX{j_ zJg`Y$Dt04t4o%MWsd3Rc=6C&1HK9ET^EU+6j)8ESnhw7=#+E?*8@COI&U#G`w)X=c zF8V(6-PF^@qkPbQ@!&!8Th_=KBo=+_quaCCL+15og!^ka+rr8}x<2^s+R1A4-U?oY z1q46<1V8`;KmY_l;Fne4RbXND@yq##Yo7;}-R|W+o;%hsW4Bt47RyYsjE&*)ORwPiHtUq@!T0oQ5#zu_IwH6XBs`U@trN_vF!CMS%z^O>8Kn|wdYPZo>|$a zbC>X}og>${F1KZ%CUbg@d^0&-{MX#8z`WB+)%tj@Q+HTZ`bz4!)Y#z^rmAv{R4p&= zR1URxvzhB(=zJuV*`>&Q{{T-C8vVG@+-)6k?e}BlsNBqnOi8~#t4E&IhjzPqWVI_v z)F(|UOYVi3RC|}9MVdBK`-WKPCU-K-PK9QYp{5b77Yp5kdiNyPJ!~{ak#6dkE50A5 zalO7Cq3yZVZ`wlJmXKl~q~QruO`brNE@YD#rIZ%kuF6^?NHQaZJQTQ zQEMq?Q0S_y;ZdoU-Rbsw?+0qCdS8!M-@WRyyuLVG!Cr#gR<+9*g$2$ON{Du<$*R(g z=tns{6*^R7`{@!AQYL>`W;1l6Q5-6}<>o;nnoPEOZ*nTww=4{NdRM_II1`y}jAF9~ zrjeE^CO7V6$ojVeuh_J0Ra#I0T2KI5C8!X009sH0T2KI5V$h}gy*r_F=@JB zZ966g=e?eX?(qzm=R?mo-BWWsbITsziap6<-T$9k`cv1v-^Wj|fB*=900@8p2;3!s z@7Cv5eJ@_DtuH@+{=1vwp*xfiBk_bB3khgL_HxXx-N&vP;8q_;2%F3d`8Bek>n;x z;%B@Bx9uOly?wo7+gfNgoyq%CY@w9d%cSt{wAiU$E|W7Q(btIqI=I>a@=WDW#gp>b1;8lVtJn1FyiaIgUC@Q^7JzH@MXCF*n@1 zppI!Je~e2jF=x@fq!siGn{P<%WLG$eHn;*mV3jI!%=1|P2FLVHh@+N~y6I2-H@>`V+h#CPOQ4o1QWXL_q4)|5iWBe{J%;^;_)DP@8j zqYMriYLG8+18z^Z(n6PMLyoChX@g2>TyyVNt@>5Xy*E|88X9(LCsC5)BLjxItoq=% zQA-CqVw0|MG?%7F=V@<|izF$9O{Y@lX?uOZ?o(ujqO*nkFsoGaG{yCpOhMq-;xHfN zduD6cZr2&{cr#oPt2M76=yH}XMxxbGH-Dfc`C4-jRys@_A%#!q=5bCL>Q%8w>cKpl zO*QKmbdsYY7P8C?SlYWg;H~SquP_v6UAp}OM^p6#OEoE+U|$WHQTP*@E*&1m#gZC{ zUNEsX*>5N@Ix7~v!F(kdEm3tlbCF}y40WQ=g?^z@ltHfjNl}c5QAb=OvWV=;eP%VyFU3W8out~U%BhIo4D(rrLVg_-)`liO0H8e zlAH9P#rAvZ&=gwIqrJ4E7_`Ff(Y(aqc=12Pk77gL zCzEYnPA3OSCYufE-cn+8o{b;pNalYPKX$L;hZl$XkfKa<6_uVyw;SD>8f;dJ(F?iF z^>ADXO5s9FQlnilly8Wc%z;--C!5uip)Q8=BuDAjff&c#6h%rD$MUI6s*yXCnSw%V zCVh}SXvPwCDpTm3Cq|-I(=X08kB;dabHJRX_Ue>MD{`~f&KJ0T1!aq3gX)FCwPy00@8p2!H?xfB*=9 z00@8p2;6yr^8AYz?sq*sKUcz~uDt7+KkNR#{g?jkJStQW1V8`;KmY_l00ck)1V8`; zKmY_l;4KBLzvVyv1Ho@u5M&1d5C8!X009sH0T2KI5C8!X009uVdjfF(|L$EAs1XQ& z00@8p2!H?xfB*=900@8p2)t_n>-YcR`~UA+70Lqv5C8!X009sH0T2KI5C8!X0D-$D zVBPKmY_l00ck)1V8`;KmY_l00cnbtp%3c3$B&970cr+5_>5C8!X009sH0T2KI5C8!X009sHfv;J>`U=48e89r8 ZXWdSmzuY@D6X1D6VsLKBW6vuD{~K2#5P|>z literal 0 HcmV?d00001 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/7d5d91f1f6e6ac09cba8fbee30b907920095c657758558d61d690ceba998cc90_sk b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/7d5d91f1f6e6ac09cba8fbee30b907920095c657758558d61d690ceba998cc90_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/85e1f8ec6b2fe4c0aab2fc044c58065548ae1b61716e4bc6aa994364290171a4_sk b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/85e1f8ec6b2fe4c0aab2fc044c58065548ae1b61716e4bc6aa994364290171a4_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerRevocationPrivateKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerRevocationPrivateKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerSecretKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerSecretKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/tls-cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem @@ -0,0 +1 @@ + From fbf51cfd321c40550747c661746034364eff8af5 Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:18:28 -0400 Subject: [PATCH 06/11] Hyperledger Fabric orderer infrastructure for Kubernetes, featuring Raft consensus --- .../orderer/DOCUMENTATION_INDEX.md | 271 +++++++++ hyperledger-fabric-network/orderer/README.md | 328 +++++++++++ .../orderer/genesis/genesis.block | Bin 0 -> 16453 bytes .../helm-charts/fabric-orderer/Chart.yaml | 6 + .../fabric-orderer/templates/NOTES.txt | 11 + .../fabric-orderer/templates/_helpers.tpl | 23 + .../fabric-orderer/templates/configmap.yaml | 10 + .../fabric-orderer/templates/service.yaml | 27 + .../fabric-orderer/templates/statefulset.yaml | 243 ++++++++ .../helm-charts/fabric-orderer/values.yaml | 118 ++++ .../orderer/policies/kyverno/README.md | 165 ++++++ .../kyverno/disallow-latest-tags.yaml | 32 ++ .../kyverno/enforce-security-context.yaml | 77 +++ .../kyverno/restrict-network-access.yaml | 61 ++ .../kyverno/validate-genesis-block.yaml | 47 ++ .../kyverno/validate-orderer-secrets.yaml | 47 ++ .../orderer/scripts/check.sh | 522 ++++++++++++++++++ ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk | 5 + .../orderers/orderer0/msp/signcerts/cert.pem | 17 + .../orderers/orderer0/tls-ready/ca.crt | 14 + .../orderers/orderer0/tls-ready/server.crt | 18 + .../orderers/orderer0/tls-ready/server.key | 5 + ...ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk | 5 + .../orderers/orderer0/tls/signcerts/cert.pem | 18 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk | 5 + ...afa61d5dc4498052e0386c2f773271280169548_sk | 5 + .../orderers/orderer1/msp/signcerts/cert.pem | 17 + .../orderers/orderer1/tls-ready/ca.crt | 14 + .../orderers/orderer1/tls-ready/server.crt | 18 + .../orderers/orderer1/tls-ready/server.key | 5 + ...380cc1ca3d97ddf7f44d900070f6d967091af2f_sk | 5 + .../orderers/orderer1/tls/signcerts/cert.pem | 18 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk | 5 + .../orderers/orderer2/msp/signcerts/cert.pem | 17 + .../orderers/orderer2/tls-ready/ca.crt | 14 + .../orderers/orderer2/tls-ready/server.crt | 18 + .../orderers/orderer2/tls-ready/server.key | 5 + ...322193d948431ba7c4a81245ed9160861655bab_sk | 5 + .../orderers/orderer2/tls/signcerts/cert.pem | 18 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...276e4d2584a939cb8d103a0513dc1a385706cb4_sk | 5 + .../orderers/orderer3/msp/signcerts/cert.pem | 17 + .../orderers/orderer3/tls-ready/ca.crt | 14 + .../orderers/orderer3/tls-ready/server.crt | 18 + .../orderers/orderer3/tls-ready/server.key | 5 + ...40c9dcc531fe5cb355fc85c0501f83f46cef279_sk | 5 + .../orderers/orderer3/tls/signcerts/cert.pem | 18 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + ...aff622af9ff221eb6acd2df915eb0b0531efb90_sk | 5 + .../orderers/orderer4/msp/signcerts/cert.pem | 17 + .../orderers/orderer4/tls-ready/ca.crt | 14 + .../orderers/orderer4/tls-ready/server.crt | 18 + .../orderers/orderer4/tls-ready/server.key | 5 + ...440edb11c3f94026c682963b97c7387dce2f46f_sk | 5 + .../orderers/orderer4/tls/signcerts/cert.pem | 18 + ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 + .../orderer/secrets/add-orderer-msp-config.sh | 44 ++ .../orderer/secrets/backup-fabric-orderer.sh | 80 +++ .../secrets/create-orderer-secrets-v2.sh | 87 +++ .../secrets/orderer0-msp/IssuerPublicKey | 0 .../orderer0-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 1 + .../orderer/secrets/orderer0-msp/config.yaml | 14 + ...b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk | 1 + .../secrets/orderer0-msp/signcerts/cert.pem | 1 + .../secrets/orderer0-tls/IssuerPublicKey | 0 .../orderer0-tls/IssuerRevocationPublicKey | 0 ...ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk | 0 .../secrets/orderer0-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 1 + .../secrets/orderer1-msp/IssuerPublicKey | 0 .../orderer1-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer1-msp/config.yaml | 175 ++++++ ...afa61d5dc4498052e0386c2f773271280169548_sk | 0 .../secrets/orderer1-msp/keystore/key.pem | 0 .../secrets/orderer1-msp/signcerts/cert.pem | 0 .../secrets/orderer1-tls/IssuerPublicKey | 0 .../orderer1-tls/IssuerRevocationPublicKey | 0 ...380cc1ca3d97ddf7f44d900070f6d967091af2f_sk | 0 .../secrets/orderer1-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../secrets/orderer2-msp/IssuerPublicKey | 0 .../orderer2-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer2-msp/config.yaml | 175 ++++++ .../secrets/orderer2-msp/keystore/key.pem | 0 .../secrets/orderer2-msp/signcerts/cert.pem | 0 .../secrets/orderer2-tls/IssuerPublicKey | 0 .../orderer2-tls/IssuerRevocationPublicKey | 0 ...322193d948431ba7c4a81245ed9160861655bab_sk | 0 .../secrets/orderer2-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../secrets/orderer3-msp/IssuerPublicKey | 0 .../orderer3-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer3-msp/config.yaml | 175 ++++++ .../secrets/orderer3-msp/keystore/key.pem | 0 .../secrets/orderer3-msp/signcerts/cert.pem | 0 .../secrets/orderer3-tls/IssuerPublicKey | 0 .../orderer3-tls/IssuerRevocationPublicKey | 0 ...40c9dcc531fe5cb355fc85c0501f83f46cef279_sk | 0 .../secrets/orderer3-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../secrets/orderer4-msp/IssuerPublicKey | 0 .../orderer4-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer4-msp/config.yaml | 175 ++++++ .../secrets/orderer4-msp/keystore/key.pem | 0 .../secrets/orderer4-msp/signcerts/cert.pem | 0 .../secrets/orderer4-tls/IssuerPublicKey | 0 .../orderer4-tls/IssuerRevocationPublicKey | 0 ...440edb11c3f94026c682963b97c7387dce2f46f_sk | 0 .../secrets/orderer4-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../patch-orderer-msp-config-inplace.sh | 37 ++ .../patch-orderer-msp-config-json-v2.sh | 35 ++ .../secrets/patch-orderer-msp-config-json.sh | 34 ++ .../secrets/patch-orderer-msp-config.sh | 69 +++ .../orderer/secrets/restore-fabric-orderer.sh | 55 ++ 127 files changed, 3702 insertions(+) create mode 100644 hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md create mode 100644 hyperledger-fabric-network/orderer/README.md create mode 100644 hyperledger-fabric-network/orderer/genesis/genesis.block create mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml create mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt create mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl create mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml create mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml create mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml create mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml create mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/README.md create mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml create mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml create mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml create mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml create mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml create mode 100644 hyperledger-fabric-network/orderer/scripts/check.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/key.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/keystore/key.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/keystore/key.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/keystore/key.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerRevocationPublicKey create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/signcerts/cert.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem create mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh create mode 100644 hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh diff --git a/hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md b/hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md new file mode 100644 index 0000000..8a64b56 --- /dev/null +++ b/hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md @@ -0,0 +1,271 @@ +# Orderer Infrastructure Documentation Index + +This index provides a comprehensive overview of all documentation, scripts, and policies for the Hyperledger Fabric orderer infrastructure on Kubernetes. + +## 📋 Quick Navigation + +| Document | Purpose | Audience | Status | +|----------|---------|----------|--------| +| [TECHNICAL_SPECS.md](#technical-specifications) | Architecture & technical design | Platform/SRE Engineers | ✅ Complete | +| [OPERATIONAL_PROCEDURES.md](#operational-procedures) | Day-2 operations & runbooks | Operations Teams | ✅ Complete | +| [SECURITY_PROCEDURES.md](#security-procedures) | Security controls & hardening | Security Engineers | ✅ Complete | +| [scripts/check.sh](#health-check-script) | One-click health validation | All Teams | ✅ Complete | +| [policies/kyverno/](#security-policies) | Admission control policies | Security/Platform Teams | ✅ Complete | + +--- + +## 📖 Documentation Overview + +### Technical Specifications +**File**: `TECHNICAL_SPECS.md` +**Purpose**: Complete technical reference for orderer infrastructure architecture +**Contents**: +- Kubernetes resource specifications (StatefulSet, Services, PVC, RBAC) +- Raft consensus configuration and requirements +- Genesis block management and structure +- MSP and TLS secret structure for orderer identity +- Network ports, resource sizing, and security contexts +- Integration points with peer organizations +- Scaling, high availability, and known issues + +**Key Configuration**: +- Namespace: `orderer` +- Chart Path: `./helm/orderer` +- Labels: `app.kubernetes.io/part-of=hyperledger-fabric` +- Consensus: Raft-based ordering service + +--- + +### Operational Procedures +**File**: `OPERATIONAL_PROCEDURES.md` +**Purpose**: Day-2 operations runbooks and maintenance procedures +**Contents**: +- Deployment and upgrade procedures for orderer cluster +- Raft consensus operations and health monitoring +- Genesis block management and updates +- MSP/TLS secret management and rotation +- Backup, restore, and disaster recovery +- Adding/removing orderer nodes safely +- Troubleshooting consensus, connectivity, and storage issues + +**Quick Commands**: +```bash +# Deploy orderer +helm upgrade --install fabric-orderer "./helm/orderer" -n orderer -f values-orderer.yaml + +# Check consensus health +kubectl -n orderer logs fabric-orderer-0 | grep -i "raft\|leader" + +# Validate secrets +kubectl -n orderer describe secret fabric-orderer-msp +``` + +--- + +### Security Procedures +**File**: `SECURITY_PROCEDURES.md` +**Purpose**: Security controls, hardening, and compliance guidance +**Contents**: +- Consensus security and Raft cluster protection +- Identity and Access Management (RBAC, ServiceAccounts) +- Network security with mTLS and NetworkPolicies +- Genesis block security and integrity +- Certificate management and rotation workflows +- Pod and container hardening (non-root, seccomp, capabilities) +- Incident response for consensus and certificate issues +- Compliance mapping and periodic security tasks + +**Security Objectives**: +- Consensus Integrity: Protect Raft mechanism from attacks +- Transaction Ordering: Secure ordering without content modification +- Network Isolation: Secure cluster from unauthorized access +- Genesis Block: Protect network bootstrap configuration + +--- + +## 🔧 Scripts and Tools + +### Health Check Script +**File**: `scripts/check.sh` +**Purpose**: One-click health validation for orderer infrastructure +**Modes**: +- `summary` (default): Basic pods, services, PVCs, consensus leader check +- `deep`: Comprehensive check including certificates, secrets, Genesis block +- `secrets-only`: MSP/TLS secrets structure and cert/key matching +- `consensus-only`: Raft consensus health and leadership only + +**Usage**: +```bash +# Quick health check +./scripts/check.sh + +# Full validation +./scripts/check.sh deep + +# Consensus validation only +./scripts/check.sh consensus-only +``` + +**Features**: +- Color-coded output (errors, warnings, success) +- Raft consensus leadership detection +- Genesis block validation +- MSP secret structure validation +- TLS certificate/private key pair verification +- Certificate expiration checking (30/90 day warnings) + +--- + +## 🛡️ Security Policies + +### Kyverno Admission Policies +**Directory**: `policies/kyverno/` +**Purpose**: Enforce security baselines and validation via admission control + +#### Policy Catalog + +| Policy | File | Purpose | Enforcement | +|--------|------|---------|-------------| +| **Image Security** | `disallow-latest-tags.yaml` | Block `:latest` image tags | 🔒 Enforce | +| **Container Security** | `enforce-security-context.yaml` | Non-root, seccomp, capabilities | 🔒 Enforce | +| **Secret Validation** | `validate-orderer-secrets.yaml` | Validate MSP/TLS structure | 🔒 Enforce | +| **Genesis Block** | `validate-genesis-block.yaml` | Validate Genesis block ConfigMap | 🔒 Enforce | +| **Network Security** | `restrict-network-access.yaml` | Generate NetworkPolicies | 📝 Generate | + +#### Installation +```bash +# Install Kyverno (if not present) +kubectl apply -f https://github.com/kyverno/kyverno/releases/latest/download/install.yaml + +# Apply all policies +kubectl apply -f policies/kyverno/ + +# Verify policies +kubectl get cpol +``` + +#### Policy Details + +**disallow-latest-tags.yaml** +- Prevents deployment of containers with `:latest` tags +- Scope: Pod, Deployment, StatefulSet in orderer namespace +- Rationale: Ensures reproducible deployments + +**enforce-security-context.yaml** +- Enforces non-root execution (`runAsNonRoot: true`) +- Requires RuntimeDefault seccomp profile +- Drops all Linux capabilities +- Prevents privilege escalation + +**validate-orderer-secrets.yaml** +- MSP secret (fabric-orderer-msp) must contain: cacerts, signcerts, keystore, config.yaml +- TLS secret (fabric-orderer-tls) must contain: tls.crt, tls.key, ca.crt +- Validates at secret creation/update time + +**validate-genesis-block.yaml** +- ConfigMap fabric-genesis-block must contain genesis.block data +- StatefulSet fabric-orderer must mount Genesis block ConfigMap +- Ensures Genesis block consistency + +**restrict-network-access.yaml** +- Auto-generates NetworkPolicy for orderer namespace +- Allows: Peers (7050), Inter-orderer Raft (7050), Monitoring (9443) +- Default deny for all other ingress traffic + +--- + +## 🏗️ Architecture Context + +### Orderer Deployment +``` +orderer/ # Orderer namespace +├── fabric-orderer-0, fabric-orderer-1, fabric-orderer-2 # Raft cluster (3 nodes) +├── fabric-orderer-msp, fabric-orderer-tls (secrets) # Identity and TLS +├── fabric-genesis-block (configmap) # Network bootstrap +└── fabric-orderer, fabric-orderer-headless (services) # Peer access + discovery +``` + +### Consensus Architecture +- **Raft Consensus**: 3, 5, or 7 orderers for fault tolerance +- **Leader Election**: One active leader, others follow +- **Log Replication**: Transaction ordering replicated across cluster +- **Fault Tolerance**: (n-1)/2 failures tolerated + +### Integration Points +- **Peer Connections**: Peers submit transactions on port 7050 +- **Genesis Block**: Network initialization and configuration +- **Channel Operations**: Channel creation and configuration updates +- **Certificate Authority**: Enrollment and certificate renewal +- **Operations/Metrics**: Health and metrics endpoint on port 9443 + +--- + +## 📚 Reference Materials + +### External Documentation +- [Hyperledger Fabric Orderer Documentation](https://hyperledger-fabric.readthedocs.io/en/latest/orderer_deploy.html) +- [Raft Consensus Algorithm](https://raft.github.io/) +- [Fabric Genesis Block Configuration](https://hyperledger-fabric.readthedocs.io/en/latest/config.html) +- [Kubernetes StatefulSet Best Practices](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) +- [Kyverno Policy Library](https://kyverno.io/policies/) + +### Related Network Components +- **Peers**: `../peers/` - Peer organization configuration +- **CA**: `../ca/` - Certificate Authority setup +- **Network Scripts**: `../scripts/` - Network deployment automation +- **Monitoring**: `../monitoring/` - Certificate monitoring and alerting + +--- + +## 🚀 Getting Started + +### New Team Members +1. Read [TECHNICAL_SPECS.md](./TECHNICAL_SPECS.md) for architecture overview +2. Review [OPERATIONAL_PROCEDURES.md](./OPERATIONAL_PROCEDURES.md) for common tasks +3. Run `./scripts/check.sh deep` to validate current deployment +4. Check [SECURITY_PROCEDURES.md](./SECURITY_PROCEDURES.md) for security guidelines + +### Emergency Procedures +1. **Consensus Issues**: Follow troubleshooting in OPERATIONAL_PROCEDURES.md section 10.2 +2. **Certificate Issues**: Use scripts/check.sh secrets-only + SECURITY_PROCEDURES.md section 13 +3. **Genesis Block Issues**: Check OPERATIONAL_PROCEDURES.md section 4 and SECURITY_PROCEDURES.md section 13.3 +4. **Network Partitions**: Follow OPERATIONAL_PROCEDURES.md section 15.1 + +### Common Tasks Quick Reference +| Task | Command | Documentation | +|------|---------|---------------| +| Health Check | `./scripts/check.sh` | [Scripts](#health-check-script) | +| Deploy Orderer | `helm upgrade --install fabric-orderer ./helm/orderer -n orderer -f values-orderer.yaml` | [Operations](./OPERATIONAL_PROCEDURES.md#1-deploy-or-upgrade-orderer) | +| Check Consensus | `./scripts/check.sh consensus-only` | [Operations](./OPERATIONAL_PROCEDURES.md#3-raft-consensus-operations) | +| Rotate Certs | Follow cert rotation workflow | [Security](./SECURITY_PROCEDURES.md#10-certificate-and-key-management) | +| Scale Orderer | `kubectl -n orderer scale sts fabric-orderer --replicas=5` | [Operations](./OPERATIONAL_PROCEDURES.md#91-adding-orderer-nodes) | +| View Logs | `kubectl -n orderer logs fabric-orderer-0 --tail=200` | [Operations](./OPERATIONAL_PROCEDURES.md#111-basic-health) | + +--- + +## 📞 Support and Contacts + +### Documentation Ownership +- **Technical Specifications**: Platform/Blockchain SRE Team +- **Operational Procedures**: Operations Team +- **Security Procedures**: Security Engineering Team +- **Scripts and Policies**: Platform Team + +### Escalation Path +1. **Consensus Failures**: Immediate escalation to SRE team +2. **Certificate Issues**: Security team consultation required +3. **Network Partitions**: Coordinate with infrastructure team +4. **Genesis Block Issues**: Require network-wide coordination + +### Update Process +1. Create PR with documentation changes +2. Review with appropriate team owners +3. Update version numbers and change dates +4. Test changes with validation scripts +5. Merge after approval + +**Last Updated**: 2025-01-02 +**Version**: 1.0 +**Maintainers**: Platform/Blockchain SRE + +For detailed information, start with the [📋 Documentation Index](./DOCUMENTATION_INDEX.md). diff --git a/hyperledger-fabric-network/orderer/README.md b/hyperledger-fabric-network/orderer/README.md new file mode 100644 index 0000000..3f1af65 --- /dev/null +++ b/hyperledger-fabric-network/orderer/README.md @@ -0,0 +1,328 @@ +# Hyperledger Fabric Orderer Infrastructure + +Production-ready Hyperledger Fabric orderer infrastructure for Kubernetes, featuring Raft consensus, comprehensive documentation, security policies, and operational tooling. + +## 🚀 Quick Start + +```bash +# Health check +./scripts/check.sh + +# Deploy orderer cluster +helm upgrade --install fabric-orderer "./helm/orderer" -n orderer -f values-orderer.yaml --create-namespace + +# Verify deployment +kubectl -n orderer get pods,svc,pvc + +# Check consensus health +./scripts/check.sh consensus-only +``` + +## 📁 Repository Structure + +``` +orderer/ +├── DOCUMENTATION_INDEX.md # 📋 Master documentation index +├── TECHNICAL_SPECS.md # 🏗️ Architecture & technical design +├── OPERATIONAL_PROCEDURES.md # 🔧 Day-2 operations & runbooks +├── SECURITY_PROCEDURES.md # 🛡️ Security controls & hardening +├── scripts/ +│ └── check.sh # ✅ One-click health validation +├── policies/kyverno/ # 🔐 Security admission policies +│ ├── disallow-latest-tags.yaml +│ ├── enforce-security-context.yaml +│ ├── validate-orderer-secrets.yaml +│ ├── validate-genesis-block.yaml +│ ├── restrict-network-access.yaml +│ └── README.md +└── [Helm charts, values, secrets] # 📦 Deployment artifacts +``` + +## 🏛️ Consensus Architecture + +| Component | Purpose | Configuration | Status | +|-----------|---------|---------------|--------| +| **Raft Cluster** | Consensus mechanism | 3-7 orderers (odd numbers) | ✅ Active | +| **Genesis Block** | Network bootstrap | ConfigMap-based | ✅ Available | +| **Leader Election** | Consensus leadership | Automatic failover | ✅ Monitored | +| **Log Replication** | Transaction ordering | Distributed ledger | ✅ Replicated | + +## 🎯 Key Features + +### 📚 **Comprehensive Documentation** +- **Technical Specifications**: Complete architecture reference +- **Operational Procedures**: Production-ready runbooks +- **Security Procedures**: Consensus security and hardening guidance +- **Documentation Index**: Master navigation and overview + +### 🔍 **One-Click Health Validation** +```bash +./scripts/check.sh [summary|deep|secrets-only|consensus-only] +``` +- Raft consensus health and leadership +- Pod and service health +- Genesis block validation +- MSP/TLS secret structure validation +- Certificate/key pair verification +- Certificate expiration monitoring + +### 🛡️ **Security-First Design** +- **Kyverno Policies**: Admission control for security baselines +- **Consensus Security**: Raft cluster protection and integrity +- **mTLS Everywhere**: Peer connections, inter-orderer, operations +- **Network Isolation**: NetworkPolicies and ingress restrictions +- **Genesis Block Protection**: Tamper-evident network configuration + +### 🎛️ **Production Operations** +- **Raft Consensus**: 3-node fault-tolerant cluster +- **Helm-Based**: GitOps-ready deployments +- **Scalable**: Add/remove orderers safely +- **Observable**: Prometheus metrics, consensus monitoring +- **Recoverable**: Backup/restore with disaster recovery + +## 📖 Documentation Quick Links + +| Document | Purpose | Quick Access | +|----------|---------|--------------| +| 📋 [Documentation Index](./DOCUMENTATION_INDEX.md) | Master overview and navigation | **Start here** | +| 🏗️ [Technical Specs](./TECHNICAL_SPECS.md) | Architecture, Kubernetes resources, Raft | Engineers | +| 🔧 [Operations](./OPERATIONAL_PROCEDURES.md) | Deploy, consensus ops, troubleshoot | Operations | +| 🛡️ [Security](./SECURITY_PROCEDURES.md) | Hardening, policies, incident response | Security | + +## ⚡ Common Tasks + +### Deploy Orderer Cluster +```bash +# Set chart path +CHART_PATH="./helm/orderer" + +# Deploy with orderer configuration +helm upgrade --install fabric-orderer "$CHART_PATH" \ + -n orderer -f values-orderer.yaml --create-namespace + +# Verify Raft cluster formation +kubectl -n orderer logs fabric-orderer-0 | grep -i "raft\|leader" +``` + +### Health Check +```bash +# Quick consensus check +./scripts/check.sh + +# Full validation with certificates and Genesis block +./scripts/check.sh deep + +# Only validate Raft consensus health +./scripts/check.sh consensus-only +``` + +### Scale Orderer Cluster +```bash +# Scale to 5 nodes (must be odd number) +kubectl -n orderer scale sts fabric-orderer --replicas=5 + +# Verify new nodes join Raft cluster +kubectl -n orderer logs fabric-orderer-4 | grep "joined.*cluster" +``` + +### Troubleshoot Issues +```bash +# Check orderer pod status +kubectl -n orderer get pods -l app.kubernetes.io/name=fabric-orderer + +# View consensus logs +kubectl -n orderer logs fabric-orderer-0 --tail=200 + +# Validate secrets and Genesis block +kubectl -n orderer describe secret fabric-orderer-msp +kubectl -n orderer describe configmap fabric-genesis-block + +# Check secret structure +./scripts/check.sh secrets-only +``` + +## 🔐 Security Features + +### Admission Policies (Kyverno) +```bash +# Install Kyverno +kubectl apply -f https://github.com/kyverno/kyverno/releases/latest/download/install.yaml + +# Apply orderer security policies +kubectl apply -f policies/kyverno/ + +# Verify policies +kubectl get cpol +``` + +**Policy Coverage**: +- ✅ Block `:latest` image tags +- ✅ Enforce non-root containers +- ✅ Require seccomp profiles +- ✅ Drop all Linux capabilities +- ✅ Validate MSP/TLS secret structure +- ✅ Validate Genesis block ConfigMap +- ✅ Network ingress restrictions + +### Consensus Security +```bash +# Monitor Raft leadership +kubectl -n orderer logs fabric-orderer-0 | grep "became leader\|lost leadership" + +# Check cluster membership +kubectl -n orderer logs fabric-orderer-0 | grep "cluster membership" + +# Validate Genesis block consistency +./scripts/check.sh deep +``` + +## 🏗️ Architecture Overview + +### Kubernetes Resources +- **StatefulSet**: Orderer cluster with persistent identity (fabric-orderer) +- **Services**: ClusterIP (peer access) + Headless (Raft discovery) +- **PVC**: Persistent storage for Raft logs and ledger data +- **Secrets**: MSP (orderer identity) + TLS (transport security) +- **ConfigMap**: Genesis block (network bootstrap configuration) +- **NetworkPolicy**: Ingress restrictions and peer access control + +### Raft Consensus +``` +Orderer Cluster (3 nodes): +├── fabric-orderer-0 (Leader) # Active leader, processes transactions +├── fabric-orderer-1 (Follower) # Replicates leader's log +└── fabric-orderer-2 (Follower) # Replicates leader's log + +Fault Tolerance: (3-1)/2 = 1 node failure tolerated +``` + +### Genesis Block Structure +``` +Genesis Block ConfigMap: +├── genesis.block # Binary genesis block file +├── Consortium definitions # Network participants +├── Orderer MSP definitions # Orderer organization identity +└── Raft configuration # Consensus parameters +``` + +## 🔧 Prerequisites + +### Required Tools +- `kubectl` - Kubernetes CLI +- `helm` - Kubernetes package manager +- `openssl` - Certificate validation (optional) + +### Cluster Requirements +- Kubernetes 1.20+ +- RBAC enabled +- StorageClass for persistent volumes (high IOPS recommended) +- Optional: Kyverno for admission policies + +### Network Access +- Peer organizations (ingress on port 7050) +- Inter-orderer Raft communication (port 7050) +- Operations/metrics endpoint (port 9443, optional) + +## 🚨 Emergency Procedures + +### Consensus Failure (No Leader) +1. Check logs: `kubectl -n orderer logs fabric-orderer-0 | grep -i raft` +2. Validate Genesis block: `./scripts/check.sh deep` +3. See [Operations Guide](./OPERATIONAL_PROCEDURES.md#102-raft-consensus-issues) + +### Certificate Issues +1. Run certificate check: `./scripts/check.sh secrets-only` +2. Follow [Security Guide](./SECURITY_PROCEDURES.md#132-tls-certificate-emergency) +3. Recreate secrets if needed + +### Genesis Block Corruption +1. Validate ConfigMap: `kubectl -n orderer describe configmap fabric-genesis-block` +2. Follow [Security Guide](./SECURITY_PROCEDURES.md#133-genesis-block-corruption) +3. Restore from backup if needed + +## 📊 Monitoring + +### Consensus Health +```bash +# Check current leader +kubectl -n orderer logs fabric-orderer-0 | grep "became leader" + +# Monitor block production +kubectl -n orderer logs fabric-orderer-0 | grep "Created block" + +# Raft cluster membership +kubectl -n orderer logs fabric-orderer-0 | grep "cluster membership" +``` + +### Operations Endpoint +```bash +# Port-forward to operations endpoint +kubectl -n orderer port-forward svc/fabric-orderer 9443:9443 + +# Check health +curl -sk https://localhost:9443/healthz + +# View metrics (if enabled) +curl -sk https://localhost:9443/metrics | grep consensus +``` + +### Log Aggregation +```bash +# Stream all orderer logs +kubectl -n orderer logs -l app.kubernetes.io/name=fabric-orderer -f + +# Specific orderer logs +kubectl -n orderer logs fabric-orderer-0 -f +``` + +## 🤝 Contributing + +### Documentation Updates +1. Fork repository and create feature branch +2. Update relevant documentation files +3. Test changes with `./scripts/check.sh deep` +4. Submit pull request with clear description + +### Scaling Orderer Cluster +1. Plan: odd numbers only (3, 5, 7) +2. Update Genesis block with new orderer definitions +3. Scale: `kubectl -n orderer scale sts fabric-orderer --replicas=5` +4. Verify: monitor logs for cluster membership changes +5. Update documentation + +## 📞 Support + +### Team Contacts +- **Platform/SRE Team**: Technical architecture, Kubernetes infrastructure, Raft consensus +- **Operations Team**: Deployment, scaling, day-2 operations +- **Security Team**: Policies, Genesis block, certificate management, incident response + +### Escalation Guidelines +- **Consensus Failures**: Immediate SRE escalation +- **Certificate Issues**: Security team consultation +- **Genesis Block Issues**: Network-wide coordination required +- **Network Partitions**: Infrastructure team coordination + +### Useful Commands Reference +```bash +# Get all orderer resources +kubectl -n orderer get all,secrets,configmaps,pvc + +# Check Helm release +helm list -n orderer + +# View Kyverno policies +kubectl get cpol | grep orderer + +# Monitor Raft consensus +kubectl -n orderer logs -f fabric-orderer-0 | grep -i raft +``` + +--- + +**📍 Location**: `/root/hyperledger-fabric-network/orderer/` +**🏷️ Version**: 1.0 +**📅 Last Updated**: 2025-01-02 +**👥 Maintainers**: Platform/Blockchain SRE Team + +For detailed information, start with the [📋 Documentation Index](./DOCUMENTATION_INDEX.md). diff --git a/hyperledger-fabric-network/orderer/genesis/genesis.block b/hyperledger-fabric-network/orderer/genesis/genesis.block new file mode 100644 index 0000000000000000000000000000000000000000..5cd2880aacee6adaa1db1a7e8bc68fc97c404e6f GIT binary patch literal 16453 zcmeHOON`^#b)9PW^pu~+?FwVV$if@10yu^@K@z}7V89!1jI0u58N~1+2m&~XscNaZ zdOAH_)6?i~52S)r(&N44<>R}T=bd*5PL6MXv-UY#{Ly#r{7q8(XyL!#;(v1Olh=;^ z`McD={_q#S|84bWuOn}s9e_W|-+z$5zXZN`cyM%ZeBd1P0H<%)rq%A--GTCz&jk!2ZX!$9#;qg=v9cn!ry7~a6`hE=bZjjCyv z%R>{z?K*Ody!PimeCtb}{4-ej!C(H>n}=`y`yYO1^&hW)@4rSbAz%Fp_`R>+CKK`d$-~*i8MgHy<^1WNgU*EdezG?jWjk}u{ zK{G6Wo1`U$ZL%a(=<`;8DYV8oJ3S;l0rm zO-V;%JAuxwCn%lUr@)}-Qw~lUSnAQlm?QgrZq;1FKH>2Fd~XUh#g^tw3Rs#Sn|>oQ z2H2RB#FTb4sxOKiK<ltAuCzD^F)E&z#U*4x;BfBv%|G`AygKy$L5x(`I_^MA0k4 z*9Ps(7;rJr%5-d&`k51x1q*9Z0X6Lfs=Us%2u@tcs@Ld{ON4Eg297GsSzF ztKz*#8LuO(&KDCnn-f`zPYM#H+Ve)uY?!IJWA z6gl3u6|*^|ss)aN0Yj1tM&_yw0&*lo9mvr=k`>8jwc)}^TxbKoEVS6#Y^b?p9F~`U zuP)FLCocwJPhG5&jwZ5>(C*;g$X+^GcR5x|?P0GYF8sngZt5BEP|JX&NKJLE$@iVl zgYywi^VGwmp129F%Pm+&ZfriWntt|)!vo}7H^4qw_Q|qOmIrSU$PLqT?OA;M&3%6C zZzlVj$=e|ma(!;w;mKd@vtyqf`|NlqJ6<*{-<{ogYo8wb^w_7zL+SBKaBpURd;@Os zBs!^r?Kk8Oayy@ud4Zsh;39lmsYgxtJ5x8G0`TdxXuMY4^YBZ!dCAfL|7k1x61 zL|(n@cG+nVy79Ymy0bmv@d@}KVZ`QGcGouYG2}ys;OOk^Z%eP8o!#CY;P}(v)pHxg z_3a>uk(T7-QVKR5LXHgO<+1y5c(L;XT1BZ5OTA?wDk$>xfH-8PhzU^!Djj=bn zyZ!M-v^3u^y(DLL!Z*CYG`yof#*e>ycs_f42iByfQQ4l@$^y&r*g)u3aPSAQ}v)dpY>>!R)Q)^w5a^j zOHK+NW=w>DBhI-it1XHHju3O=BVwS~YZ7T5nd5|nLpO<>&w&%j<)^^+TN1aSROq|` z?wlz{91w&Y7yC_=Vf&@_VCb})%Ss2Y`MezY;Tn!MzMv&@G(*9GLr6t`DR(7)8PiNUP=(?KKCnSQ3LY+_dQ z$*Iprmdc}>-$SM`(FSR%!knIRI2sV5)*>NI_gaywsS;|=I9HfOuEA)DIM97#u$t%X z^I^H_3NGuOlI=iuvF32rUJjX64DiFtH7+ws z;6X}>YK1fCiPiGD&9j}=B#J#1?R4t84oAT}n73kf7$`)7Svl9~Se&5(9?wP*UAFOI zeJVQ@S8h+26fs+_gr%F{LWMD~A}*uv#3-HY3&uHfv@aO@g0U|cS11^l@kr@0c;rv6 zghw_vrAv5(EObMoPcBh!RV=1%sb1(R1IzBJSp8Rb73Y3=*{tNeD0qav3LcS`?ImTC zHX++it)YozxNLImWFA2)G?ijUb%E4cdR1ah8x4Dq-*ok%Rp(f=)n@vHRA(B3L(OKH zA6SyyRVgnK>0p#SOFSY;owy(+WpA;l<8`y#ouv4P>C6O`dwO_8yNpNZ7X^>V?;4Mo z`4X2%vMqT=6uKov*ZB!qD4Mp{3p+(4&VmBnTaXJ@Xidm&2d}F!bO}ttdlqOU`tUSe zxRjTg1H3#6S`tQ^hRR~IHUTwt5OLFK`uX>YNA?BdiB_!tzh&QdIf2<1jD5klza+k$ zz&ziAaT$-4AA?8!^h$W-ZTtu|clg?{7Gt8(g=jAs`KiOA(+Sq-y+7~>{lef8_9}Qp zu6ddexpj)5^1#YZ9Q7-HK7=y18_ zjm%8eO^by}xz5#zfYyw@42705%rJ>8I`Z_r;*ov9cwTs9UoiFs;~_lqd<({9JW_cK z9(khmns$542yi-z*1VixZYNHJc!*}G$OrEaJi@*(c!awO9uYO$OA7;&Gz_Ot2B&FV zA)8UP)a=c}^t9)BWsoliiP^ZamY_cJv^v3(M4iM0%UpL`_@FeYK&F8SHC?5gsGi{H z#5+BGrg((pYV~#((@l9)XF|O(a$KRfa+j^))8j{~m+=VqqTrG2$??cSu4Wa;ccl`yA#Q(SAlMB_4Ljysb8=6IxKNoBy>3p&JRj8zScg3dW=`;=6Y^@>Kv zYt$Q|rY+lx8T*v+$i84)P0{}p_>q0V*cXgPSOT8*PetQ>8+E3yBPN} zwi8zD`f@Hb+WNrtuu=8>fk)1t#Caj~BjQ!?h(r|}J)Ov2*chRlz>c$lP*E3xY|JW{ zUec!_;K!@66Gl|R#I7<)Q%b~fM`p0jdNFOZR%Vp0+he}9SX&rbS3{u|2h_8~BeGL% zq$n|i;)KeKg2~urI4A~DPr#I?#gFh0=tsmC1ds6VK|f+-oZPn>iqXpHj2pD`~GQCW9EHh>aDU?FA%3@Q!$EI zd8R#OJhCqs&kT?33&y@+JQ|NYmx6&H;AIR&{pbk1c5wUU&zzl|UC3rnPA)XWuOT-N zKah)Nx2oNvYdg{G$sOr|3Zu~*;%2pM8VS934U3_7)l^b8S z*@=lSY~Hq?opu=c#{=-8jbJwjV>j_5 t_h1;0fzBJ_>LV{gKCX8|^PR@(PCx(Xv44f}yc?^>`J=+%8hB~<_e=kHc$xqJ literal 0 HcmV?d00001 diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml new file mode 100644 index 0000000..97983a1 --- /dev/null +++ b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: fabric-orderer +description: Hyperledger Fabric RAFT Ordering Service (one StatefulSet per orderer) +type: application +version: 0.1.0 +appVersion: "2.5.7" diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt new file mode 100644 index 0000000..7cf5b1d --- /dev/null +++ b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt @@ -0,0 +1,11 @@ +Thanks for installing {{ include "fabric-orderer.fullname" . }}! + +1) Verify pods: + kubectl get pods -l app.kubernetes.io/component=orderer -n {{ .Release.Namespace }} + +2) Verify services: + kubectl get svc -l app.kubernetes.io/component=orderer -n {{ .Release.Namespace }} + +3) Health checks (Operations endpoint): + kubectl port-forward svc/{{ (index .Values.orderers 0).name }} {{ .Values.ports.operations }}:{{ .Values.ports.operations }} -n {{ .Release.Namespace }} + curl http://127.0.0.1:{{ .Values.ports.operations }}/healthz diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl new file mode 100644 index 0000000..e6ae749 --- /dev/null +++ b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl @@ -0,0 +1,23 @@ +{{- define "fabric-orderer.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end }} + +{{- define "fabric-orderer.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s" (include "fabric-orderer.name" .) | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end }} + +{{- define "fabric-orderer.labels" -}} +app.kubernetes.io/name: {{ include "fabric-orderer.name" . }} +helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }} +app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" . }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "fabric-orderer.ordererLabels" -}} +{{ include "fabric-orderer.labels" $ }} +app.kubernetes.io/component: orderer +{{- end }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml new file mode 100644 index 0000000..7e8fc13 --- /dev/null +++ b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "fabric-orderer.fullname" . }}-config + labels: + {{- include "fabric-orderer.labels" . | nindent 4 }} +data: + orderer.yaml: | +{{- /* Render ordererConfig as YAML under orderer.yaml */}} +{{- toYaml .Values.ordererConfig | nindent 4 }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml new file mode 100644 index 0000000..6567f92 --- /dev/null +++ b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml @@ -0,0 +1,27 @@ +{{- range $i, $o := .Values.orderers }} +apiVersion: v1 +kind: Service +metadata: + name: {{ $o.name }} + labels: + app.kubernetes.io/name: {{ $o.name }} + app.kubernetes.io/component: orderer + app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" $ }} + helm.sh/chart: {{ $.Chart.Name }}-{{ $.Chart.Version }} +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: {{ $o.name }} + app.kubernetes.io/component: orderer + ports: + - name: client + port: {{ $.Values.ports.client }} + targetPort: {{ $.Values.ports.client }} + - name: cluster + port: {{ $.Values.ports.cluster }} + targetPort: {{ $.Values.ports.cluster }} + - name: operations + port: {{ $.Values.ports.operations }} + targetPort: {{ $.Values.ports.operations }} +--- +{{- end }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml new file mode 100644 index 0000000..4b8f1bd --- /dev/null +++ b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml @@ -0,0 +1,243 @@ +{{- range $i, $o := .Values.orderers }} +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ $o.name }} + labels: + app.kubernetes.io/name: {{ $o.name }} + app.kubernetes.io/component: orderer + app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" $ }} + helm.sh/chart: {{ $.Chart.Name }}-{{ $.Chart.Version }} +spec: + serviceName: {{ $o.name }} + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: {{ $o.name }} + app.kubernetes.io/component: orderer + template: + metadata: + labels: + app.kubernetes.io/name: {{ $o.name }} + app.kubernetes.io/component: orderer + app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" $ }} + helm.sh/chart: {{ $.Chart.Name }}-{{ $.Chart.Version }} + annotations: + # Use root context ($) so included template sees .Values + checksum/orderer-config: {{ include (print $.Template.BasePath "/configmap.yaml") $ | sha256sum }} + spec: + {{- with $.Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with $.Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with $.Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + + initContainers: + - name: init-msp-tls + image: "{{ $.Values.initImage.repository }}:{{ $.Values.initImage.tag }}" + imagePullPolicy: {{ $.Values.initImage.pullPolicy }} + command: ["/bin/sh","-c"] + args: + - | + set -euo pipefail + + DEST=/var/hyperledger/orderer + MSP=${DEST}/msp + + # Create MSP structure + mkdir -p ${MSP}/cacerts ${MSP}/signcerts ${MSP}/keystore ${MSP}/tlscacerts + + # Copy MSP from secret (supports both structured and flat secrets) + if [ -d /msp-src/cacerts ] || [ -d /msp-src/signcerts ] || [ -d /msp-src/keystore ]; then + cp -a /msp-src/cacerts/* ${MSP}/cacerts/ 2>/dev/null || true + cp -a /msp-src/signcerts/* ${MSP}/signcerts/ 2>/dev/null || true + cp -a /msp-src/keystore/* ${MSP}/keystore/ 2>/dev/null || true + [ -f /msp-src/config.yaml ] && cp /msp-src/config.yaml ${MSP}/config.yaml || true + else + # Flat secret: reconstruct layout from filenames + if [ -f /msp-src/cert.pem ]; then + cp /msp-src/cert.pem ${MSP}/signcerts/cert.pem + else + FIRST_CERT="$(ls -1 /msp-src/*.pem 2>/dev/null | grep -viE 'ca|root' | head -n1 || true)" + [ -n "${FIRST_CERT}" ] && cp "${FIRST_CERT}" ${MSP}/signcerts/cert.pem || true + fi + SK="$(ls -1 /msp-src/*_sk 2>/dev/null | head -n1 || true)" + [ -n "${SK}" ] && cp "${SK}" ${MSP}/keystore/ || true + for f in /msp-src/*.pem; do + [ -e "$f" ] || break + bn="$(basename "$f")" + echo "$bn" | grep -qiE 'ca|root|cacert' && cp "$f" ${MSP}/cacerts/ || true + done + [ -f /msp-src/config.yaml ] && cp /msp-src/config.yaml ${MSP}/config.yaml || true + fi + + # TLS files (expect normalized names in the TLS secret) + mkdir -p ${DEST}/tls + cp /tls-src/server.crt ${DEST}/tls/server.crt + cp /tls-src/server.key ${DEST}/tls/server.key + cp /tls-src/ca.crt ${DEST}/tls/ca.crt + + # Also place TLS CA into MSP tlscacerts (recommended) + cp ${DEST}/tls/ca.crt ${MSP}/tlscacerts/tls-ca.pem + + # Tighten key perms + chmod 600 ${MSP}/keystore/* 2>/dev/null || true + volumeMounts: + - name: msp-src + mountPath: /msp-src + readOnly: true + - name: tls-src + mountPath: /tls-src + readOnly: true + - name: orderer-writable + mountPath: /var/hyperledger/orderer + + containers: + - name: orderer + image: "{{ $.Values.image.repository }}:{{ $.Values.image.tag }}" + imagePullPolicy: {{ $.Values.image.pullPolicy }} + command: ["orderer"] + env: + - name: FABRIC_LOGGING_SPEC + value: "INFO" + + # Listen + - name: ORDERER_GENERAL_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_LISTENPORT + value: "{{ $.Values.ports.client | toString }}" + + # MSP + - name: ORDERER_GENERAL_LOCALMSPID + value: "{{ $o.mspID }}" + - name: ORDERER_GENERAL_LOCALMSPDIR + value: "/var/hyperledger/orderer/msp" + + # TLS + - name: ORDERER_GENERAL_TLS_ENABLED + value: "true" + - name: ORDERER_GENERAL_TLS_PRIVATEKEY + value: "/var/hyperledger/orderer/tls/server.key" + - name: ORDERER_GENERAL_TLS_CERTIFICATE + value: "/var/hyperledger/orderer/tls/server.crt" + - name: ORDERER_GENERAL_TLS_ROOTCAS + value: "[/var/hyperledger/orderer/tls/ca.crt]" + + # Cluster (RAFT) - host-only address + separate port (fixes :7051:7051) + - name: ORDERER_GENERAL_CLUSTER_LISTENADDRESS + value: "0.0.0.0" + - name: ORDERER_GENERAL_CLUSTER_LISTENPORT + value: "{{ $.Values.ports.cluster | toString }}" + - name: ORDERER_GENERAL_CLUSTER_SERVERCERTIFICATE + value: "/var/hyperledger/orderer/tls/server.crt" + - name: ORDERER_GENERAL_CLUSTER_SERVERPRIVATEKEY + value: "/var/hyperledger/orderer/tls/server.key" + - name: ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE + value: "/var/hyperledger/orderer/tls/server.crt" + - name: ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY + value: "/var/hyperledger/orderer/tls/server.key" + - name: ORDERER_GENERAL_CLUSTER_ROOTCAS + value: "[/var/hyperledger/orderer/tls/ca.crt]" + + # Config file path + - name: ORDERER_CFGFILE + value: "/etc/hyperledger/fabric/orderer.yaml" + + # Bootstrap mode (Participation API default) + - name: ORDERER_GENERAL_BOOTSTRAPMETHOD + value: "{{ ternary "file" "none" $.Values.genesis.enabled }}" + {{- if $.Values.genesis.enabled }} + - name: ORDERER_GENERAL_BOOTSTRAPFILE + value: "{{ $.Values.genesis.mountPath }}/{{ $.Values.genesis.fileName }}" + {{- end }} + + # Ops & metrics + - name: ORDERER_OPERATIONS_LISTENADDRESS + value: "0.0.0.0:{{ $.Values.ports.operations | toString }}" + - name: ORDERER_METRICS_PROVIDER + value: "prometheus" + + ports: + - name: client + containerPort: {{ $.Values.ports.client }} + - name: cluster + containerPort: {{ $.Values.ports.cluster }} + - name: operations + containerPort: {{ $.Values.ports.operations }} + + volumeMounts: + - name: orderer-writable + mountPath: /var/hyperledger/orderer + - name: ledger + mountPath: /var/hyperledger/production/orderer + - name: orderer-config + mountPath: /etc/hyperledger/fabric + readOnly: true + + resources: + {{- toYaml $.Values.resources | nindent 12 }} + + {{- if $.Values.probes.liveness.enabled }} + livenessProbe: + httpGet: + path: {{ $.Values.probes.liveness.path }} + port: operations + initialDelaySeconds: {{ $.Values.probes.liveness.initialDelaySeconds }} + periodSeconds: {{ $.Values.probes.liveness.periodSeconds }} + timeoutSeconds: {{ $.Values.probes.liveness.timeoutSeconds }} + failureThreshold: {{ $.Values.probes.liveness.failureThreshold }} + {{- end }} + + {{- if $.Values.probes.readiness.enabled }} + readinessProbe: + httpGet: + path: {{ $.Values.probes.readiness.path }} + port: operations + initialDelaySeconds: {{ $.Values.probes.readiness.initialDelaySeconds }} + periodSeconds: {{ $.Values.probes.readiness.periodSeconds }} + timeoutSeconds: {{ $.Values.probes.readiness.timeoutSeconds }} + failureThreshold: {{ $.Values.probes.readiness.failureThreshold }} + {{- end }} + + volumes: + - name: orderer-writable + emptyDir: {} + - name: orderer-config + configMap: + name: {{ include "fabric-orderer.fullname" $ }}-config + items: + - key: orderer.yaml + path: orderer.yaml + # Read-only secrets (only init container reads them) + - name: msp-src + secret: + secretName: {{ $o.mspSecretName }} + - name: tls-src + secret: + secretName: {{ $o.tlsSecretName }} + {{- if $.Values.genesis.enabled }} + - name: genesis-src + secret: + secretName: {{ $.Values.genesis.secretName }} + {{- end }} + + volumeClaimTemplates: + - metadata: + name: ledger + spec: + accessModes: ["ReadWriteOnce"] + {{- if $.Values.storage.storageClassName }} + storageClassName: {{ $.Values.storage.storageClassName }} + {{- end }} + resources: + requests: + storage: {{ $.Values.storage.size }} +--- +{{- end }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml new file mode 100644 index 0000000..d8d7ba0 --- /dev/null +++ b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml @@ -0,0 +1,118 @@ +# values.yaml + +nameOverride: "" +fullnameOverride: "" + +image: + repository: hyperledger/fabric-orderer + tag: 2.5.7 + pullPolicy: IfNotPresent + +initImage: + repository: busybox + tag: "1.36" + pullPolicy: IfNotPresent + +# Define each orderer (one StatefulSet per entry) +orderers: + - name: orderer0 + mspID: OrdererMSP + mspSecretName: orderer0-msp + tlsSecretName: orderer0-tls + - name: orderer1 + mspID: OrdererMSP + mspSecretName: orderer1-msp + tlsSecretName: orderer1-tls + - name: orderer2 + mspID: OrdererMSP + mspSecretName: orderer2-msp + tlsSecretName: orderer2-tls + - name: orderer3 + mspID: OrdererMSP + mspSecretName: orderer3-msp + tlsSecretName: orderer3-tls + - name: orderer4 + mspID: OrdererMSP + mspSecretName: orderer4-msp + tlsSecretName: orderer4-tls + +# Service/container ports +ports: + client: 7050 # client/peer requests (gRPC) + cluster: 7051 # RAFT cluster comms + operations: 9443 # Prometheus/health + +# Persistent storage for ledger/WAL/snapshots +storage: + size: 10Gi + storageClassName: "" # set your StorageClass here if no default + +resources: + requests: + cpu: "250m" + memory: "512Mi" + limits: + cpu: "1000m" + memory: "2Gi" + +# Optional scheduling controls +nodeSelector: {} +tolerations: [] +affinity: {} + +# Bootstrap mode toggle +# participation API (preferred): enabled here by setting genesis.enabled=false +# legacy genesis bootstrap: set enabled=true and create the secret below +genesis: + enabled: false + secretName: "genesis-block" + mountPath: "/var/hyperledger/genesis" + fileName: "genesis.block" + +# This renders to /etc/hyperledger/fabric/orderer.yaml in the pod +ordererConfig: + General: + ListenAddress: 0.0.0.0 + ListenPort: 7050 + TLS: + Enabled: true + Keepalive: + ServerMinInterval: 60s + Cluster: + ListenPort: 7051 + + # File-based ledger path (replace deprecated General.LedgerType) + FileLedger: + Location: /var/hyperledger/production/orderer + + # Enable the Channel Participation API (no system channel / no genesis) + ChannelParticipation: + Enabled: true + + # Health/metrics + Operations: + ListenAddress: 0.0.0.0:9443 + Metrics: + Provider: prometheus + + # Optional explicit etcdraft directories (safe defaults) + Consensus: + WALDir: /var/hyperledger/production/orderer/etcdraft/wal + SnapDir: /var/hyperledger/production/orderer/etcdraft/snapshot + +# Probes (Operations endpoint is HTTP) +probes: + readiness: + enabled: true + path: /healthz + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 3 + failureThreshold: 6 + liveness: + enabled: true + path: /healthz + initialDelaySeconds: 20 + periodSeconds: 20 + timeoutSeconds: 5 + failureThreshold: 6 diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/README.md b/hyperledger-fabric-network/orderer/policies/kyverno/README.md new file mode 100644 index 0000000..b61c295 --- /dev/null +++ b/hyperledger-fabric-network/orderer/policies/kyverno/README.md @@ -0,0 +1,165 @@ +# Kyverno Security Policies for Hyperledger Fabric Orderer + +This directory contains Kyverno admission controller policies to enforce security baselines and validation for Hyperledger Fabric orderer workloads. + +## Prerequisites + +- Kyverno installed in the cluster: `kubectl apply -f https://github.com/kyverno/kyverno/releases/latest/download/install.yaml` +- Orderer namespace: `orderer` + +## Policy Overview + +### 1. disallow-latest-tags.yaml +- **Purpose**: Prevents use of `:latest` image tags +- **Scope**: Pod, Deployment, StatefulSet in orderer namespace +- **Enforcement**: Block resources with latest tags + +### 2. enforce-security-context.yaml +- **Purpose**: Enforce security hardening for orderer containers +- **Rules**: + - Run as non-root user + - No privilege escalation + - RuntimeDefault seccomp profile + - Drop all Linux capabilities +- **Scope**: All containers in orderer namespace + +### 3. validate-orderer-secrets.yaml +- **Purpose**: Validate orderer secret structure +- **Rules**: + - MSP secret (fabric-orderer-msp) must have: cacerts, signcerts, keystore, config.yaml + - TLS secret (fabric-orderer-tls) must have: tls.crt, tls.key, ca.crt +- **Scope**: Specific orderer secrets + +### 4. validate-genesis-block.yaml +- **Purpose**: Validate Genesis block configuration +- **Rules**: + - ConfigMap fabric-genesis-block must contain genesis.block data + - StatefulSet fabric-orderer must mount Genesis block ConfigMap +- **Scope**: Genesis block ConfigMap and orderer StatefulSet + +### 5. restrict-network-access.yaml +- **Purpose**: Generate NetworkPolicy for network isolation +- **Rules**: + - Allow from peer namespaces (port 7050) + - Allow inter-orderer Raft communication (port 7050) + - Allow monitoring access to operations endpoint (port 9443) +- **Type**: Generative policy (creates NetworkPolicy resources) + +## Installation + +Apply all policies: +```bash +kubectl apply -f policies/kyverno/ +``` + +Or apply individually: +```bash +kubectl apply -f policies/kyverno/disallow-latest-tags.yaml +kubectl apply -f policies/kyverno/enforce-security-context.yaml +kubectl apply -f policies/kyverno/validate-orderer-secrets.yaml +kubectl apply -f policies/kyverno/validate-genesis-block.yaml +kubectl apply -f policies/kyverno/restrict-network-access.yaml +``` + +## Verification + +Check policy status: +```bash +kubectl get cpol +kubectl describe cpol orderer-disallow-latest-tags +``` + +Test policy violations (should fail): +```bash +# This should be blocked +kubectl -n orderer create deployment test --image=nginx:latest +``` + +View generated NetworkPolicies: +```bash +kubectl -n orderer get networkpolicy orderer-ingress-policy +``` + +## Policy Modes + +Policies can run in different modes: +- `enforce`: Block non-compliant resources (default) +- `audit`: Allow but log violations + +To switch to audit mode: +```yaml +spec: + validationFailureAction: audit +``` + +## Customization + +### Network Policy Adjustments +Modify `restrict-network-access.yaml`: +- Update peer namespace selectors and labels +- Add/remove allowed ports and sources +- Adjust monitoring namespace references + +### Secret Validation +Update `validate-orderer-secrets.yaml`: +- Modify secret names if using different naming convention +- Add additional validation rules for secret content + +### Genesis Block Validation +Adjust `validate-genesis-block.yaml`: +- Change ConfigMap name if using different naming +- Modify volume mount requirements + +## Monitoring + +View policy violations: +```bash +kubectl get events --field-selector reason=PolicyViolation +kubectl get events --field-selector reason=PolicyApplied +``` + +Use Kyverno policy reports: +```bash +kubectl get polr -A # Policy Reports +kubectl get cpolr # Cluster Policy Reports +``` + +## Troubleshooting + +**Policy not enforcing**: +- Verify Kyverno is running: `kubectl -n kyverno get pods` +- Check policy status: `kubectl get cpol -o yaml` + +**NetworkPolicy not generated**: +- Ensure orderer namespace exists +- Check generate policy conditions and labels + +**Secret validation failing**: +- Verify secret naming matches policy patterns +- Ensure secrets contain all required keys + +**Genesis block validation failing**: +- Confirm ConfigMap name matches policy expectation +- Verify Genesis block data is present + +## Network Policy Requirements + +For the generated NetworkPolicy to work properly, ensure peer namespaces are labeled: +```bash +kubectl label namespace greenstand peer-access=true +kubectl label namespace cbo peer-access=true +kubectl label namespace investor peer-access=true +kubectl label namespace verifier peer-access=true +``` + +For monitoring access (optional): +```bash +kubectl label namespace monitoring monitoring-access=true +``` + +## References + +- [Kyverno Documentation](https://kyverno.io/docs/) +- [Kubernetes NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/network-policies/) +- [Hyperledger Fabric Security](https://hyperledger-fabric.readthedocs.io/en/latest/security.html) +- [Raft Consensus Security](https://raft.github.io/) diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml new file mode 100644 index 0000000..44b7a32 --- /dev/null +++ b/hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml @@ -0,0 +1,32 @@ +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: orderer-disallow-latest-tags + annotations: + description: "Disallow the use of 'latest' tags for container images in orderer namespace" + policies.kyverno.io/category: Security + policies.kyverno.io/severity: high +spec: + validationFailureAction: enforce + background: true + rules: + - name: block-latest-tags + match: + any: + - resources: + kinds: + - Pod + - Deployment + - StatefulSet + namespaces: + - orderer + validate: + message: "Container images must not use the 'latest' tag. Use specific version tags for production deployments." + pattern: + spec: + =(template): + =(spec): + =(initContainers): + - image: "!*:latest" + =(containers): + - image: "!*:latest" diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml new file mode 100644 index 0000000..b9b44b7 --- /dev/null +++ b/hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml @@ -0,0 +1,77 @@ +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: orderer-enforce-security-context + annotations: + description: "Enforce security context with non-root, no privilege escalation, and seccomp profile for orderer" + policies.kyverno.io/category: Security + policies.kyverno.io/severity: high +spec: + validationFailureAction: enforce + background: true + rules: + - name: require-non-root-user + match: + any: + - resources: + kinds: + - Pod + - Deployment + - StatefulSet + namespaces: + - orderer + validate: + message: "Orderer containers must run as non-root user" + pattern: + spec: + =(template): + =(spec): + securityContext: + runAsNonRoot: true + =(containers): + - name: "*" + securityContext: + allowPrivilegeEscalation: false + - name: require-seccomp-profile + match: + any: + - resources: + kinds: + - Pod + - Deployment + - StatefulSet + namespaces: + - orderer + validate: + message: "Orderer containers must use RuntimeDefault seccomp profile" + pattern: + spec: + =(template): + =(spec): + =(containers): + - name: "*" + securityContext: + seccompProfile: + type: RuntimeDefault + - name: drop-all-capabilities + match: + any: + - resources: + kinds: + - Pod + - Deployment + - StatefulSet + namespaces: + - orderer + validate: + message: "Orderer containers must drop all Linux capabilities" + pattern: + spec: + =(template): + =(spec): + =(containers): + - name: "*" + securityContext: + capabilities: + drop: + - ALL diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml new file mode 100644 index 0000000..ae64480 --- /dev/null +++ b/hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml @@ -0,0 +1,61 @@ +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: orderer-generate-network-policy + annotations: + description: "Generate NetworkPolicy to restrict ingress traffic for orderer workloads" + policies.kyverno.io/category: Networking + policies.kyverno.io/severity: medium +spec: + generateExisting: false + rules: + - name: generate-orderer-network-policy + match: + any: + - resources: + kinds: + - Namespace + names: + - orderer + generate: + synchronize: true + apiVersion: networking.k8s.io/v1 + kind: NetworkPolicy + name: orderer-ingress-policy + namespace: "{{ request.object.metadata.name }}" + data: + metadata: + labels: + generated-by: kyverno + app.kubernetes.io/part-of: hyperledger-fabric + spec: + podSelector: + matchLabels: + app.kubernetes.io/name: fabric-orderer + policyTypes: + - Ingress + ingress: + # Allow from peer namespaces + - from: + - namespaceSelector: + matchLabels: + peer-access: "true" + ports: + - protocol: TCP + port: 7050 + # Allow inter-orderer Raft communication + - from: + - podSelector: + matchLabels: + app.kubernetes.io/name: fabric-orderer + ports: + - protocol: TCP + port: 7050 + # Allow operations endpoint (optional) + - from: + - namespaceSelector: + matchLabels: + monitoring-access: "true" + ports: + - protocol: TCP + port: 9443 diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml new file mode 100644 index 0000000..d56b325 --- /dev/null +++ b/hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml @@ -0,0 +1,47 @@ +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: orderer-validate-genesis-block + annotations: + description: "Validate that Genesis block ConfigMap contains required data" + policies.kyverno.io/category: Configuration + policies.kyverno.io/severity: high +spec: + validationFailureAction: enforce + background: true + rules: + - name: validate-genesis-block-configmap + match: + any: + - resources: + kinds: + - ConfigMap + namespaces: + - orderer + names: + - "fabric-genesis-block" + validate: + message: "Genesis block ConfigMap must contain genesis.block data" + pattern: + data: + genesis.block: "?*" + - name: require-genesis-block-mount + match: + any: + - resources: + kinds: + - StatefulSet + namespaces: + - orderer + names: + - "fabric-orderer" + validate: + message: "Orderer StatefulSet must mount Genesis block ConfigMap" + pattern: + spec: + template: + spec: + volumes: + - name: "genesis-block" + configMap: + name: "fabric-genesis-block" diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml new file mode 100644 index 0000000..c788e7b --- /dev/null +++ b/hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml @@ -0,0 +1,47 @@ +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: orderer-validate-secrets + annotations: + description: "Validate that orderer MSP and TLS secrets contain required keys" + policies.kyverno.io/category: Security + policies.kyverno.io/severity: high +spec: + validationFailureAction: enforce + background: true + rules: + - name: validate-orderer-msp-secret + match: + any: + - resources: + kinds: + - Secret + namespaces: + - orderer + names: + - "fabric-orderer-msp" + validate: + message: "Orderer MSP secret must contain cacerts, signcerts, keystore, and config.yaml keys" + pattern: + data: + cacerts: "?*" + signcerts: "?*" + keystore: "?*" + config.yaml: "?*" + - name: validate-orderer-tls-secret + match: + any: + - resources: + kinds: + - Secret + namespaces: + - orderer + names: + - "fabric-orderer-tls" + validate: + message: "Orderer TLS secret must contain tls.crt, tls.key, and ca.crt keys" + pattern: + data: + tls.crt: "?*" + tls.key: "?*" + ca.crt: "?*" diff --git a/hyperledger-fabric-network/orderer/scripts/check.sh b/hyperledger-fabric-network/orderer/scripts/check.sh new file mode 100644 index 0000000..efdafef --- /dev/null +++ b/hyperledger-fabric-network/orderer/scripts/check.sh @@ -0,0 +1,522 @@ +#!/bin/bash +# Orderer Infrastructure Check Script +# Usage: ./scripts/check.sh [summary|deep|secrets-only|consensus-only] + +set -e + +# Default configuration +NAMESPACE="orderer" +CHART_LABEL="app.kubernetes.io/part-of=hyperledger-fabric" +ORDERER_LABEL="app.kubernetes.io/name=fabric-orderer" + +# Color output functions +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +log_info() { + echo -e "${BLUE}[INFO]${NC} $1" +} + +log_success() { + echo -e "${GREEN}[OK]${NC} $1" +} + +log_warning() { + echo -e "${YELLOW}[WARN]${NC} $1" +} + +log_error() { + echo -e "${RED}[ERROR]${NC} $1" +} + +# Usage function +usage() { + cat << EOF +Orderer Infrastructure Check Script + +Usage: $0 [MODE] + +MODE: + summary Basic check of pods, services, PVCs, consensus leader (default) + deep Full check including certificates, secrets, consensus health, Genesis block + secrets-only Check only MSP/TLS secrets structure and cert/key matching + consensus-only Check only Raft consensus health and leadership + +Examples: + $0 # Run summary check + $0 deep # Run comprehensive check + $0 secrets-only # Check only certificates and secrets + $0 consensus-only # Check only consensus health + +EOF +} + +# Check if kubectl is available +check_prerequisites() { + if ! command -v kubectl &> /dev/null; then + log_error "kubectl not found. Please install kubectl." + exit 1 + fi + + if ! command -v openssl &> /dev/null; then + log_warning "openssl not found. Certificate validation will be skipped." + OPENSSL_AVAILABLE=false + else + OPENSSL_AVAILABLE=true + fi + + if ! kubectl get namespace "$NAMESPACE" &>/dev/null; then + log_error "Namespace $NAMESPACE does not exist" + exit 1 + fi +} + +# Check orderer pods status +check_pods() { + log_info "Checking orderer pods in namespace $NAMESPACE..." + + local pods + pods=$(kubectl -n "$NAMESPACE" get pods --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") + + if [[ -z "$pods" ]]; then + log_error "No orderer pods found in namespace $NAMESPACE" + return 1 + fi + + local total_pods=0 + local running_pods=0 + local error_pods=0 + + for pod in $pods; do + ((total_pods++)) + local phase + phase=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") + + local ready + ready=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.containerStatuses[0].ready}' 2>/dev/null || echo "false") + + if [[ "$phase" == "Running" && "$ready" == "true" ]]; then + ((running_pods++)) + log_success "Pod $pod is Running and Ready" + else + ((error_pods++)) + log_error "Pod $pod is $phase (ready: $ready)" + + # Show recent events for failed pods + log_info "Recent events for $pod:" + kubectl -n "$NAMESPACE" get events --field-selector involvedObject.name="$pod" --sort-by='.lastTimestamp' | tail -3 || true + fi + done + + log_info "Pod Summary: $running_pods/$total_pods running, $error_pods errors" + + if [[ $error_pods -gt 0 ]]; then + return 1 + fi +} + +# Check services and storage +check_services_and_storage() { + log_info "Checking orderer services and storage..." + + # Check services + local services + services=$(kubectl -n "$NAMESPACE" get svc --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") + + if [[ -n "$services" ]]; then + for svc in $services; do + local endpoints + endpoints=$(kubectl -n "$NAMESPACE" get endpoints "$svc" -o jsonpath='{.subsets[0].addresses[*].ip}' 2>/dev/null || echo "") + + if [[ -n "$endpoints" ]]; then + log_success "Service $svc has endpoints: $endpoints" + else + log_warning "Service $svc has no endpoints" + fi + done + else + log_warning "No orderer services found" + fi + + # Check PVCs + local pvcs + pvcs=$(kubectl -n "$NAMESPACE" get pvc -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") + + if [[ -n "$pvcs" ]]; then + for pvc in $pvcs; do + local status + status=$(kubectl -n "$NAMESPACE" get pvc "$pvc" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") + + if [[ "$status" == "Bound" ]]; then + log_success "PVC $pvc is Bound" + else + log_error "PVC $pvc is $status" + fi + done + else + log_warning "No PVCs found for orderer" + fi +} + +# Check Raft consensus health +check_consensus() { + log_info "Checking Raft consensus health..." + + local pods + pods=$(kubectl -n "$NAMESPACE" get pods --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") + + if [[ -z "$pods" ]]; then + log_error "No orderer pods found for consensus check" + return 1 + fi + + local leader_found=false + local cluster_size=0 + + for pod in $pods; do + ((cluster_size++)) + + # Check if pod is ready + local ready + ready=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.containerStatuses[0].ready}' 2>/dev/null || echo "false") + + if [[ "$ready" != "true" ]]; then + log_warning "Pod $pod is not ready, skipping consensus check" + continue + fi + + # Check for leadership in logs + local recent_logs + recent_logs=$(kubectl -n "$NAMESPACE" logs "$pod" --tail=100 2>/dev/null | grep -i "raft" | tail -10 || echo "") + + if echo "$recent_logs" | grep -q "became leader\|is leader"; then + log_success "Pod $pod is Raft leader" + leader_found=true + elif echo "$recent_logs" | grep -q "lost leadership"; then + log_warning "Pod $pod recently lost leadership" + fi + + # Check for recent Raft activity + if echo "$recent_logs" | grep -q -E "heartbeat|election|replication"; then + log_success "Pod $pod shows recent Raft activity" + else + log_warning "Pod $pod shows no recent Raft activity" + fi + done + + # Consensus health summary + log_info "Consensus Summary: $cluster_size orderers, leader found: $leader_found" + + if [[ "$leader_found" == "false" ]]; then + log_error "No Raft leader found - consensus may be unhealthy" + return 1 + fi + + # Check quorum requirements + local min_nodes=3 + if [[ $cluster_size -lt $min_nodes ]]; then + log_warning "Cluster size ($cluster_size) is below recommended minimum ($min_nodes)" + fi + + if [[ $((cluster_size % 2)) -eq 0 ]]; then + log_warning "Even number of orderers ($cluster_size) - odd numbers recommended for Raft" + fi +} + +# Check Genesis block +check_genesis_block() { + log_info "Checking Genesis block..." + + # Check ConfigMap + local genesis_cm="fabric-genesis-block" + if kubectl -n "$NAMESPACE" get configmap "$genesis_cm" &>/dev/null; then + log_success "Genesis block ConfigMap $genesis_cm exists" + + # Check if genesis.block key exists + if kubectl -n "$NAMESPACE" get configmap "$genesis_cm" -o jsonpath='{.data.genesis\.block}' &>/dev/null; then + log_success "Genesis block data found in ConfigMap" + else + log_error "Genesis block data missing from ConfigMap" + return 1 + fi + else + log_error "Genesis block ConfigMap $genesis_cm not found" + return 1 + fi + + # Check if Genesis block is accessible in pods + local pods + pods=$(kubectl -n "$NAMESPACE" get pods --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") + + for pod in $pods; do + local ready + ready=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.containerStatuses[0].ready}' 2>/dev/null || echo "false") + + if [[ "$ready" == "true" ]]; then + if kubectl -n "$NAMESPACE" exec "$pod" -- test -f /var/hyperledger/orderer/genesis.block 2>/dev/null; then + log_success "Genesis block accessible in pod $pod" + else + log_error "Genesis block not accessible in pod $pod" + return 1 + fi + break # Only need to check one running pod + fi + done +} + +# Check MSP and TLS secrets +check_secrets() { + log_info "Checking orderer MSP and TLS secrets..." + + # Find orderer secrets + local msp_secret="fabric-orderer-msp" + local tls_secret="fabric-orderer-tls" + + # Check MSP secret + if kubectl -n "$NAMESPACE" get secret "$msp_secret" &>/dev/null; then + check_msp_secret "$msp_secret" + else + log_error "MSP secret $msp_secret not found" + return 1 + fi + + # Check TLS secret + if kubectl -n "$NAMESPACE" get secret "$tls_secret" &>/dev/null; then + check_tls_secret "$tls_secret" + else + log_error "TLS secret $tls_secret not found" + return 1 + fi +} + +# Check MSP secret structure +check_msp_secret() { + local secret="$1" + + log_info "Validating MSP secret $secret" + + local required_keys=("cacerts" "signcerts" "keystore" "config.yaml") + local missing_keys=() + + for key in "${required_keys[@]}"; do + if ! kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath="{.data.$key}" &>/dev/null; then + missing_keys+=("$key") + fi + done + + if [[ ${#missing_keys[@]} -eq 0 ]]; then + log_success "MSP secret $secret has all required keys" + + # Check if config.yaml contains NodeOUs + local config_yaml + config_yaml=$(kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath='{.data.config\.yaml}' | base64 -d 2>/dev/null || echo "") + + if [[ -n "$config_yaml" ]]; then + if echo "$config_yaml" | grep -q "NodeOUs"; then + log_success "MSP config.yaml contains NodeOUs configuration" + else + log_warning "MSP config.yaml does not contain NodeOUs configuration" + fi + + if echo "$config_yaml" | grep -q "OrdererOUIdentifier"; then + log_success "MSP config.yaml contains OrdererOUIdentifier" + else + log_warning "MSP config.yaml missing OrdererOUIdentifier" + fi + fi + else + log_error "MSP secret $secret missing keys: ${missing_keys[*]}" + return 1 + fi +} + +# Check TLS secret structure +check_tls_secret() { + local secret="$1" + + log_info "Validating TLS secret $secret" + + local required_keys=("tls.crt" "tls.key" "ca.crt") + local missing_keys=() + + for key in "${required_keys[@]}"; do + if ! kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath="{.data.$key}" &>/dev/null; then + missing_keys+=("$key") + fi + done + + if [[ ${#missing_keys[@]} -eq 0 ]]; then + log_success "TLS secret $secret has all required keys" + + # Validate certificate/key matching if openssl is available + if [[ "$OPENSSL_AVAILABLE" == "true" ]]; then + check_tls_cert_key_match "$secret" + fi + else + log_error "TLS secret $secret missing keys: ${missing_keys[*]}" + return 1 + fi +} + +# Check if TLS certificate and key match +check_tls_cert_key_match() { + local secret="$1" + + log_info "Checking TLS cert/key pair for $secret" + + # Extract cert and key to temp files + local cert_file="/tmp/${secret}-cert.pem" + local key_file="/tmp/${secret}-key.pem" + + kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath='{.data.tls\.crt}' | base64 -d > "$cert_file" 2>/dev/null || { + log_error "Failed to extract certificate from $secret" + return 1 + } + + kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath='{.data.tls\.key}' | base64 -d > "$key_file" 2>/dev/null || { + log_error "Failed to extract private key from $secret" + rm -f "$cert_file" + return 1 + } + + # Compare modulus + local cert_modulus key_modulus + cert_modulus=$(openssl x509 -noout -modulus -in "$cert_file" 2>/dev/null | openssl md5 2>/dev/null || echo "") + key_modulus=$(openssl rsa -noout -modulus -in "$key_file" 2>/dev/null | openssl md5 2>/dev/null || echo "") + + # Check certificate SANs for orderer service names + local sans + sans=$(openssl x509 -noout -text -in "$cert_file" 2>/dev/null | grep -A1 "Subject Alternative Name" | grep -o "DNS:[^,]*" | head -5 || echo "") + + # Clean up temp files + rm -f "$cert_file" "$key_file" + + if [[ -n "$cert_modulus" && -n "$key_modulus" && "$cert_modulus" == "$key_modulus" ]]; then + log_success "TLS cert/key pair matches for $secret" + else + log_error "TLS cert/key pair MISMATCH for $secret" + log_error " Certificate modulus: $cert_modulus" + log_error " Private key modulus: $key_modulus" + return 1 + fi + + if [[ -n "$sans" ]]; then + log_success "Certificate SANs found: $(echo "$sans" | tr '\n' ' ')" + + # Check if orderer service names are in SANs + if echo "$sans" | grep -q "fabric-orderer"; then + log_success "Orderer service name found in certificate SANs" + else + log_warning "Orderer service name may be missing from certificate SANs" + fi + else + log_warning "No Subject Alternative Names found in certificate" + fi +} + +# Check certificate expiration +check_cert_expiration() { + log_info "Checking certificate expiration..." + + local tls_secret="fabric-orderer-tls" + + if [[ "$OPENSSL_AVAILABLE" == "true" ]] && kubectl -n "$NAMESPACE" get secret "$tls_secret" &>/dev/null; then + local cert_file="/tmp/${tls_secret}-cert.pem" + kubectl -n "$NAMESPACE" get secret "$tls_secret" -o jsonpath='{.data.tls\.crt}' | base64 -d > "$cert_file" 2>/dev/null || return 1 + + local expiry_date + expiry_date=$(openssl x509 -enddate -noout -in "$cert_file" 2>/dev/null | cut -d= -f2 || echo "") + + if [[ -n "$expiry_date" ]]; then + local expiry_epoch current_epoch days_remaining + expiry_epoch=$(date -d "$expiry_date" +%s 2>/dev/null || echo "0") + current_epoch=$(date +%s) + days_remaining=$(( (expiry_epoch - current_epoch) / 86400 )) + + if [[ $days_remaining -lt 30 ]]; then + log_error "Certificate expires in $days_remaining days ($expiry_date)" + elif [[ $days_remaining -lt 90 ]]; then + log_warning "Certificate expires in $days_remaining days ($expiry_date)" + else + log_success "Certificate expires in $days_remaining days" + fi + fi + + rm -f "$cert_file" + fi +} + +# Check orderer connectivity from peers +check_peer_connectivity() { + log_info "Checking peer connectivity to orderer..." + + local orderer_service="fabric-orderer" + local orderer_port="7050" + + # Check if orderer service is accessible + if kubectl -n "$NAMESPACE" get svc "$orderer_service" &>/dev/null; then + local cluster_ip + cluster_ip=$(kubectl -n "$NAMESPACE" get svc "$orderer_service" -o jsonpath='{.spec.clusterIP}') + + if [[ -n "$cluster_ip" && "$cluster_ip" != "None" ]]; then + log_success "Orderer service $orderer_service has ClusterIP: $cluster_ip" + else + log_warning "Orderer service $orderer_service has no ClusterIP" + fi + else + log_error "Orderer service $orderer_service not found" + return 1 + fi +} + +# Main function +main() { + local mode="${1:-summary}" + + case "$mode" in + "help"|"-h"|"--help") + usage + exit 0 + ;; + "summary") + log_info "Running summary check..." + check_prerequisites + check_pods && check_services_and_storage && check_consensus + ;; + "deep") + log_info "Running comprehensive check..." + check_prerequisites + check_pods + check_services_and_storage + check_consensus + check_genesis_block + check_secrets + check_cert_expiration + check_peer_connectivity + ;; + "secrets-only") + log_info "Running secrets-only check..." + check_prerequisites + check_secrets + check_cert_expiration + ;; + "consensus-only") + log_info "Running consensus-only check..." + check_prerequisites + check_consensus + ;; + *) + log_error "Unknown mode: $mode" + usage + exit 1 + ;; + esac + + log_info "Check completed." +} + +# Execute main function with all arguments +main "$@" diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk new file mode 100644 index 0000000..de877f7 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgw6pj2axSt0thGvNU +eH+TiAEkFKtZeJvsEIhWnoFPwtehRANCAAQIOlnMhy1RHJoriFI0CE0c57xJQlFP +KWlB0yvVIw2rlJVy8vXEXOwViEXLQ7Z3IzAEOy57PbJ6oQq0itq6IBWV +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem new file mode 100644 index 0000000..fb96dc7 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICqTCCAlCgAwIBAgIUXx9q+ofmNmNG/sJEmG58h3RXflYwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NDYwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjAwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQIOlnMhy1RHJoriFI0CE0c57xJQlFPKWlB +0yvVIw2rlJVy8vXEXOwViEXLQ7Z3IzAEOy57PbJ6oQq0itq6IBWVo4HeMIHbMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRHZQnABKE7yroV +AdXe2j+SpBNvCDAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV +HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi +OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy +MCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0cAMEQCIAwoPBru +ON6nE/Ja7XRTItEDkp2PI0doE0/B7uxOpWa5AiBt559L4KLKcK0kucnvpLVNGx3g +FIRxZqFR4GbBr9fCfQ== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt new file mode 100644 index 0000000..fb04251 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUMy6blJ3d9/PtiAzOEAOPEXAnaz0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1MzgwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjAwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD48Vpj +UIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXETo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSt/VF0GIV1JWbgJFv3K76mNSsmrzAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +MIImb3JkZXJlcjAuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDHrnAlQ42zJNIKxjstlX0KK8ZZAfopopHtIboTBu5dAgIgdMaX +N7yfsE2e7b8kSg3iSJkvDBnvxOviu7O3Ga5/7S0= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key new file mode 100644 index 0000000..6d2dd77 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgstJcM73LOWaU62ls +8R9RMQG4sN+SN7rbSrCPPOuLdAGhRANCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD4 +8VpjUIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXET +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk new file mode 100644 index 0000000..6d2dd77 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgstJcM73LOWaU62ls +8R9RMQG4sN+SN7rbSrCPPOuLdAGhRANCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD4 +8VpjUIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXET +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem new file mode 100644 index 0000000..fb04251 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUMy6blJ3d9/PtiAzOEAOPEXAnaz0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1MzgwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjAwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD48Vpj +UIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXETo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSt/VF0GIV1JWbgJFv3K76mNSsmrzAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +MIImb3JkZXJlcjAuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDHrnAlQ42zJNIKxjstlX0KK8ZZAfopopHtIboTBu5dAgIgdMaX +N7yfsE2e7b8kSg3iSJkvDBnvxOviu7O3Ga5/7S0= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk new file mode 100644 index 0000000..001da49 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGMsWJK38sYUV4Ftc +sDuI9ugRt1JUqxueORmqr51cOUihRANCAAQz6yySwKYBKnRaAVSCov0iTJCIJYdE +ZrI6nXWFlWLSoOiHT42OmzZugwgXwXTMYziq48cIHQdqRFNjwOp5qJUC +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk new file mode 100644 index 0000000..042ab06 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgcbXh7Sco2OLdSJiI +ljK4MjieiX0kZ5eELz70pUFuj7ihRANCAAQ+7aww7FQq0TyJCrJQbIkCH+AT152l +FAuN9ETeBt0oEdC80CoAaPwLYA9lqNgeQcrYbQI+ENekvIjHhLzVb2od +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem new file mode 100644 index 0000000..366be34 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICqTCCAlCgAwIBAgIUb74xlIoQq3N/wY0IYyWQe0T8nJcwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTAwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjEwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+7aww7FQq0TyJCrJQbIkCH+AT152lFAuN +9ETeBt0oEdC80CoAaPwLYA9lqNgeQcrYbQI+ENekvIjHhLzVb2odo4HeMIHbMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ8fVM1i7MRFFqm +Fzvm64p4heITtzAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV +HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi +OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy +MSIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0cAMEQCIB5cIMwU +5aUoLR9baWQ/Aw+rqAgDyfk07KRpyVKOVVAkAiBFnOwiXFM+qUniAxhca0UWK+5I +HzYcLg6HY+o3fxeX3Q== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt new file mode 100644 index 0000000..b6b0cc5 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6DCCAo+gAwIBAgIUC+PraVCv0lx//wi18+PTWdePX58wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDAwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjEwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT/KXi +RHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofyo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRRKt+Ru2lqq878c2Pjw7fGKnOXMzAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +MYImb3JkZXJlcjEuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMSIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0cAMEQCIHSnB+P1TZZNjC+/celUrK/atyo+EUqCqIOHjCPK78XtAiB5R7Ud +9uZbLwqiDlwcW72foHR5EcaXI5nJBAYXWsMkkw== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key new file mode 100644 index 0000000..671218a --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkWUzFyulAVBVAcon +GUcnpKZmfuB1FVhdtzXOzC6BPdehRANCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT +/KXiRHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofy +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk new file mode 100644 index 0000000..671218a --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkWUzFyulAVBVAcon +GUcnpKZmfuB1FVhdtzXOzC6BPdehRANCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT +/KXiRHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofy +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem new file mode 100644 index 0000000..b6b0cc5 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6DCCAo+gAwIBAgIUC+PraVCv0lx//wi18+PTWdePX58wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDAwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjEwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT/KXi +RHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofyo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRRKt+Ru2lqq878c2Pjw7fGKnOXMzAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +MYImb3JkZXJlcjEuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMSIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0cAMEQCIHSnB+P1TZZNjC+/celUrK/atyo+EUqCqIOHjCPK78XtAiB5R7Ud +9uZbLwqiDlwcW72foHR5EcaXI5nJBAYXWsMkkw== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk new file mode 100644 index 0000000..c6c90c1 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPUCaT9xhsvJru0qi +2B/ylt0L5LJRyBK5K49r3drZS2GhRANCAAQaZaJnwq1bEX+3UdoxwpQKBZ8bsaxk +MDBpSII0vTfpTN4TwJzZkqIBGv9kZK7giplGgVuivP5lyGHY6kjpLP/k +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem new file mode 100644 index 0000000..87c0af7 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICqjCCAlCgAwIBAgIUbNNKS91DqluEuvgGcKivQdX9JSMwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTIwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjIwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQaZaJnwq1bEX+3UdoxwpQKBZ8bsaxkMDBp +SII0vTfpTN4TwJzZkqIBGv9kZK7giplGgVuivP5lyGHY6kjpLP/ko4HeMIHbMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQUBKGIvFuzHTKV +0Kov68c8+vRlQTAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV +HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi +OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy +MiIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0gAMEUCIQDcsHMu +4zlt23yYsJJ1eYDRs4ZL0Uish+zHyaLAX+WjCQIgBHOcyhOU+BlUMn8vrjW182pe +5hbzhOCBA1jNJXMYLSc= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt new file mode 100644 index 0000000..40761cd --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUDpgN6b6t5QaPA0UufmwgI0kj59UwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDEwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjIwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYjboXe +f+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QEo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRod9Pi6aDAXUgxSapYyAVttXa3lDAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +MoImb3JkZXJlcjIuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMiIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDgiqNY0/kVcpQ7FZADWzwyTJ0XiSvuiM5tpga5G3Tm0AIgaQJe +0bvzNaycuzFdIAT28M8BoEYaVSAOHTby5RC/gSk= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key new file mode 100644 index 0000000..8a579f2 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgoazD9G7wsZosomoX +WkjYBRINnoeAGS1fPNC+u5E7FzahRANCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYj +boXef+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QE +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk new file mode 100644 index 0000000..8a579f2 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgoazD9G7wsZosomoX +WkjYBRINnoeAGS1fPNC+u5E7FzahRANCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYj +boXef+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QE +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem new file mode 100644 index 0000000..40761cd --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUDpgN6b6t5QaPA0UufmwgI0kj59UwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDEwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjIwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYjboXe +f+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QEo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRod9Pi6aDAXUgxSapYyAVttXa3lDAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +MoImb3JkZXJlcjIuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMiIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDgiqNY0/kVcpQ7FZADWzwyTJ0XiSvuiM5tpga5G3Tm0AIgaQJe +0bvzNaycuzFdIAT28M8BoEYaVSAOHTby5RC/gSk= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk new file mode 100644 index 0000000..efdfb55 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgs7uTpD8r0DrRGYyz +TAhi+7JEC2DW+yvIAWehWDleRcehRANCAAS05P4T3A/CY2DDcrfqxzQHEH+xZTRu +/jhKBPr+fzqdoyA4rLvowyhsFLTCfOql2HFLhw3Uq9lF4MujxS8JwDmJ +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem new file mode 100644 index 0000000..0ae1437 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICqTCCAlCgAwIBAgIUS6gk3/3yhrCJlebeym5Z1eB5E1AwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTMwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjMwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS05P4T3A/CY2DDcrfqxzQHEH+xZTRu/jhK +BPr+fzqdoyA4rLvowyhsFLTCfOql2HFLhw3Uq9lF4MujxS8JwDmJo4HeMIHbMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQvbbmAquuEdUGm +5ap9WFoBdqCBKzAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV +HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi +OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy +MyIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0cAMEQCIHsLC42G +VZMCjULZrChV9W2N65vn7J+ksPNp6tuosNV0AiBPp9DrgaZqvmbYYR5zfVt7Xi4b +RzApcp5y3LwLTgsWYg== +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt new file mode 100644 index 0000000..fa49172 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUJJhGOAkfszNSu5iKtuOtb0y0QNowCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDIwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjMwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQYelw+WcCaagVCoLw8TCFs41FUprwLUll2 +RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLLo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRCM68JP5ZcSf8GrZ9fgiO/xivHbzAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +M4Imb3JkZXJlcjMuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMyIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDqS4y3ANPkhx+0s1+SV/DMXBckNFQzYmRE7SDchKjoAAIgHdR2 +NeqEr5nGd4oa+ZMgXJLCTuzxE0hz0lf0ceSeqnI= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key new file mode 100644 index 0000000..a6ead02 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgO4qdW5lENyxYC0n4 +lk0zBajHUQzP3djpIvXI4MDeV7KhRANCAAQYelw+WcCaagVCoLw8TCFs41FUprwL +Ull2RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLL +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk new file mode 100644 index 0000000..a6ead02 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgO4qdW5lENyxYC0n4 +lk0zBajHUQzP3djpIvXI4MDeV7KhRANCAAQYelw+WcCaagVCoLw8TCFs41FUprwL +Ull2RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLL +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem new file mode 100644 index 0000000..fa49172 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUJJhGOAkfszNSu5iKtuOtb0y0QNowCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDIwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjMwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQYelw+WcCaagVCoLw8TCFs41FUprwLUll2 +RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLLo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRCM68JP5ZcSf8GrZ9fgiO/xivHbzAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +M4Imb3JkZXJlcjMuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyMyIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDqS4y3ANPkhx+0s1+SV/DMXBckNFQzYmRE7SDchKjoAAIgHdR2 +NeqEr5nGd4oa+ZMgXJLCTuzxE0hz0lf0ceSeqnI= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk new file mode 100644 index 0000000..4a0fe4b --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFV+OC2GzNrvuOJZd ++3Er2lU4pcC4JpXAOdco/Gw/QrahRANCAAQ0OmVzRBEqlS2n/kOEDF1Dg7JL/ZBT +vpDf3QyQvwKp4/gY1WGAoB6RI9r74gkkMLWcFSfHy/qjTGYmdjRBx6Q1 +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem new file mode 100644 index 0000000..a5a237c --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICqjCCAlCgAwIBAgIUXiwAHLHB8+XJNku2Zl57Gk6J+BcwCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTQwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjQwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ0OmVzRBEqlS2n/kOEDF1Dg7JL/ZBTvpDf +3QyQvwKp4/gY1WGAoB6RI9r74gkkMLWcFSfHy/qjTGYmdjRBx6Q1o4HeMIHbMA4G +A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTB1F3zBKEp64Sx +IyoK0JWKYsZUPDAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV +HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi +OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy +NCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0gAMEUCIQDdLrYF +412Gko0yKf8/aMDUlMEXzF2Rt2ApEXJDBEN9gwIgRTzqytNP7zIzj9DtrhwlPI/K +1Olnonip+SwhEP9Kn8M= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt new file mode 100644 index 0000000..f87da71 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUUzu+iqhUyIKr3e8vpO9JZWil5f4wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDMwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjQwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z1Zkr +NhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toDo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSg49w0BnAQjDya+cGe2AW/osUO5TAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +NIImb3JkZXJlcjQuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyNCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDayMSVd9TaHzFdhi7V+BxXXJyyKmdIt4d+jB/Fso7HRgIgMFT6 +w9RcOI5+yzVNVmLu6GpVaklxyHUoQkcFTa/52nY= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key new file mode 100644 index 0000000..677eab9 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtcWmTWAChJSXLEFW +KL6zdqJlz2mH7BZd1+qypgM0YqShRANCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z +1ZkrNhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toD +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk new file mode 100644 index 0000000..677eab9 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtcWmTWAChJSXLEFW +KL6zdqJlz2mH7BZd1+qypgM0YqShRANCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z +1ZkrNhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toD +-----END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem new file mode 100644 index 0000000..f87da71 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6TCCAo+gAwIBAgIUUzu+iqhUyIKr3e8vpO9JZWil5f4wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDMwMFowYTELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjQwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z1Zkr +NhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toDo4IBHDCCARgw +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSg49w0BnAQjDya+cGe2AW/osUO5TAfBgNV +HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy +NIImb3JkZXJlcjQuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME +BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt +ZW50SUQiOiJvcmRlcmVyNCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 +BAMCA0gAMEUCIQDayMSVd9TaHzFdhi7V+BxXXJyyKmdIt4d+jB/Fso7HRgIgMFT6 +w9RcOI5+yzVNVmLu6GpVaklxyHUoQkcFTa/52nY= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..2ad9e9e --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw +aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK +EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt +Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG +A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl +cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy +dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS +BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF +MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE +FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J +m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy +l0daA1sXwZYFNVg= +-----END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh b/hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh new file mode 100644 index 0000000..0d904d7 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# add-orderer-msp-config.sh +set -euo pipefail + +TARGET_NS="hlf-orderer" +LOCAL_BASE="./_secrets/orderers" + +# NodeOUs config (OU-only; no CA file pinning needed since Fabric-CA sets OUs) +read -r -d '' CONFIG_YAML <<'YAML' +NodeOUs: + Enable: true + ClientOUIdentifier: + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + OrganizationalUnitIdentifier: orderer +YAML + +for i in 0 1 2 3 4; do + ORDERER="orderer${i}" + MSP_DIR="${LOCAL_BASE}/${ORDERER}/msp" + + if [[ ! -d "${MSP_DIR}/signcerts" || ! -d "${MSP_DIR}/cacerts" ]]; then + echo "ERROR: Missing MSP dirs for ${ORDERER} in ${MSP_DIR}. Re-run the pull step first." + exit 1 + fi + + echo "==> Patching ${ORDERER}-msp with config.yaml" + printf "%s\n" "${CONFIG_YAML}" > "${MSP_DIR}/config.yaml" + + kubectl create secret generic "${ORDERER}-msp" \ + --namespace "${TARGET_NS}" \ + --from-file="${MSP_DIR}/cacerts" \ + --from-file="${MSP_DIR}/signcerts" \ + $( [[ -d "${MSP_DIR}/keystore" && -n "$(ls -A "${MSP_DIR}/keystore" 2>/dev/null || true)" ]] && echo --from-file="${MSP_DIR}/keystore" ) \ + --from-file=config.yaml="${MSP_DIR}/config.yaml" \ + --dry-run=client -o yaml | kubectl apply -f - +done + +echo "All MSP secrets patched with NodeOUs config.yaml." + diff --git a/hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh b/hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh new file mode 100644 index 0000000..e922cb0 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh @@ -0,0 +1,80 @@ +#!/usr/bin/env bash +set -euo pipefail + +NS="${NS:-hlf-orderer}" +RELEASE="${RELEASE:-fabric-orderer}" +STAMP="$(date +%F-%H%M%S)" +OUT="${OUT:-$PWD/${RELEASE}-backup-$STAMP}" + +mkdir -p "$OUT" + +echo "==> Saving Helm release state" +helm get values "$RELEASE" -n "$NS" > "$OUT/values.yaml" +helm get all "$RELEASE" -n "$NS" > "$OUT/helm-get-all.txt" +helm status "$RELEASE" -n "$NS" > "$OUT/helm-status.txt" + +echo "==> Saving Helm release secrets (the canonical Helm state)" +kubectl -n "$NS" get secret \ + -l "owner=helm,name=${RELEASE}" \ + -o yaml > "$OUT/helm-release-secrets.yaml" || true + +echo "==> Saving chart-rendered manifests (what Helm applied)" +# If you still have the chart folder handy; otherwise skip +helm template "$RELEASE" . -n "$NS" > "$OUT/rendered-manifests.yaml" || true + +echo "==> Exporting Kubernetes objects (live state)" +kubectl -n "$NS" get \ + statefulsets,deployments,daemonsets,replicasets,pods,services,endpoints,ingresses \ + -o yaml > "$OUT/workloads.yaml" + +kubectl -n "$NS" get \ + configmaps,secrets,serviceaccounts,roles,rolebindings \ + -o yaml > "$OUT/config-and-rbac.yaml" + +kubectl -n "$NS" get \ + pvc,pv,storageclasses \ + -o yaml > "$OUT/storage.yaml" || true + +echo "==> Exporting CRDs used by the release (if any)" +# Adjust kinds if you have CRDs; left generic +kubectl get crd -o name > "$OUT/crd-list.txt" +# You can selectively dump CRDs your chart uses: +# kubectl get -A -o yaml > "$OUT/crd-objects.yaml" + +echo "==> Export MSP/TLS secrets individually (easier restore)" +mkdir -p "$OUT/secrets" +for s in $(kubectl -n "$NS" get secret \ + | awk '/orderer[0-9]-(msp|tls)/{print $1}'); do + d="$OUT/secrets/$s" + mkdir -p "$d" + # Expand each key to a file + for k in $(kubectl -n "$NS" get secret "$s" -o json \ + | jq -r '.data | keys[]'); do + kubectl -n "$NS" get secret "$s" -o jsonpath="{.data.$k}" \ + | base64 -d > "$d/$k" + done +done + +echo "==> Capture ConfigMaps used by orderers" +kubectl -n "$NS" get cm -o name \ + | grep -E 'fabric-orderer|orderer' \ + | xargs -r kubectl -n "$NS" get -o yaml > "$OUT/configmaps.yaml" || true + +echo "==> (Optional) include genesis/join blocks if you keep them locally" +# Adjust paths to where you keep them: +for f in ~/hyperledger-fabric-network/config/genesis.block \ + ~/hyperledger-fabric-network/config/*.block \ + ~/hyperledger-fabric-network/config/*.tx; do + [ -f "$f" ] && cp -v "$f" "$OUT"/ || true +done + +echo "==> Creating archive" +tar -C "$(dirname "$OUT")" -czf "${OUT}.tar.gz" "$(basename "$OUT")" +sha256sum "${OUT}.tar.gz" > "${OUT}.tar.gz.sha256" + +echo "==> (Optional) Encrypt archive with GPG" +# Uncomment to encrypt +# gpg --symmetric --cipher-algo AES256 -o "${OUT}.tar.gz.gpg" "${OUT}.tar.gz" + +echo "Backup written to: ${OUT}.tar.gz" + diff --git a/hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh b/hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh new file mode 100644 index 0000000..4b6c2ad --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash +# create-orderer-secrets-v2.sh +set -euo pipefail + +CA_NS="hlf-ca" +CA_CLIENT_POD="fabric-ca-client-0" +TARGET_NS="hlf-orderer" +LOCAL_BASE="./_secrets/orderers" + +kubectl get ns "${TARGET_NS}" >/dev/null 2>&1 || kubectl create ns "${TARGET_NS}" +mkdir -p "${LOCAL_BASE}" + +pull_from_pod() { + local remote="$1" ; local local_path="$2" + mkdir -p "$(dirname "${local_path}")" + # Wrap kubectl cp so missing paths don't kill the script when caller says "optional" + if ! kubectl cp "${CA_NS}/${CA_CLIENT_POD}:${remote}" "${local_path}" 2>&1; then + return 1 + fi +} + +for i in 0 1 2 3 4; do + ORDERER="orderer${i}" + echo "==> Processing ${ORDERER}" + + REMOTE_BASE="/data/hyperledger/fabric-ca-client/${ORDERER}" + LOCAL_DIR="${LOCAL_BASE}/${ORDERER}" + MSP_DIR="${LOCAL_DIR}/msp" + TLS_DIR="${LOCAL_DIR}/tls" + TLS_OUT="${LOCAL_DIR}/tls-ready" + mkdir -p "${MSP_DIR}" "${TLS_DIR}" "${TLS_OUT}" + + echo " - Pulling MSP (signcerts, cacerts, keystore?, config.yaml?)" + pull_from_pod "${REMOTE_BASE}/msp/signcerts" "${MSP_DIR}/signcerts" + pull_from_pod "${REMOTE_BASE}/msp/cacerts" "${MSP_DIR}/cacerts" + pull_from_pod "${REMOTE_BASE}/msp/keystore" "${MSP_DIR}/keystore" || echo " (keystore not found yet — ok)" + pull_from_pod "${REMOTE_BASE}/msp/config.yaml" "${MSP_DIR}/config.yaml" || echo " (config.yaml not found — ok)" + + echo " - Pulling TLS (signcerts, keystore?, tlscacerts)" + pull_from_pod "${REMOTE_BASE}/tls/signcerts" "${TLS_DIR}/signcerts" + pull_from_pod "${REMOTE_BASE}/tls/keystore" "${TLS_DIR}/keystore" || echo " (tls keystore not found — ok)" + pull_from_pod "${REMOTE_BASE}/tls/tlscacerts" "${TLS_DIR}/tlscacerts" + + echo " - Normalizing TLS filenames" + SIGNCRT="$(ls -1 ${TLS_DIR}/signcerts/* 2>/dev/null | head -n1 || true)" + KEYFILE="$(ls -1 ${TLS_DIR}/keystore/* 2>/dev/null | head -n1 || true)" + CACRT="$(ls -1 ${TLS_DIR}/tlscacerts/* 2>/dev/null | head -n1 || true)" + + if [[ -z "${SIGNCRT}" || -z "${KEYFILE}" || -z "${CACRT}" ]]; then + echo " ERROR: Missing TLS files for ${ORDERER}." + echo " SIGNCRT='${SIGNCRT}' KEYFILE='${KEYFILE}' CACRT='${CACRT}'" + echo " Re-run TLS enroll for ${ORDERER} before creating secrets." + exit 1 + fi + + cp -f "${SIGNCRT}" "${TLS_OUT}/server.crt" + cp -f "${KEYFILE}" "${TLS_OUT}/server.key" + cp -f "${CACRT}" "${TLS_OUT}/ca.crt" + + echo " - Validating MSP files exist" + [[ -d "${MSP_DIR}/signcerts" ]] || { echo " ERROR: ${MSP_DIR}/signcerts missing"; exit 1; } + [[ -d "${MSP_DIR}/cacerts" ]] || { echo " ERROR: ${MSP_DIR}/cacerts missing"; exit 1; } + # keystore may be empty (soft enrolls); don’t fail if absent. + + echo " - Applying secret ${ORDERER}-msp" + # For directories, do NOT specify a key name. Let kubectl use filenames. + kubectl create secret generic "${ORDERER}-msp" \ + --namespace "${TARGET_NS}" \ + --from-file="${MSP_DIR}/cacerts" \ + --from-file="${MSP_DIR}/signcerts" \ + $( [[ -d "${MSP_DIR}/keystore" && -n "$(ls -A "${MSP_DIR}/keystore" 2>/dev/null || true)" ]] && echo --from-file="${MSP_DIR}/keystore" ) \ + $( [[ -f "${MSP_DIR}/config.yaml" ]] && echo --from-file=config.yaml="${MSP_DIR}/config.yaml" ) \ + --dry-run=client -o yaml | kubectl apply -f - + + echo " - Applying secret ${ORDERER}-tls" + kubectl create secret generic "${ORDERER}-tls" \ + --namespace "${TARGET_NS}" \ + --from-file=server.crt="${TLS_OUT}/server.crt" \ + --from-file=server.key="${TLS_OUT}/server.key" \ + --from-file=ca.crt="${TLS_OUT}/ca.crt" \ + --dry-run=client -o yaml | kubectl apply -f - + + echo " ✓ ${ORDERER} secrets applied" +done + +echo "All orderer secrets created/applied in namespace '${TARGET_NS}'." + diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml new file mode 100644 index 0000000..7e4727b --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml @@ -0,0 +1,14 @@ +NodeOUs: + Enable: true + ClientOUIdentifier: + Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem + OrganizationalUnitIdentifier: orderer \ No newline at end of file diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem @@ -0,0 +1 @@ + diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml new file mode 100644 index 0000000..3e670ef --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml @@ -0,0 +1,175 @@ + +############################################################################# +# This is a configuration file for the fabric-ca-client command. +# +# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES +# ------------------------------------------------ +# Each configuration element can be overridden via command line +# arguments or environment variables. The precedence for determining +# the value of each element is as follows: +# 1) command line argument +# Examples: +# a) --url https://localhost:7054 +# To set the fabric-ca server url +# b) --tls.client.certfile certfile.pem +# To set the client certificate for TLS +# 2) environment variable +# Examples: +# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 +# To set the fabric-ca server url +# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem +# To set the client certificate for TLS +# 3) configuration file +# 4) default value (if there is one) +# All default values are shown beside each element below. +# +# FILE NAME ELEMENTS +# ------------------ +# The value of all fields whose name ends with "file" or "files" are +# name or names of other files. +# For example, see "tls.certfiles" and "tls.client.certfile". +# The value of each of these fields can be a simple filename, a +# relative path, or an absolute path. If the value is not an +# absolute path, it is interpreted as being relative to the location +# of this configuration file. +# +############################################################################# + +############################################################################# +# Client Configuration +############################################################################# + +# URL of the Fabric-ca-server (default: http://localhost:7054) +url: https://root-ca.hlf-ca.svc.cluster.local:7054 + +# Membership Service Provider (MSP) directory +# This is useful when the client is used to enroll a peer or orderer, so +# that the enrollment artifacts are stored in the format expected by MSP. +mspdir: /data/hyperledger/fabric-ca-client/orderer1/msp + +############################################################################# +# TLS section for secure socket connection +# +# certfiles - PEM-encoded list of trusted root certificate files +# client: +# certfile - PEM-encoded certificate file for when client authentication +# is enabled on server +# keyfile - PEM-encoded key file for when client authentication +# is enabled on server +############################################################################# +tls: + # TLS section for secure socket connection + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# Certificate Signing Request section for generating the CSR for an +# enrollment certificate (ECert) +# +# cn - Used by CAs to determine which domain the certificate is to be generated for +# +# keyrequest - Properties to use when generating a private key. +# algo - key generation algorithm to use +# size - size of key to generate +# reusekey - reuse existing key during reenrollment +# +# serialnumber - The serialnumber field, if specified, becomes part of the issued +# certificate's DN (Distinguished Name). For example, one use case for this is +# a company with its own CA (Certificate Authority) which issues certificates +# to its employees and wants to include the employee's serial number in the DN +# of its issued certificates. +# WARNING: The serialnumber field should not be confused with the certificate's +# serial number which is set by the CA but is not a component of the +# certificate's DN. +# +# names - A list of name objects. Each name object should contain at least one +# "C", "L", "O", or "ST" value (or any combination of these) where these +# are abbreviations for the following: +# "C": country +# "L": locality or municipality (such as city or town name) +# "O": organization +# "OU": organizational unit, such as the department responsible for owning the key; +# it can also be used for a "Doing Business As" (DBS) name +# "ST": the state or province +# +# Note that the "OU" or organizational units of an ECert are always set according +# to the values of the identities type and affiliation. OUs are calculated for an enroll +# as OU=, OU=, ..., OU=. For example, an identity +# of type "client" with an affiliation of "org1.dept2.team3" would have the following +# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 +# +# hosts - A list of host names for which the certificate should be valid +# +############################################################################# +csr: + cn: orderer1 + keyrequest: + algo: ecdsa + size: 256 + reusekey: false + serialnumber: + names: + - C: US + ST: North Carolina + L: + O: Hyperledger + OU: Fabric + hosts: + - fabric-ca-client-0 + +############################################################################# +# Registration section used to register a new identity with fabric-ca server +# +# name - Unique name of the identity +# type - Type of identity being registered (e.g. 'peer, app, user') +# affiliation - The identity's affiliation +# maxenrollments - The maximum number of times the secret can be reused to enroll. +# Specially, -1 means unlimited; 0 means to use CA's max enrollment +# value. +# attributes - List of name/value pairs of attribute for identity +############################################################################# +id: + name: + type: + affiliation: + maxenrollments: 0 + attributes: + # - name: + # value: + +############################################################################# +# Enrollment section used to enroll an identity with fabric-ca server +# +# profile - Name of the signing profile to use in issuing the certificate +# label - Label to use in HSM operations +############################################################################# +enrollment: + profile: + label: + +############################################################################# +# Name of the CA to connect to within the fabric-ca server +############################################################################# +caname: + +############################################################################# +# BCCSP (BlockChain Crypto Service Provider) section allows to select which +# crypto implementation library to use +############################################################################# +bccsp: + default: SW + sw: + hash: SHA2 + security: 256 + filekeystore: + # The directory used for the software file-based keystore + keystore: msp/keystore + +############################################################################# +# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. +# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. +# If unspecified, it defaults to 'amcl.Fp256bn'. +############################################################################# +idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/key.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml new file mode 100644 index 0000000..d0a1ce0 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml @@ -0,0 +1,175 @@ + +############################################################################# +# This is a configuration file for the fabric-ca-client command. +# +# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES +# ------------------------------------------------ +# Each configuration element can be overridden via command line +# arguments or environment variables. The precedence for determining +# the value of each element is as follows: +# 1) command line argument +# Examples: +# a) --url https://localhost:7054 +# To set the fabric-ca server url +# b) --tls.client.certfile certfile.pem +# To set the client certificate for TLS +# 2) environment variable +# Examples: +# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 +# To set the fabric-ca server url +# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem +# To set the client certificate for TLS +# 3) configuration file +# 4) default value (if there is one) +# All default values are shown beside each element below. +# +# FILE NAME ELEMENTS +# ------------------ +# The value of all fields whose name ends with "file" or "files" are +# name or names of other files. +# For example, see "tls.certfiles" and "tls.client.certfile". +# The value of each of these fields can be a simple filename, a +# relative path, or an absolute path. If the value is not an +# absolute path, it is interpreted as being relative to the location +# of this configuration file. +# +############################################################################# + +############################################################################# +# Client Configuration +############################################################################# + +# URL of the Fabric-ca-server (default: http://localhost:7054) +url: https://root-ca.hlf-ca.svc.cluster.local:7054 + +# Membership Service Provider (MSP) directory +# This is useful when the client is used to enroll a peer or orderer, so +# that the enrollment artifacts are stored in the format expected by MSP. +mspdir: /data/hyperledger/fabric-ca-client/orderer2/msp + +############################################################################# +# TLS section for secure socket connection +# +# certfiles - PEM-encoded list of trusted root certificate files +# client: +# certfile - PEM-encoded certificate file for when client authentication +# is enabled on server +# keyfile - PEM-encoded key file for when client authentication +# is enabled on server +############################################################################# +tls: + # TLS section for secure socket connection + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# Certificate Signing Request section for generating the CSR for an +# enrollment certificate (ECert) +# +# cn - Used by CAs to determine which domain the certificate is to be generated for +# +# keyrequest - Properties to use when generating a private key. +# algo - key generation algorithm to use +# size - size of key to generate +# reusekey - reuse existing key during reenrollment +# +# serialnumber - The serialnumber field, if specified, becomes part of the issued +# certificate's DN (Distinguished Name). For example, one use case for this is +# a company with its own CA (Certificate Authority) which issues certificates +# to its employees and wants to include the employee's serial number in the DN +# of its issued certificates. +# WARNING: The serialnumber field should not be confused with the certificate's +# serial number which is set by the CA but is not a component of the +# certificate's DN. +# +# names - A list of name objects. Each name object should contain at least one +# "C", "L", "O", or "ST" value (or any combination of these) where these +# are abbreviations for the following: +# "C": country +# "L": locality or municipality (such as city or town name) +# "O": organization +# "OU": organizational unit, such as the department responsible for owning the key; +# it can also be used for a "Doing Business As" (DBS) name +# "ST": the state or province +# +# Note that the "OU" or organizational units of an ECert are always set according +# to the values of the identities type and affiliation. OUs are calculated for an enroll +# as OU=, OU=, ..., OU=. For example, an identity +# of type "client" with an affiliation of "org1.dept2.team3" would have the following +# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 +# +# hosts - A list of host names for which the certificate should be valid +# +############################################################################# +csr: + cn: orderer2 + keyrequest: + algo: ecdsa + size: 256 + reusekey: false + serialnumber: + names: + - C: US + ST: North Carolina + L: + O: Hyperledger + OU: Fabric + hosts: + - fabric-ca-client-0 + +############################################################################# +# Registration section used to register a new identity with fabric-ca server +# +# name - Unique name of the identity +# type - Type of identity being registered (e.g. 'peer, app, user') +# affiliation - The identity's affiliation +# maxenrollments - The maximum number of times the secret can be reused to enroll. +# Specially, -1 means unlimited; 0 means to use CA's max enrollment +# value. +# attributes - List of name/value pairs of attribute for identity +############################################################################# +id: + name: + type: + affiliation: + maxenrollments: 0 + attributes: + # - name: + # value: + +############################################################################# +# Enrollment section used to enroll an identity with fabric-ca server +# +# profile - Name of the signing profile to use in issuing the certificate +# label - Label to use in HSM operations +############################################################################# +enrollment: + profile: + label: + +############################################################################# +# Name of the CA to connect to within the fabric-ca server +############################################################################# +caname: + +############################################################################# +# BCCSP (BlockChain Crypto Service Provider) section allows to select which +# crypto implementation library to use +############################################################################# +bccsp: + default: SW + sw: + hash: SHA2 + security: 256 + filekeystore: + # The directory used for the software file-based keystore + keystore: msp/keystore + +############################################################################# +# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. +# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. +# If unspecified, it defaults to 'amcl.Fp256bn'. +############################################################################# +idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/keystore/key.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml new file mode 100644 index 0000000..6707cb9 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml @@ -0,0 +1,175 @@ + +############################################################################# +# This is a configuration file for the fabric-ca-client command. +# +# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES +# ------------------------------------------------ +# Each configuration element can be overridden via command line +# arguments or environment variables. The precedence for determining +# the value of each element is as follows: +# 1) command line argument +# Examples: +# a) --url https://localhost:7054 +# To set the fabric-ca server url +# b) --tls.client.certfile certfile.pem +# To set the client certificate for TLS +# 2) environment variable +# Examples: +# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 +# To set the fabric-ca server url +# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem +# To set the client certificate for TLS +# 3) configuration file +# 4) default value (if there is one) +# All default values are shown beside each element below. +# +# FILE NAME ELEMENTS +# ------------------ +# The value of all fields whose name ends with "file" or "files" are +# name or names of other files. +# For example, see "tls.certfiles" and "tls.client.certfile". +# The value of each of these fields can be a simple filename, a +# relative path, or an absolute path. If the value is not an +# absolute path, it is interpreted as being relative to the location +# of this configuration file. +# +############################################################################# + +############################################################################# +# Client Configuration +############################################################################# + +# URL of the Fabric-ca-server (default: http://localhost:7054) +url: https://root-ca.hlf-ca.svc.cluster.local:7054 + +# Membership Service Provider (MSP) directory +# This is useful when the client is used to enroll a peer or orderer, so +# that the enrollment artifacts are stored in the format expected by MSP. +mspdir: /data/hyperledger/fabric-ca-client/orderer3/msp + +############################################################################# +# TLS section for secure socket connection +# +# certfiles - PEM-encoded list of trusted root certificate files +# client: +# certfile - PEM-encoded certificate file for when client authentication +# is enabled on server +# keyfile - PEM-encoded key file for when client authentication +# is enabled on server +############################################################################# +tls: + # TLS section for secure socket connection + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# Certificate Signing Request section for generating the CSR for an +# enrollment certificate (ECert) +# +# cn - Used by CAs to determine which domain the certificate is to be generated for +# +# keyrequest - Properties to use when generating a private key. +# algo - key generation algorithm to use +# size - size of key to generate +# reusekey - reuse existing key during reenrollment +# +# serialnumber - The serialnumber field, if specified, becomes part of the issued +# certificate's DN (Distinguished Name). For example, one use case for this is +# a company with its own CA (Certificate Authority) which issues certificates +# to its employees and wants to include the employee's serial number in the DN +# of its issued certificates. +# WARNING: The serialnumber field should not be confused with the certificate's +# serial number which is set by the CA but is not a component of the +# certificate's DN. +# +# names - A list of name objects. Each name object should contain at least one +# "C", "L", "O", or "ST" value (or any combination of these) where these +# are abbreviations for the following: +# "C": country +# "L": locality or municipality (such as city or town name) +# "O": organization +# "OU": organizational unit, such as the department responsible for owning the key; +# it can also be used for a "Doing Business As" (DBS) name +# "ST": the state or province +# +# Note that the "OU" or organizational units of an ECert are always set according +# to the values of the identities type and affiliation. OUs are calculated for an enroll +# as OU=, OU=, ..., OU=. For example, an identity +# of type "client" with an affiliation of "org1.dept2.team3" would have the following +# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 +# +# hosts - A list of host names for which the certificate should be valid +# +############################################################################# +csr: + cn: orderer3 + keyrequest: + algo: ecdsa + size: 256 + reusekey: false + serialnumber: + names: + - C: US + ST: North Carolina + L: + O: Hyperledger + OU: Fabric + hosts: + - fabric-ca-client-0 + +############################################################################# +# Registration section used to register a new identity with fabric-ca server +# +# name - Unique name of the identity +# type - Type of identity being registered (e.g. 'peer, app, user') +# affiliation - The identity's affiliation +# maxenrollments - The maximum number of times the secret can be reused to enroll. +# Specially, -1 means unlimited; 0 means to use CA's max enrollment +# value. +# attributes - List of name/value pairs of attribute for identity +############################################################################# +id: + name: + type: + affiliation: + maxenrollments: 0 + attributes: + # - name: + # value: + +############################################################################# +# Enrollment section used to enroll an identity with fabric-ca server +# +# profile - Name of the signing profile to use in issuing the certificate +# label - Label to use in HSM operations +############################################################################# +enrollment: + profile: + label: + +############################################################################# +# Name of the CA to connect to within the fabric-ca server +############################################################################# +caname: + +############################################################################# +# BCCSP (BlockChain Crypto Service Provider) section allows to select which +# crypto implementation library to use +############################################################################# +bccsp: + default: SW + sw: + hash: SHA2 + security: 256 + filekeystore: + # The directory used for the software file-based keystore + keystore: msp/keystore + +############################################################################# +# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. +# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. +# If unspecified, it defaults to 'amcl.Fp256bn'. +############################################################################# +idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/keystore/key.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml new file mode 100644 index 0000000..fcfbb6b --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml @@ -0,0 +1,175 @@ + +############################################################################# +# This is a configuration file for the fabric-ca-client command. +# +# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES +# ------------------------------------------------ +# Each configuration element can be overridden via command line +# arguments or environment variables. The precedence for determining +# the value of each element is as follows: +# 1) command line argument +# Examples: +# a) --url https://localhost:7054 +# To set the fabric-ca server url +# b) --tls.client.certfile certfile.pem +# To set the client certificate for TLS +# 2) environment variable +# Examples: +# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 +# To set the fabric-ca server url +# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem +# To set the client certificate for TLS +# 3) configuration file +# 4) default value (if there is one) +# All default values are shown beside each element below. +# +# FILE NAME ELEMENTS +# ------------------ +# The value of all fields whose name ends with "file" or "files" are +# name or names of other files. +# For example, see "tls.certfiles" and "tls.client.certfile". +# The value of each of these fields can be a simple filename, a +# relative path, or an absolute path. If the value is not an +# absolute path, it is interpreted as being relative to the location +# of this configuration file. +# +############################################################################# + +############################################################################# +# Client Configuration +############################################################################# + +# URL of the Fabric-ca-server (default: http://localhost:7054) +url: https://root-ca.hlf-ca.svc.cluster.local:7054 + +# Membership Service Provider (MSP) directory +# This is useful when the client is used to enroll a peer or orderer, so +# that the enrollment artifacts are stored in the format expected by MSP. +mspdir: /data/hyperledger/fabric-ca-client/orderer4/msp + +############################################################################# +# TLS section for secure socket connection +# +# certfiles - PEM-encoded list of trusted root certificate files +# client: +# certfile - PEM-encoded certificate file for when client authentication +# is enabled on server +# keyfile - PEM-encoded key file for when client authentication +# is enabled on server +############################################################################# +tls: + # TLS section for secure socket connection + certfiles: + client: + certfile: + keyfile: + +############################################################################# +# Certificate Signing Request section for generating the CSR for an +# enrollment certificate (ECert) +# +# cn - Used by CAs to determine which domain the certificate is to be generated for +# +# keyrequest - Properties to use when generating a private key. +# algo - key generation algorithm to use +# size - size of key to generate +# reusekey - reuse existing key during reenrollment +# +# serialnumber - The serialnumber field, if specified, becomes part of the issued +# certificate's DN (Distinguished Name). For example, one use case for this is +# a company with its own CA (Certificate Authority) which issues certificates +# to its employees and wants to include the employee's serial number in the DN +# of its issued certificates. +# WARNING: The serialnumber field should not be confused with the certificate's +# serial number which is set by the CA but is not a component of the +# certificate's DN. +# +# names - A list of name objects. Each name object should contain at least one +# "C", "L", "O", or "ST" value (or any combination of these) where these +# are abbreviations for the following: +# "C": country +# "L": locality or municipality (such as city or town name) +# "O": organization +# "OU": organizational unit, such as the department responsible for owning the key; +# it can also be used for a "Doing Business As" (DBS) name +# "ST": the state or province +# +# Note that the "OU" or organizational units of an ECert are always set according +# to the values of the identities type and affiliation. OUs are calculated for an enroll +# as OU=, OU=, ..., OU=. For example, an identity +# of type "client" with an affiliation of "org1.dept2.team3" would have the following +# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 +# +# hosts - A list of host names for which the certificate should be valid +# +############################################################################# +csr: + cn: orderer4 + keyrequest: + algo: ecdsa + size: 256 + reusekey: false + serialnumber: + names: + - C: US + ST: North Carolina + L: + O: Hyperledger + OU: Fabric + hosts: + - fabric-ca-client-0 + +############################################################################# +# Registration section used to register a new identity with fabric-ca server +# +# name - Unique name of the identity +# type - Type of identity being registered (e.g. 'peer, app, user') +# affiliation - The identity's affiliation +# maxenrollments - The maximum number of times the secret can be reused to enroll. +# Specially, -1 means unlimited; 0 means to use CA's max enrollment +# value. +# attributes - List of name/value pairs of attribute for identity +############################################################################# +id: + name: + type: + affiliation: + maxenrollments: 0 + attributes: + # - name: + # value: + +############################################################################# +# Enrollment section used to enroll an identity with fabric-ca server +# +# profile - Name of the signing profile to use in issuing the certificate +# label - Label to use in HSM operations +############################################################################# +enrollment: + profile: + label: + +############################################################################# +# Name of the CA to connect to within the fabric-ca server +############################################################################# +caname: + +############################################################################# +# BCCSP (BlockChain Crypto Service Provider) section allows to select which +# crypto implementation library to use +############################################################################# +bccsp: + default: SW + sw: + hash: SHA2 + security: 256 + filekeystore: + # The directory used for the software file-based keystore + keystore: msp/keystore + +############################################################################# +# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. +# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. +# If unspecified, it defaults to 'amcl.Fp256bn'. +############################################################################# +idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/keystore/key.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerRevocationPublicKey new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/signcerts/cert.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem new file mode 100644 index 0000000..e69de29 diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh new file mode 100644 index 0000000..3510961 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +# patch-orderer-msp-config-inplace.sh +set -euo pipefail + +NS="hlf-orderer" + +read -r -d '' CONFIG_YAML <<'YAML' +NodeOUs: + Enable: true + ClientOUIdentifier: + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + OrganizationalUnitIdentifier: orderer +YAML + +B64_CFG="$(printf "%s" "$CONFIG_YAML" | base64 | tr -d '\n')" + +for i in 0 1 2 3 4; do + name="orderer${i}-msp" + echo "Patching $name ..." + # ensure secret exists + kubectl -n "$NS" get secret "$name" >/dev/null + # add/replace config.yaml + kubectl -n "$NS" patch secret "$name" \ + --type=merge \ + -p "{\"data\":{\"config.yaml\":\"${B64_CFG}\"}}" + # verify + kubectl -n "$NS" get secret "$name" -o jsonpath='{.data.config\.yaml}' >/dev/null + echo " ✓ config.yaml present" +done + +echo "All MSP secrets patched." + diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh new file mode 100644 index 0000000..20fba06 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# patch-orderer-msp-config-json-v2.sh +set -xeuo pipefail + +NS="hlf-orderer" + +CFG="$(cat <<'YAML' +NodeOUs: + Enable: true + ClientOUIdentifier: + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + OrganizationalUnitIdentifier: orderer +YAML +)" +B64_CFG="$(printf '%s' "$CFG" | base64 | tr -d '\n')" + +for i in 0 1 2 3 4; do + name="orderer${i}-msp" + echo "==> Patching $name" + kubectl -n "$NS" patch secret "$name" --type='json' \ + -p="[ {\"op\":\"add\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" \ + || kubectl -n "$NS" patch secret "$name" --type='json' \ + -p="[ {\"op\":\"replace\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" + # verify + kubectl -n "$NS" get secret "$name" -o jsonpath='{.data.config\.yaml}' | base64 -d | sed -n '1,3p' +done + +echo "All MSP secrets now include config.yaml." + + diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh new file mode 100644 index 0000000..cff3ac3 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# patch-orderer-msp-config-json.sh +set -xeuo pipefail + +NS="hlf-orderer" +read -r -d '' CFG <<'YAML' +NodeOUs: + Enable: true + ClientOUIdentifier: + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + OrganizationalUnitIdentifier: orderer +YAML +B64_CFG="$(printf "%s" "$CFG" | base64 | tr -d '\n')" + +for i in 0 1 2 3 4; do + name="orderer${i}-msp" + echo "==> Patching $name" + # add OR replace depending on existence + kubectl -n "$NS" patch secret "$name" --type='json' \ + -p="[ {\"op\":\"add\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" \ + || kubectl -n "$NS" patch secret "$name" --type='json' \ + -p="[ {\"op\":\"replace\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" + + # show keys present + kubectl -n "$NS" get secret "$name" -o json | jq -r '.data | keys | join(",")' +done + +echo "All MSP secrets now include config.yaml." + diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh new file mode 100644 index 0000000..4aa6a69 --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash +# patch-orderer-msp-config.sh +# Ensure NodeOUs config.yaml is present in orderer0..4 MSP secrets + +set -euo pipefail + +TARGET_NS="hlf-orderer" +LOCAL_BASE="./_secrets/orderers" + +read -r -d '' CONFIG_YAML <<'YAML' +NodeOUs: + Enable: true + ClientOUIdentifier: + OrganizationalUnitIdentifier: client + PeerOUIdentifier: + OrganizationalUnitIdentifier: peer + AdminOUIdentifier: + OrganizationalUnitIdentifier: admin + OrdererOUIdentifier: + OrganizationalUnitIdentifier: orderer +YAML + +ensure_file() { + local path="$1" + mkdir -p "$(dirname "$path")" + printf "%s\n" "$CONFIG_YAML" > "$path" +} + +for i in 0 1 2 3 4; do + ORDERER="orderer${i}" + MSP_DIR="${LOCAL_BASE}/${ORDERER}/msp" + CACERTS_DIR="${MSP_DIR}/cacerts" + SIGNCERTS_DIR="${MSP_DIR}/signcerts" + KEYSTORE_DIR="${MSP_DIR}/keystore" + CFG_FILE="${MSP_DIR}/config.yaml" + + echo "==> ${ORDERER}" + + # Basic existence checks (these came from your earlier pull step) + [[ -d "${CACERTS_DIR}" ]] || { echo " ERROR: ${CACERTS_DIR} missing"; exit 1; } + [[ -d "${SIGNCERTS_DIR}" ]] || { echo " ERROR: ${SIGNCERTS_DIR} missing"; exit 1; } + + # Always (re)write a fresh config.yaml + ensure_file "${CFG_FILE}" + + # Build args safely + ARGS=( + --namespace "${TARGET_NS}" + --from-file="${CACERTS_DIR}" + --from-file="${SIGNCERTS_DIR}" + --from-file="config.yaml=${CFG_FILE}" + ) + if [[ -d "${KEYSTORE_DIR}" && -n "$(ls -A "${KEYSTORE_DIR}" 2>/dev/null || true)" ]]; then + ARGS+=( --from-file="${KEYSTORE_DIR}" ) + fi + + # Apply (create/update) the secret + kubectl create secret generic "${ORDERER}-msp" "${ARGS[@]}" --dry-run=client -o yaml | kubectl apply -f - + + # Verify config.yaml present + if kubectl -n "${TARGET_NS}" get secret "${ORDERER}-msp" -o jsonpath='{.data.config\.yaml}' >/dev/null 2>&1; then + echo " ✓ config.yaml added to ${ORDERER}-msp" + else + echo " ✗ config.yaml missing on ${ORDERER}-msp (unexpected)"; exit 1 + fi +done + +echo "All MSP secrets patched with NodeOUs config.yaml." + diff --git a/hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh b/hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh new file mode 100644 index 0000000..4b50d3b --- /dev/null +++ b/hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +set -euo pipefail + +NS="${NS:-hlf-orderer}" +RELEASE="${RELEASE:-fabric-orderer}" +ARCHIVE="${1:-}" +[ -z "$ARCHIVE" ] && { echo "Usage: $0 "; exit 1; } + +WORK="/tmp/restore-$$" +mkdir -p "$WORK" +trap 'rm -rf "$WORK"' EXIT + +echo "==> Extracting archive" +tar -xzf "$ARCHIVE" -C "$WORK" +BACKUP_DIR="$(find "$WORK" -maxdepth 1 -type d -name "${RELEASE}-backup-*")" + +echo "==> Ensure namespace" +kubectl get ns "$NS" >/dev/null 2>&1 || kubectl create ns "$NS" + +echo "==> Restore ConfigMaps (generic dump)" +if [ -s "$BACKUP_DIR/configmaps.yaml" ]; then + kubectl -n "$NS" apply -f "$BACKUP_DIR/configmaps.yaml" +fi + +echo "==> Restore MSP/TLS secrets" +if [ -d "$BACKUP_DIR/secrets" ]; then + for dir in "$BACKUP_DIR"/secrets/*; do + s="$(basename "$dir")" + echo " -> $s" + kubectl -n "$NS" delete secret "$s" --ignore-not-found + # Rebuild secret from files in the dir + kubectl -n "$NS" create secret generic "$s" $(printf -- ' --from-file=%s' "$dir"/*) + done +fi + +echo "==> Reinstall/upgrade Helm release with saved values" +if [ -f "$BACKUP_DIR/values.yaml" ]; then + # If you have the chart directory locally: + helm upgrade --install "$RELEASE" ./ -n "$NS" -f "$BACKUP_DIR/values.yaml" + # If you do NOT have the chart, you can restore from the helm release secret instead: + # kubectl -n "$NS" apply -f "$BACKUP_DIR/helm-release-secrets.yaml" + # Then 'helm history' should pick it up; you may still need the chart source to re-install. +else + echo "WARN: values.yaml not found; skipping helm upgrade/install." +fi + +echo "==> (Optional) restore blocks" +# Example: copy genesis.block into a CM for convenience +if [ -f "$BACKUP_DIR/genesis.block" ]; then + kubectl -n "$NS" create cm genesis-block --from-file=genesis.block \ + --dry-run=client -o yaml | kubectl apply -f - +fi + +echo "Restore complete." + From f5c03f5eec57b0ff4873eb7ad3c8f1c41033ce9c Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 12:39:41 -0400 Subject: [PATCH 07/11] delete orderer deplotyment manifet --- .../orderer/DOCUMENTATION_INDEX.md | 271 --------- hyperledger-fabric-network/orderer/README.md | 328 ----------- .../orderer/genesis/genesis.block | Bin 16453 -> 0 bytes .../helm-charts/fabric-orderer/Chart.yaml | 6 - .../fabric-orderer/templates/NOTES.txt | 11 - .../fabric-orderer/templates/_helpers.tpl | 23 - .../fabric-orderer/templates/configmap.yaml | 10 - .../fabric-orderer/templates/service.yaml | 27 - .../fabric-orderer/templates/statefulset.yaml | 243 -------- .../helm-charts/fabric-orderer/values.yaml | 118 ---- .../orderer/policies/kyverno/README.md | 165 ------ .../kyverno/disallow-latest-tags.yaml | 32 -- .../kyverno/enforce-security-context.yaml | 77 --- .../kyverno/restrict-network-access.yaml | 61 -- .../kyverno/validate-genesis-block.yaml | 47 -- .../kyverno/validate-orderer-secrets.yaml | 47 -- .../orderer/scripts/check.sh | 522 ------------------ ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk | 5 - .../orderers/orderer0/msp/signcerts/cert.pem | 17 - .../orderers/orderer0/tls-ready/ca.crt | 14 - .../orderers/orderer0/tls-ready/server.crt | 18 - .../orderers/orderer0/tls-ready/server.key | 5 - ...ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk | 5 - .../orderers/orderer0/tls/signcerts/cert.pem | 18 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk | 5 - ...afa61d5dc4498052e0386c2f773271280169548_sk | 5 - .../orderers/orderer1/msp/signcerts/cert.pem | 17 - .../orderers/orderer1/tls-ready/ca.crt | 14 - .../orderers/orderer1/tls-ready/server.crt | 18 - .../orderers/orderer1/tls-ready/server.key | 5 - ...380cc1ca3d97ddf7f44d900070f6d967091af2f_sk | 5 - .../orderers/orderer1/tls/signcerts/cert.pem | 18 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk | 5 - .../orderers/orderer2/msp/signcerts/cert.pem | 17 - .../orderers/orderer2/tls-ready/ca.crt | 14 - .../orderers/orderer2/tls-ready/server.crt | 18 - .../orderers/orderer2/tls-ready/server.key | 5 - ...322193d948431ba7c4a81245ed9160861655bab_sk | 5 - .../orderers/orderer2/tls/signcerts/cert.pem | 18 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...276e4d2584a939cb8d103a0513dc1a385706cb4_sk | 5 - .../orderers/orderer3/msp/signcerts/cert.pem | 17 - .../orderers/orderer3/tls-ready/ca.crt | 14 - .../orderers/orderer3/tls-ready/server.crt | 18 - .../orderers/orderer3/tls-ready/server.key | 5 - ...40c9dcc531fe5cb355fc85c0501f83f46cef279_sk | 5 - .../orderers/orderer3/tls/signcerts/cert.pem | 18 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - ...aff622af9ff221eb6acd2df915eb0b0531efb90_sk | 5 - .../orderers/orderer4/msp/signcerts/cert.pem | 17 - .../orderers/orderer4/tls-ready/ca.crt | 14 - .../orderers/orderer4/tls-ready/server.crt | 18 - .../orderers/orderer4/tls-ready/server.key | 5 - ...440edb11c3f94026c682963b97c7387dce2f46f_sk | 5 - .../orderers/orderer4/tls/signcerts/cert.pem | 18 - ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 14 - .../orderer/secrets/add-orderer-msp-config.sh | 44 -- .../orderer/secrets/backup-fabric-orderer.sh | 80 --- .../secrets/create-orderer-secrets-v2.sh | 87 --- .../secrets/orderer0-msp/IssuerPublicKey | 0 .../orderer0-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 1 - .../orderer/secrets/orderer0-msp/config.yaml | 14 - ...b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk | 1 - .../secrets/orderer0-msp/signcerts/cert.pem | 1 - .../secrets/orderer0-tls/IssuerPublicKey | 0 .../orderer0-tls/IssuerRevocationPublicKey | 0 ...ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk | 0 .../secrets/orderer0-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 1 - .../secrets/orderer1-msp/IssuerPublicKey | 0 .../orderer1-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer1-msp/config.yaml | 175 ------ ...afa61d5dc4498052e0386c2f773271280169548_sk | 0 .../secrets/orderer1-msp/keystore/key.pem | 0 .../secrets/orderer1-msp/signcerts/cert.pem | 0 .../secrets/orderer1-tls/IssuerPublicKey | 0 .../orderer1-tls/IssuerRevocationPublicKey | 0 ...380cc1ca3d97ddf7f44d900070f6d967091af2f_sk | 0 .../secrets/orderer1-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../secrets/orderer2-msp/IssuerPublicKey | 0 .../orderer2-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer2-msp/config.yaml | 175 ------ .../secrets/orderer2-msp/keystore/key.pem | 0 .../secrets/orderer2-msp/signcerts/cert.pem | 0 .../secrets/orderer2-tls/IssuerPublicKey | 0 .../orderer2-tls/IssuerRevocationPublicKey | 0 ...322193d948431ba7c4a81245ed9160861655bab_sk | 0 .../secrets/orderer2-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../secrets/orderer3-msp/IssuerPublicKey | 0 .../orderer3-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer3-msp/config.yaml | 175 ------ .../secrets/orderer3-msp/keystore/key.pem | 0 .../secrets/orderer3-msp/signcerts/cert.pem | 0 .../secrets/orderer3-tls/IssuerPublicKey | 0 .../orderer3-tls/IssuerRevocationPublicKey | 0 ...40c9dcc531fe5cb355fc85c0501f83f46cef279_sk | 0 .../secrets/orderer3-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../secrets/orderer4-msp/IssuerPublicKey | 0 .../orderer4-msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../orderer/secrets/orderer4-msp/config.yaml | 175 ------ .../secrets/orderer4-msp/keystore/key.pem | 0 .../secrets/orderer4-msp/signcerts/cert.pem | 0 .../secrets/orderer4-tls/IssuerPublicKey | 0 .../orderer4-tls/IssuerRevocationPublicKey | 0 ...440edb11c3f94026c682963b97c7387dce2f46f_sk | 0 .../secrets/orderer4-tls/signcerts/cert.pem | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 0 .../patch-orderer-msp-config-inplace.sh | 37 -- .../patch-orderer-msp-config-json-v2.sh | 35 -- .../secrets/patch-orderer-msp-config-json.sh | 34 -- .../secrets/patch-orderer-msp-config.sh | 69 --- .../orderer/secrets/restore-fabric-orderer.sh | 55 -- 127 files changed, 3702 deletions(-) delete mode 100644 hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md delete mode 100644 hyperledger-fabric-network/orderer/README.md delete mode 100644 hyperledger-fabric-network/orderer/genesis/genesis.block delete mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml delete mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt delete mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl delete mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml delete mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml delete mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml delete mode 100644 hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml delete mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/README.md delete mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml delete mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml delete mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml delete mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml delete mode 100644 hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml delete mode 100644 hyperledger-fabric-network/orderer/scripts/check.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/key.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer1-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/keystore/key.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer2-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/keystore/key.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer3-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/keystore/key.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/orderer4-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh delete mode 100644 hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh diff --git a/hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md b/hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md deleted file mode 100644 index 8a64b56..0000000 --- a/hyperledger-fabric-network/orderer/DOCUMENTATION_INDEX.md +++ /dev/null @@ -1,271 +0,0 @@ -# Orderer Infrastructure Documentation Index - -This index provides a comprehensive overview of all documentation, scripts, and policies for the Hyperledger Fabric orderer infrastructure on Kubernetes. - -## 📋 Quick Navigation - -| Document | Purpose | Audience | Status | -|----------|---------|----------|--------| -| [TECHNICAL_SPECS.md](#technical-specifications) | Architecture & technical design | Platform/SRE Engineers | ✅ Complete | -| [OPERATIONAL_PROCEDURES.md](#operational-procedures) | Day-2 operations & runbooks | Operations Teams | ✅ Complete | -| [SECURITY_PROCEDURES.md](#security-procedures) | Security controls & hardening | Security Engineers | ✅ Complete | -| [scripts/check.sh](#health-check-script) | One-click health validation | All Teams | ✅ Complete | -| [policies/kyverno/](#security-policies) | Admission control policies | Security/Platform Teams | ✅ Complete | - ---- - -## 📖 Documentation Overview - -### Technical Specifications -**File**: `TECHNICAL_SPECS.md` -**Purpose**: Complete technical reference for orderer infrastructure architecture -**Contents**: -- Kubernetes resource specifications (StatefulSet, Services, PVC, RBAC) -- Raft consensus configuration and requirements -- Genesis block management and structure -- MSP and TLS secret structure for orderer identity -- Network ports, resource sizing, and security contexts -- Integration points with peer organizations -- Scaling, high availability, and known issues - -**Key Configuration**: -- Namespace: `orderer` -- Chart Path: `./helm/orderer` -- Labels: `app.kubernetes.io/part-of=hyperledger-fabric` -- Consensus: Raft-based ordering service - ---- - -### Operational Procedures -**File**: `OPERATIONAL_PROCEDURES.md` -**Purpose**: Day-2 operations runbooks and maintenance procedures -**Contents**: -- Deployment and upgrade procedures for orderer cluster -- Raft consensus operations and health monitoring -- Genesis block management and updates -- MSP/TLS secret management and rotation -- Backup, restore, and disaster recovery -- Adding/removing orderer nodes safely -- Troubleshooting consensus, connectivity, and storage issues - -**Quick Commands**: -```bash -# Deploy orderer -helm upgrade --install fabric-orderer "./helm/orderer" -n orderer -f values-orderer.yaml - -# Check consensus health -kubectl -n orderer logs fabric-orderer-0 | grep -i "raft\|leader" - -# Validate secrets -kubectl -n orderer describe secret fabric-orderer-msp -``` - ---- - -### Security Procedures -**File**: `SECURITY_PROCEDURES.md` -**Purpose**: Security controls, hardening, and compliance guidance -**Contents**: -- Consensus security and Raft cluster protection -- Identity and Access Management (RBAC, ServiceAccounts) -- Network security with mTLS and NetworkPolicies -- Genesis block security and integrity -- Certificate management and rotation workflows -- Pod and container hardening (non-root, seccomp, capabilities) -- Incident response for consensus and certificate issues -- Compliance mapping and periodic security tasks - -**Security Objectives**: -- Consensus Integrity: Protect Raft mechanism from attacks -- Transaction Ordering: Secure ordering without content modification -- Network Isolation: Secure cluster from unauthorized access -- Genesis Block: Protect network bootstrap configuration - ---- - -## 🔧 Scripts and Tools - -### Health Check Script -**File**: `scripts/check.sh` -**Purpose**: One-click health validation for orderer infrastructure -**Modes**: -- `summary` (default): Basic pods, services, PVCs, consensus leader check -- `deep`: Comprehensive check including certificates, secrets, Genesis block -- `secrets-only`: MSP/TLS secrets structure and cert/key matching -- `consensus-only`: Raft consensus health and leadership only - -**Usage**: -```bash -# Quick health check -./scripts/check.sh - -# Full validation -./scripts/check.sh deep - -# Consensus validation only -./scripts/check.sh consensus-only -``` - -**Features**: -- Color-coded output (errors, warnings, success) -- Raft consensus leadership detection -- Genesis block validation -- MSP secret structure validation -- TLS certificate/private key pair verification -- Certificate expiration checking (30/90 day warnings) - ---- - -## 🛡️ Security Policies - -### Kyverno Admission Policies -**Directory**: `policies/kyverno/` -**Purpose**: Enforce security baselines and validation via admission control - -#### Policy Catalog - -| Policy | File | Purpose | Enforcement | -|--------|------|---------|-------------| -| **Image Security** | `disallow-latest-tags.yaml` | Block `:latest` image tags | 🔒 Enforce | -| **Container Security** | `enforce-security-context.yaml` | Non-root, seccomp, capabilities | 🔒 Enforce | -| **Secret Validation** | `validate-orderer-secrets.yaml` | Validate MSP/TLS structure | 🔒 Enforce | -| **Genesis Block** | `validate-genesis-block.yaml` | Validate Genesis block ConfigMap | 🔒 Enforce | -| **Network Security** | `restrict-network-access.yaml` | Generate NetworkPolicies | 📝 Generate | - -#### Installation -```bash -# Install Kyverno (if not present) -kubectl apply -f https://github.com/kyverno/kyverno/releases/latest/download/install.yaml - -# Apply all policies -kubectl apply -f policies/kyverno/ - -# Verify policies -kubectl get cpol -``` - -#### Policy Details - -**disallow-latest-tags.yaml** -- Prevents deployment of containers with `:latest` tags -- Scope: Pod, Deployment, StatefulSet in orderer namespace -- Rationale: Ensures reproducible deployments - -**enforce-security-context.yaml** -- Enforces non-root execution (`runAsNonRoot: true`) -- Requires RuntimeDefault seccomp profile -- Drops all Linux capabilities -- Prevents privilege escalation - -**validate-orderer-secrets.yaml** -- MSP secret (fabric-orderer-msp) must contain: cacerts, signcerts, keystore, config.yaml -- TLS secret (fabric-orderer-tls) must contain: tls.crt, tls.key, ca.crt -- Validates at secret creation/update time - -**validate-genesis-block.yaml** -- ConfigMap fabric-genesis-block must contain genesis.block data -- StatefulSet fabric-orderer must mount Genesis block ConfigMap -- Ensures Genesis block consistency - -**restrict-network-access.yaml** -- Auto-generates NetworkPolicy for orderer namespace -- Allows: Peers (7050), Inter-orderer Raft (7050), Monitoring (9443) -- Default deny for all other ingress traffic - ---- - -## 🏗️ Architecture Context - -### Orderer Deployment -``` -orderer/ # Orderer namespace -├── fabric-orderer-0, fabric-orderer-1, fabric-orderer-2 # Raft cluster (3 nodes) -├── fabric-orderer-msp, fabric-orderer-tls (secrets) # Identity and TLS -├── fabric-genesis-block (configmap) # Network bootstrap -└── fabric-orderer, fabric-orderer-headless (services) # Peer access + discovery -``` - -### Consensus Architecture -- **Raft Consensus**: 3, 5, or 7 orderers for fault tolerance -- **Leader Election**: One active leader, others follow -- **Log Replication**: Transaction ordering replicated across cluster -- **Fault Tolerance**: (n-1)/2 failures tolerated - -### Integration Points -- **Peer Connections**: Peers submit transactions on port 7050 -- **Genesis Block**: Network initialization and configuration -- **Channel Operations**: Channel creation and configuration updates -- **Certificate Authority**: Enrollment and certificate renewal -- **Operations/Metrics**: Health and metrics endpoint on port 9443 - ---- - -## 📚 Reference Materials - -### External Documentation -- [Hyperledger Fabric Orderer Documentation](https://hyperledger-fabric.readthedocs.io/en/latest/orderer_deploy.html) -- [Raft Consensus Algorithm](https://raft.github.io/) -- [Fabric Genesis Block Configuration](https://hyperledger-fabric.readthedocs.io/en/latest/config.html) -- [Kubernetes StatefulSet Best Practices](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) -- [Kyverno Policy Library](https://kyverno.io/policies/) - -### Related Network Components -- **Peers**: `../peers/` - Peer organization configuration -- **CA**: `../ca/` - Certificate Authority setup -- **Network Scripts**: `../scripts/` - Network deployment automation -- **Monitoring**: `../monitoring/` - Certificate monitoring and alerting - ---- - -## 🚀 Getting Started - -### New Team Members -1. Read [TECHNICAL_SPECS.md](./TECHNICAL_SPECS.md) for architecture overview -2. Review [OPERATIONAL_PROCEDURES.md](./OPERATIONAL_PROCEDURES.md) for common tasks -3. Run `./scripts/check.sh deep` to validate current deployment -4. Check [SECURITY_PROCEDURES.md](./SECURITY_PROCEDURES.md) for security guidelines - -### Emergency Procedures -1. **Consensus Issues**: Follow troubleshooting in OPERATIONAL_PROCEDURES.md section 10.2 -2. **Certificate Issues**: Use scripts/check.sh secrets-only + SECURITY_PROCEDURES.md section 13 -3. **Genesis Block Issues**: Check OPERATIONAL_PROCEDURES.md section 4 and SECURITY_PROCEDURES.md section 13.3 -4. **Network Partitions**: Follow OPERATIONAL_PROCEDURES.md section 15.1 - -### Common Tasks Quick Reference -| Task | Command | Documentation | -|------|---------|---------------| -| Health Check | `./scripts/check.sh` | [Scripts](#health-check-script) | -| Deploy Orderer | `helm upgrade --install fabric-orderer ./helm/orderer -n orderer -f values-orderer.yaml` | [Operations](./OPERATIONAL_PROCEDURES.md#1-deploy-or-upgrade-orderer) | -| Check Consensus | `./scripts/check.sh consensus-only` | [Operations](./OPERATIONAL_PROCEDURES.md#3-raft-consensus-operations) | -| Rotate Certs | Follow cert rotation workflow | [Security](./SECURITY_PROCEDURES.md#10-certificate-and-key-management) | -| Scale Orderer | `kubectl -n orderer scale sts fabric-orderer --replicas=5` | [Operations](./OPERATIONAL_PROCEDURES.md#91-adding-orderer-nodes) | -| View Logs | `kubectl -n orderer logs fabric-orderer-0 --tail=200` | [Operations](./OPERATIONAL_PROCEDURES.md#111-basic-health) | - ---- - -## 📞 Support and Contacts - -### Documentation Ownership -- **Technical Specifications**: Platform/Blockchain SRE Team -- **Operational Procedures**: Operations Team -- **Security Procedures**: Security Engineering Team -- **Scripts and Policies**: Platform Team - -### Escalation Path -1. **Consensus Failures**: Immediate escalation to SRE team -2. **Certificate Issues**: Security team consultation required -3. **Network Partitions**: Coordinate with infrastructure team -4. **Genesis Block Issues**: Require network-wide coordination - -### Update Process -1. Create PR with documentation changes -2. Review with appropriate team owners -3. Update version numbers and change dates -4. Test changes with validation scripts -5. Merge after approval - -**Last Updated**: 2025-01-02 -**Version**: 1.0 -**Maintainers**: Platform/Blockchain SRE - -For detailed information, start with the [📋 Documentation Index](./DOCUMENTATION_INDEX.md). diff --git a/hyperledger-fabric-network/orderer/README.md b/hyperledger-fabric-network/orderer/README.md deleted file mode 100644 index 3f1af65..0000000 --- a/hyperledger-fabric-network/orderer/README.md +++ /dev/null @@ -1,328 +0,0 @@ -# Hyperledger Fabric Orderer Infrastructure - -Production-ready Hyperledger Fabric orderer infrastructure for Kubernetes, featuring Raft consensus, comprehensive documentation, security policies, and operational tooling. - -## 🚀 Quick Start - -```bash -# Health check -./scripts/check.sh - -# Deploy orderer cluster -helm upgrade --install fabric-orderer "./helm/orderer" -n orderer -f values-orderer.yaml --create-namespace - -# Verify deployment -kubectl -n orderer get pods,svc,pvc - -# Check consensus health -./scripts/check.sh consensus-only -``` - -## 📁 Repository Structure - -``` -orderer/ -├── DOCUMENTATION_INDEX.md # 📋 Master documentation index -├── TECHNICAL_SPECS.md # 🏗️ Architecture & technical design -├── OPERATIONAL_PROCEDURES.md # 🔧 Day-2 operations & runbooks -├── SECURITY_PROCEDURES.md # 🛡️ Security controls & hardening -├── scripts/ -│ └── check.sh # ✅ One-click health validation -├── policies/kyverno/ # 🔐 Security admission policies -│ ├── disallow-latest-tags.yaml -│ ├── enforce-security-context.yaml -│ ├── validate-orderer-secrets.yaml -│ ├── validate-genesis-block.yaml -│ ├── restrict-network-access.yaml -│ └── README.md -└── [Helm charts, values, secrets] # 📦 Deployment artifacts -``` - -## 🏛️ Consensus Architecture - -| Component | Purpose | Configuration | Status | -|-----------|---------|---------------|--------| -| **Raft Cluster** | Consensus mechanism | 3-7 orderers (odd numbers) | ✅ Active | -| **Genesis Block** | Network bootstrap | ConfigMap-based | ✅ Available | -| **Leader Election** | Consensus leadership | Automatic failover | ✅ Monitored | -| **Log Replication** | Transaction ordering | Distributed ledger | ✅ Replicated | - -## 🎯 Key Features - -### 📚 **Comprehensive Documentation** -- **Technical Specifications**: Complete architecture reference -- **Operational Procedures**: Production-ready runbooks -- **Security Procedures**: Consensus security and hardening guidance -- **Documentation Index**: Master navigation and overview - -### 🔍 **One-Click Health Validation** -```bash -./scripts/check.sh [summary|deep|secrets-only|consensus-only] -``` -- Raft consensus health and leadership -- Pod and service health -- Genesis block validation -- MSP/TLS secret structure validation -- Certificate/key pair verification -- Certificate expiration monitoring - -### 🛡️ **Security-First Design** -- **Kyverno Policies**: Admission control for security baselines -- **Consensus Security**: Raft cluster protection and integrity -- **mTLS Everywhere**: Peer connections, inter-orderer, operations -- **Network Isolation**: NetworkPolicies and ingress restrictions -- **Genesis Block Protection**: Tamper-evident network configuration - -### 🎛️ **Production Operations** -- **Raft Consensus**: 3-node fault-tolerant cluster -- **Helm-Based**: GitOps-ready deployments -- **Scalable**: Add/remove orderers safely -- **Observable**: Prometheus metrics, consensus monitoring -- **Recoverable**: Backup/restore with disaster recovery - -## 📖 Documentation Quick Links - -| Document | Purpose | Quick Access | -|----------|---------|--------------| -| 📋 [Documentation Index](./DOCUMENTATION_INDEX.md) | Master overview and navigation | **Start here** | -| 🏗️ [Technical Specs](./TECHNICAL_SPECS.md) | Architecture, Kubernetes resources, Raft | Engineers | -| 🔧 [Operations](./OPERATIONAL_PROCEDURES.md) | Deploy, consensus ops, troubleshoot | Operations | -| 🛡️ [Security](./SECURITY_PROCEDURES.md) | Hardening, policies, incident response | Security | - -## ⚡ Common Tasks - -### Deploy Orderer Cluster -```bash -# Set chart path -CHART_PATH="./helm/orderer" - -# Deploy with orderer configuration -helm upgrade --install fabric-orderer "$CHART_PATH" \ - -n orderer -f values-orderer.yaml --create-namespace - -# Verify Raft cluster formation -kubectl -n orderer logs fabric-orderer-0 | grep -i "raft\|leader" -``` - -### Health Check -```bash -# Quick consensus check -./scripts/check.sh - -# Full validation with certificates and Genesis block -./scripts/check.sh deep - -# Only validate Raft consensus health -./scripts/check.sh consensus-only -``` - -### Scale Orderer Cluster -```bash -# Scale to 5 nodes (must be odd number) -kubectl -n orderer scale sts fabric-orderer --replicas=5 - -# Verify new nodes join Raft cluster -kubectl -n orderer logs fabric-orderer-4 | grep "joined.*cluster" -``` - -### Troubleshoot Issues -```bash -# Check orderer pod status -kubectl -n orderer get pods -l app.kubernetes.io/name=fabric-orderer - -# View consensus logs -kubectl -n orderer logs fabric-orderer-0 --tail=200 - -# Validate secrets and Genesis block -kubectl -n orderer describe secret fabric-orderer-msp -kubectl -n orderer describe configmap fabric-genesis-block - -# Check secret structure -./scripts/check.sh secrets-only -``` - -## 🔐 Security Features - -### Admission Policies (Kyverno) -```bash -# Install Kyverno -kubectl apply -f https://github.com/kyverno/kyverno/releases/latest/download/install.yaml - -# Apply orderer security policies -kubectl apply -f policies/kyverno/ - -# Verify policies -kubectl get cpol -``` - -**Policy Coverage**: -- ✅ Block `:latest` image tags -- ✅ Enforce non-root containers -- ✅ Require seccomp profiles -- ✅ Drop all Linux capabilities -- ✅ Validate MSP/TLS secret structure -- ✅ Validate Genesis block ConfigMap -- ✅ Network ingress restrictions - -### Consensus Security -```bash -# Monitor Raft leadership -kubectl -n orderer logs fabric-orderer-0 | grep "became leader\|lost leadership" - -# Check cluster membership -kubectl -n orderer logs fabric-orderer-0 | grep "cluster membership" - -# Validate Genesis block consistency -./scripts/check.sh deep -``` - -## 🏗️ Architecture Overview - -### Kubernetes Resources -- **StatefulSet**: Orderer cluster with persistent identity (fabric-orderer) -- **Services**: ClusterIP (peer access) + Headless (Raft discovery) -- **PVC**: Persistent storage for Raft logs and ledger data -- **Secrets**: MSP (orderer identity) + TLS (transport security) -- **ConfigMap**: Genesis block (network bootstrap configuration) -- **NetworkPolicy**: Ingress restrictions and peer access control - -### Raft Consensus -``` -Orderer Cluster (3 nodes): -├── fabric-orderer-0 (Leader) # Active leader, processes transactions -├── fabric-orderer-1 (Follower) # Replicates leader's log -└── fabric-orderer-2 (Follower) # Replicates leader's log - -Fault Tolerance: (3-1)/2 = 1 node failure tolerated -``` - -### Genesis Block Structure -``` -Genesis Block ConfigMap: -├── genesis.block # Binary genesis block file -├── Consortium definitions # Network participants -├── Orderer MSP definitions # Orderer organization identity -└── Raft configuration # Consensus parameters -``` - -## 🔧 Prerequisites - -### Required Tools -- `kubectl` - Kubernetes CLI -- `helm` - Kubernetes package manager -- `openssl` - Certificate validation (optional) - -### Cluster Requirements -- Kubernetes 1.20+ -- RBAC enabled -- StorageClass for persistent volumes (high IOPS recommended) -- Optional: Kyverno for admission policies - -### Network Access -- Peer organizations (ingress on port 7050) -- Inter-orderer Raft communication (port 7050) -- Operations/metrics endpoint (port 9443, optional) - -## 🚨 Emergency Procedures - -### Consensus Failure (No Leader) -1. Check logs: `kubectl -n orderer logs fabric-orderer-0 | grep -i raft` -2. Validate Genesis block: `./scripts/check.sh deep` -3. See [Operations Guide](./OPERATIONAL_PROCEDURES.md#102-raft-consensus-issues) - -### Certificate Issues -1. Run certificate check: `./scripts/check.sh secrets-only` -2. Follow [Security Guide](./SECURITY_PROCEDURES.md#132-tls-certificate-emergency) -3. Recreate secrets if needed - -### Genesis Block Corruption -1. Validate ConfigMap: `kubectl -n orderer describe configmap fabric-genesis-block` -2. Follow [Security Guide](./SECURITY_PROCEDURES.md#133-genesis-block-corruption) -3. Restore from backup if needed - -## 📊 Monitoring - -### Consensus Health -```bash -# Check current leader -kubectl -n orderer logs fabric-orderer-0 | grep "became leader" - -# Monitor block production -kubectl -n orderer logs fabric-orderer-0 | grep "Created block" - -# Raft cluster membership -kubectl -n orderer logs fabric-orderer-0 | grep "cluster membership" -``` - -### Operations Endpoint -```bash -# Port-forward to operations endpoint -kubectl -n orderer port-forward svc/fabric-orderer 9443:9443 - -# Check health -curl -sk https://localhost:9443/healthz - -# View metrics (if enabled) -curl -sk https://localhost:9443/metrics | grep consensus -``` - -### Log Aggregation -```bash -# Stream all orderer logs -kubectl -n orderer logs -l app.kubernetes.io/name=fabric-orderer -f - -# Specific orderer logs -kubectl -n orderer logs fabric-orderer-0 -f -``` - -## 🤝 Contributing - -### Documentation Updates -1. Fork repository and create feature branch -2. Update relevant documentation files -3. Test changes with `./scripts/check.sh deep` -4. Submit pull request with clear description - -### Scaling Orderer Cluster -1. Plan: odd numbers only (3, 5, 7) -2. Update Genesis block with new orderer definitions -3. Scale: `kubectl -n orderer scale sts fabric-orderer --replicas=5` -4. Verify: monitor logs for cluster membership changes -5. Update documentation - -## 📞 Support - -### Team Contacts -- **Platform/SRE Team**: Technical architecture, Kubernetes infrastructure, Raft consensus -- **Operations Team**: Deployment, scaling, day-2 operations -- **Security Team**: Policies, Genesis block, certificate management, incident response - -### Escalation Guidelines -- **Consensus Failures**: Immediate SRE escalation -- **Certificate Issues**: Security team consultation -- **Genesis Block Issues**: Network-wide coordination required -- **Network Partitions**: Infrastructure team coordination - -### Useful Commands Reference -```bash -# Get all orderer resources -kubectl -n orderer get all,secrets,configmaps,pvc - -# Check Helm release -helm list -n orderer - -# View Kyverno policies -kubectl get cpol | grep orderer - -# Monitor Raft consensus -kubectl -n orderer logs -f fabric-orderer-0 | grep -i raft -``` - ---- - -**📍 Location**: `/root/hyperledger-fabric-network/orderer/` -**🏷️ Version**: 1.0 -**📅 Last Updated**: 2025-01-02 -**👥 Maintainers**: Platform/Blockchain SRE Team - -For detailed information, start with the [📋 Documentation Index](./DOCUMENTATION_INDEX.md). diff --git a/hyperledger-fabric-network/orderer/genesis/genesis.block b/hyperledger-fabric-network/orderer/genesis/genesis.block deleted file mode 100644 index 5cd2880aacee6adaa1db1a7e8bc68fc97c404e6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16453 zcmeHOON`^#b)9PW^pu~+?FwVV$if@10yu^@K@z}7V89!1jI0u58N~1+2m&~XscNaZ zdOAH_)6?i~52S)r(&N44<>R}T=bd*5PL6MXv-UY#{Ly#r{7q8(XyL!#;(v1Olh=;^ z`McD={_q#S|84bWuOn}s9e_W|-+z$5zXZN`cyM%ZeBd1P0H<%)rq%A--GTCz&jk!2ZX!$9#;qg=v9cn!ry7~a6`hE=bZjjCyv z%R>{z?K*Ody!PimeCtb}{4-ej!C(H>n}=`y`yYO1^&hW)@4rSbAz%Fp_`R>+CKK`d$-~*i8MgHy<^1WNgU*EdezG?jWjk}u{ zK{G6Wo1`U$ZL%a(=<`;8DYV8oJ3S;l0rm zO-V;%JAuxwCn%lUr@)}-Qw~lUSnAQlm?QgrZq;1FKH>2Fd~XUh#g^tw3Rs#Sn|>oQ z2H2RB#FTb4sxOKiK<ltAuCzD^F)E&z#U*4x;BfBv%|G`AygKy$L5x(`I_^MA0k4 z*9Ps(7;rJr%5-d&`k51x1q*9Z0X6Lfs=Us%2u@tcs@Ld{ON4Eg297GsSzF ztKz*#8LuO(&KDCnn-f`zPYM#H+Ve)uY?!IJWA z6gl3u6|*^|ss)aN0Yj1tM&_yw0&*lo9mvr=k`>8jwc)}^TxbKoEVS6#Y^b?p9F~`U zuP)FLCocwJPhG5&jwZ5>(C*;g$X+^GcR5x|?P0GYF8sngZt5BEP|JX&NKJLE$@iVl zgYywi^VGwmp129F%Pm+&ZfriWntt|)!vo}7H^4qw_Q|qOmIrSU$PLqT?OA;M&3%6C zZzlVj$=e|ma(!;w;mKd@vtyqf`|NlqJ6<*{-<{ogYo8wb^w_7zL+SBKaBpURd;@Os zBs!^r?Kk8Oayy@ud4Zsh;39lmsYgxtJ5x8G0`TdxXuMY4^YBZ!dCAfL|7k1x61 zL|(n@cG+nVy79Ymy0bmv@d@}KVZ`QGcGouYG2}ys;OOk^Z%eP8o!#CY;P}(v)pHxg z_3a>uk(T7-QVKR5LXHgO<+1y5c(L;XT1BZ5OTA?wDk$>xfH-8PhzU^!Djj=bn zyZ!M-v^3u^y(DLL!Z*CYG`yof#*e>ycs_f42iByfQQ4l@$^y&r*g)u3aPSAQ}v)dpY>>!R)Q)^w5a^j zOHK+NW=w>DBhI-it1XHHju3O=BVwS~YZ7T5nd5|nLpO<>&w&%j<)^^+TN1aSROq|` z?wlz{91w&Y7yC_=Vf&@_VCb})%Ss2Y`MezY;Tn!MzMv&@G(*9GLr6t`DR(7)8PiNUP=(?KKCnSQ3LY+_dQ z$*Iprmdc}>-$SM`(FSR%!knIRI2sV5)*>NI_gaywsS;|=I9HfOuEA)DIM97#u$t%X z^I^H_3NGuOlI=iuvF32rUJjX64DiFtH7+ws z;6X}>YK1fCiPiGD&9j}=B#J#1?R4t84oAT}n73kf7$`)7Svl9~Se&5(9?wP*UAFOI zeJVQ@S8h+26fs+_gr%F{LWMD~A}*uv#3-HY3&uHfv@aO@g0U|cS11^l@kr@0c;rv6 zghw_vrAv5(EObMoPcBh!RV=1%sb1(R1IzBJSp8Rb73Y3=*{tNeD0qav3LcS`?ImTC zHX++it)YozxNLImWFA2)G?ijUb%E4cdR1ah8x4Dq-*ok%Rp(f=)n@vHRA(B3L(OKH zA6SyyRVgnK>0p#SOFSY;owy(+WpA;l<8`y#ouv4P>C6O`dwO_8yNpNZ7X^>V?;4Mo z`4X2%vMqT=6uKov*ZB!qD4Mp{3p+(4&VmBnTaXJ@Xidm&2d}F!bO}ttdlqOU`tUSe zxRjTg1H3#6S`tQ^hRR~IHUTwt5OLFK`uX>YNA?BdiB_!tzh&QdIf2<1jD5klza+k$ zz&ziAaT$-4AA?8!^h$W-ZTtu|clg?{7Gt8(g=jAs`KiOA(+Sq-y+7~>{lef8_9}Qp zu6ddexpj)5^1#YZ9Q7-HK7=y18_ zjm%8eO^by}xz5#zfYyw@42705%rJ>8I`Z_r;*ov9cwTs9UoiFs;~_lqd<({9JW_cK z9(khmns$542yi-z*1VixZYNHJc!*}G$OrEaJi@*(c!awO9uYO$OA7;&Gz_Ot2B&FV zA)8UP)a=c}^t9)BWsoliiP^ZamY_cJv^v3(M4iM0%UpL`_@FeYK&F8SHC?5gsGi{H z#5+BGrg((pYV~#((@l9)XF|O(a$KRfa+j^))8j{~m+=VqqTrG2$??cSu4Wa;ccl`yA#Q(SAlMB_4Ljysb8=6IxKNoBy>3p&JRj8zScg3dW=`;=6Y^@>Kv zYt$Q|rY+lx8T*v+$i84)P0{}p_>q0V*cXgPSOT8*PetQ>8+E3yBPN} zwi8zD`f@Hb+WNrtuu=8>fk)1t#Caj~BjQ!?h(r|}J)Ov2*chRlz>c$lP*E3xY|JW{ zUec!_;K!@66Gl|R#I7<)Q%b~fM`p0jdNFOZR%Vp0+he}9SX&rbS3{u|2h_8~BeGL% zq$n|i;)KeKg2~urI4A~DPr#I?#gFh0=tsmC1ds6VK|f+-oZPn>iqXpHj2pD`~GQCW9EHh>aDU?FA%3@Q!$EI zd8R#OJhCqs&kT?33&y@+JQ|NYmx6&H;AIR&{pbk1c5wUU&zzl|UC3rnPA)XWuOT-N zKah)Nx2oNvYdg{G$sOr|3Zu~*;%2pM8VS934U3_7)l^b8S z*@=lSY~Hq?opu=c#{=-8jbJwjV>j_5 t_h1;0fzBJ_>LV{gKCX8|^PR@(PCx(Xv44f}yc?^>`J=+%8hB~<_e=kHc$xqJ diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml deleted file mode 100644 index 97983a1..0000000 --- a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/Chart.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v2 -name: fabric-orderer -description: Hyperledger Fabric RAFT Ordering Service (one StatefulSet per orderer) -type: application -version: 0.1.0 -appVersion: "2.5.7" diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt deleted file mode 100644 index 7cf5b1d..0000000 --- a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/NOTES.txt +++ /dev/null @@ -1,11 +0,0 @@ -Thanks for installing {{ include "fabric-orderer.fullname" . }}! - -1) Verify pods: - kubectl get pods -l app.kubernetes.io/component=orderer -n {{ .Release.Namespace }} - -2) Verify services: - kubectl get svc -l app.kubernetes.io/component=orderer -n {{ .Release.Namespace }} - -3) Health checks (Operations endpoint): - kubectl port-forward svc/{{ (index .Values.orderers 0).name }} {{ .Values.ports.operations }}:{{ .Values.ports.operations }} -n {{ .Release.Namespace }} - curl http://127.0.0.1:{{ .Values.ports.operations }}/healthz diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl deleted file mode 100644 index e6ae749..0000000 --- a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/_helpers.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{{- define "fabric-orderer.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} - -{{- define "fabric-orderer.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s" (include "fabric-orderer.name" .) | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end }} - -{{- define "fabric-orderer.labels" -}} -app.kubernetes.io/name: {{ include "fabric-orderer.name" . }} -helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }} -app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" . }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{- define "fabric-orderer.ordererLabels" -}} -{{ include "fabric-orderer.labels" $ }} -app.kubernetes.io/component: orderer -{{- end }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml deleted file mode 100644 index 7e8fc13..0000000 --- a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/configmap.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "fabric-orderer.fullname" . }}-config - labels: - {{- include "fabric-orderer.labels" . | nindent 4 }} -data: - orderer.yaml: | -{{- /* Render ordererConfig as YAML under orderer.yaml */}} -{{- toYaml .Values.ordererConfig | nindent 4 }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml deleted file mode 100644 index 6567f92..0000000 --- a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/service.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{- range $i, $o := .Values.orderers }} -apiVersion: v1 -kind: Service -metadata: - name: {{ $o.name }} - labels: - app.kubernetes.io/name: {{ $o.name }} - app.kubernetes.io/component: orderer - app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" $ }} - helm.sh/chart: {{ $.Chart.Name }}-{{ $.Chart.Version }} -spec: - type: ClusterIP - selector: - app.kubernetes.io/name: {{ $o.name }} - app.kubernetes.io/component: orderer - ports: - - name: client - port: {{ $.Values.ports.client }} - targetPort: {{ $.Values.ports.client }} - - name: cluster - port: {{ $.Values.ports.cluster }} - targetPort: {{ $.Values.ports.cluster }} - - name: operations - port: {{ $.Values.ports.operations }} - targetPort: {{ $.Values.ports.operations }} ---- -{{- end }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml deleted file mode 100644 index 4b8f1bd..0000000 --- a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/templates/statefulset.yaml +++ /dev/null @@ -1,243 +0,0 @@ -{{- range $i, $o := .Values.orderers }} -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ $o.name }} - labels: - app.kubernetes.io/name: {{ $o.name }} - app.kubernetes.io/component: orderer - app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" $ }} - helm.sh/chart: {{ $.Chart.Name }}-{{ $.Chart.Version }} -spec: - serviceName: {{ $o.name }} - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: {{ $o.name }} - app.kubernetes.io/component: orderer - template: - metadata: - labels: - app.kubernetes.io/name: {{ $o.name }} - app.kubernetes.io/component: orderer - app.kubernetes.io/instance: {{ include "fabric-orderer.fullname" $ }} - helm.sh/chart: {{ $.Chart.Name }}-{{ $.Chart.Version }} - annotations: - # Use root context ($) so included template sees .Values - checksum/orderer-config: {{ include (print $.Template.BasePath "/configmap.yaml") $ | sha256sum }} - spec: - {{- with $.Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with $.Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with $.Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - - initContainers: - - name: init-msp-tls - image: "{{ $.Values.initImage.repository }}:{{ $.Values.initImage.tag }}" - imagePullPolicy: {{ $.Values.initImage.pullPolicy }} - command: ["/bin/sh","-c"] - args: - - | - set -euo pipefail - - DEST=/var/hyperledger/orderer - MSP=${DEST}/msp - - # Create MSP structure - mkdir -p ${MSP}/cacerts ${MSP}/signcerts ${MSP}/keystore ${MSP}/tlscacerts - - # Copy MSP from secret (supports both structured and flat secrets) - if [ -d /msp-src/cacerts ] || [ -d /msp-src/signcerts ] || [ -d /msp-src/keystore ]; then - cp -a /msp-src/cacerts/* ${MSP}/cacerts/ 2>/dev/null || true - cp -a /msp-src/signcerts/* ${MSP}/signcerts/ 2>/dev/null || true - cp -a /msp-src/keystore/* ${MSP}/keystore/ 2>/dev/null || true - [ -f /msp-src/config.yaml ] && cp /msp-src/config.yaml ${MSP}/config.yaml || true - else - # Flat secret: reconstruct layout from filenames - if [ -f /msp-src/cert.pem ]; then - cp /msp-src/cert.pem ${MSP}/signcerts/cert.pem - else - FIRST_CERT="$(ls -1 /msp-src/*.pem 2>/dev/null | grep -viE 'ca|root' | head -n1 || true)" - [ -n "${FIRST_CERT}" ] && cp "${FIRST_CERT}" ${MSP}/signcerts/cert.pem || true - fi - SK="$(ls -1 /msp-src/*_sk 2>/dev/null | head -n1 || true)" - [ -n "${SK}" ] && cp "${SK}" ${MSP}/keystore/ || true - for f in /msp-src/*.pem; do - [ -e "$f" ] || break - bn="$(basename "$f")" - echo "$bn" | grep -qiE 'ca|root|cacert' && cp "$f" ${MSP}/cacerts/ || true - done - [ -f /msp-src/config.yaml ] && cp /msp-src/config.yaml ${MSP}/config.yaml || true - fi - - # TLS files (expect normalized names in the TLS secret) - mkdir -p ${DEST}/tls - cp /tls-src/server.crt ${DEST}/tls/server.crt - cp /tls-src/server.key ${DEST}/tls/server.key - cp /tls-src/ca.crt ${DEST}/tls/ca.crt - - # Also place TLS CA into MSP tlscacerts (recommended) - cp ${DEST}/tls/ca.crt ${MSP}/tlscacerts/tls-ca.pem - - # Tighten key perms - chmod 600 ${MSP}/keystore/* 2>/dev/null || true - volumeMounts: - - name: msp-src - mountPath: /msp-src - readOnly: true - - name: tls-src - mountPath: /tls-src - readOnly: true - - name: orderer-writable - mountPath: /var/hyperledger/orderer - - containers: - - name: orderer - image: "{{ $.Values.image.repository }}:{{ $.Values.image.tag }}" - imagePullPolicy: {{ $.Values.image.pullPolicy }} - command: ["orderer"] - env: - - name: FABRIC_LOGGING_SPEC - value: "INFO" - - # Listen - - name: ORDERER_GENERAL_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_LISTENPORT - value: "{{ $.Values.ports.client | toString }}" - - # MSP - - name: ORDERER_GENERAL_LOCALMSPID - value: "{{ $o.mspID }}" - - name: ORDERER_GENERAL_LOCALMSPDIR - value: "/var/hyperledger/orderer/msp" - - # TLS - - name: ORDERER_GENERAL_TLS_ENABLED - value: "true" - - name: ORDERER_GENERAL_TLS_PRIVATEKEY - value: "/var/hyperledger/orderer/tls/server.key" - - name: ORDERER_GENERAL_TLS_CERTIFICATE - value: "/var/hyperledger/orderer/tls/server.crt" - - name: ORDERER_GENERAL_TLS_ROOTCAS - value: "[/var/hyperledger/orderer/tls/ca.crt]" - - # Cluster (RAFT) - host-only address + separate port (fixes :7051:7051) - - name: ORDERER_GENERAL_CLUSTER_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_CLUSTER_LISTENPORT - value: "{{ $.Values.ports.cluster | toString }}" - - name: ORDERER_GENERAL_CLUSTER_SERVERCERTIFICATE - value: "/var/hyperledger/orderer/tls/server.crt" - - name: ORDERER_GENERAL_CLUSTER_SERVERPRIVATEKEY - value: "/var/hyperledger/orderer/tls/server.key" - - name: ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE - value: "/var/hyperledger/orderer/tls/server.crt" - - name: ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY - value: "/var/hyperledger/orderer/tls/server.key" - - name: ORDERER_GENERAL_CLUSTER_ROOTCAS - value: "[/var/hyperledger/orderer/tls/ca.crt]" - - # Config file path - - name: ORDERER_CFGFILE - value: "/etc/hyperledger/fabric/orderer.yaml" - - # Bootstrap mode (Participation API default) - - name: ORDERER_GENERAL_BOOTSTRAPMETHOD - value: "{{ ternary "file" "none" $.Values.genesis.enabled }}" - {{- if $.Values.genesis.enabled }} - - name: ORDERER_GENERAL_BOOTSTRAPFILE - value: "{{ $.Values.genesis.mountPath }}/{{ $.Values.genesis.fileName }}" - {{- end }} - - # Ops & metrics - - name: ORDERER_OPERATIONS_LISTENADDRESS - value: "0.0.0.0:{{ $.Values.ports.operations | toString }}" - - name: ORDERER_METRICS_PROVIDER - value: "prometheus" - - ports: - - name: client - containerPort: {{ $.Values.ports.client }} - - name: cluster - containerPort: {{ $.Values.ports.cluster }} - - name: operations - containerPort: {{ $.Values.ports.operations }} - - volumeMounts: - - name: orderer-writable - mountPath: /var/hyperledger/orderer - - name: ledger - mountPath: /var/hyperledger/production/orderer - - name: orderer-config - mountPath: /etc/hyperledger/fabric - readOnly: true - - resources: - {{- toYaml $.Values.resources | nindent 12 }} - - {{- if $.Values.probes.liveness.enabled }} - livenessProbe: - httpGet: - path: {{ $.Values.probes.liveness.path }} - port: operations - initialDelaySeconds: {{ $.Values.probes.liveness.initialDelaySeconds }} - periodSeconds: {{ $.Values.probes.liveness.periodSeconds }} - timeoutSeconds: {{ $.Values.probes.liveness.timeoutSeconds }} - failureThreshold: {{ $.Values.probes.liveness.failureThreshold }} - {{- end }} - - {{- if $.Values.probes.readiness.enabled }} - readinessProbe: - httpGet: - path: {{ $.Values.probes.readiness.path }} - port: operations - initialDelaySeconds: {{ $.Values.probes.readiness.initialDelaySeconds }} - periodSeconds: {{ $.Values.probes.readiness.periodSeconds }} - timeoutSeconds: {{ $.Values.probes.readiness.timeoutSeconds }} - failureThreshold: {{ $.Values.probes.readiness.failureThreshold }} - {{- end }} - - volumes: - - name: orderer-writable - emptyDir: {} - - name: orderer-config - configMap: - name: {{ include "fabric-orderer.fullname" $ }}-config - items: - - key: orderer.yaml - path: orderer.yaml - # Read-only secrets (only init container reads them) - - name: msp-src - secret: - secretName: {{ $o.mspSecretName }} - - name: tls-src - secret: - secretName: {{ $o.tlsSecretName }} - {{- if $.Values.genesis.enabled }} - - name: genesis-src - secret: - secretName: {{ $.Values.genesis.secretName }} - {{- end }} - - volumeClaimTemplates: - - metadata: - name: ledger - spec: - accessModes: ["ReadWriteOnce"] - {{- if $.Values.storage.storageClassName }} - storageClassName: {{ $.Values.storage.storageClassName }} - {{- end }} - resources: - requests: - storage: {{ $.Values.storage.size }} ---- -{{- end }} diff --git a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml b/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml deleted file mode 100644 index d8d7ba0..0000000 --- a/hyperledger-fabric-network/orderer/helm-charts/fabric-orderer/values.yaml +++ /dev/null @@ -1,118 +0,0 @@ -# values.yaml - -nameOverride: "" -fullnameOverride: "" - -image: - repository: hyperledger/fabric-orderer - tag: 2.5.7 - pullPolicy: IfNotPresent - -initImage: - repository: busybox - tag: "1.36" - pullPolicy: IfNotPresent - -# Define each orderer (one StatefulSet per entry) -orderers: - - name: orderer0 - mspID: OrdererMSP - mspSecretName: orderer0-msp - tlsSecretName: orderer0-tls - - name: orderer1 - mspID: OrdererMSP - mspSecretName: orderer1-msp - tlsSecretName: orderer1-tls - - name: orderer2 - mspID: OrdererMSP - mspSecretName: orderer2-msp - tlsSecretName: orderer2-tls - - name: orderer3 - mspID: OrdererMSP - mspSecretName: orderer3-msp - tlsSecretName: orderer3-tls - - name: orderer4 - mspID: OrdererMSP - mspSecretName: orderer4-msp - tlsSecretName: orderer4-tls - -# Service/container ports -ports: - client: 7050 # client/peer requests (gRPC) - cluster: 7051 # RAFT cluster comms - operations: 9443 # Prometheus/health - -# Persistent storage for ledger/WAL/snapshots -storage: - size: 10Gi - storageClassName: "" # set your StorageClass here if no default - -resources: - requests: - cpu: "250m" - memory: "512Mi" - limits: - cpu: "1000m" - memory: "2Gi" - -# Optional scheduling controls -nodeSelector: {} -tolerations: [] -affinity: {} - -# Bootstrap mode toggle -# participation API (preferred): enabled here by setting genesis.enabled=false -# legacy genesis bootstrap: set enabled=true and create the secret below -genesis: - enabled: false - secretName: "genesis-block" - mountPath: "/var/hyperledger/genesis" - fileName: "genesis.block" - -# This renders to /etc/hyperledger/fabric/orderer.yaml in the pod -ordererConfig: - General: - ListenAddress: 0.0.0.0 - ListenPort: 7050 - TLS: - Enabled: true - Keepalive: - ServerMinInterval: 60s - Cluster: - ListenPort: 7051 - - # File-based ledger path (replace deprecated General.LedgerType) - FileLedger: - Location: /var/hyperledger/production/orderer - - # Enable the Channel Participation API (no system channel / no genesis) - ChannelParticipation: - Enabled: true - - # Health/metrics - Operations: - ListenAddress: 0.0.0.0:9443 - Metrics: - Provider: prometheus - - # Optional explicit etcdraft directories (safe defaults) - Consensus: - WALDir: /var/hyperledger/production/orderer/etcdraft/wal - SnapDir: /var/hyperledger/production/orderer/etcdraft/snapshot - -# Probes (Operations endpoint is HTTP) -probes: - readiness: - enabled: true - path: /healthz - initialDelaySeconds: 10 - periodSeconds: 10 - timeoutSeconds: 3 - failureThreshold: 6 - liveness: - enabled: true - path: /healthz - initialDelaySeconds: 20 - periodSeconds: 20 - timeoutSeconds: 5 - failureThreshold: 6 diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/README.md b/hyperledger-fabric-network/orderer/policies/kyverno/README.md deleted file mode 100644 index b61c295..0000000 --- a/hyperledger-fabric-network/orderer/policies/kyverno/README.md +++ /dev/null @@ -1,165 +0,0 @@ -# Kyverno Security Policies for Hyperledger Fabric Orderer - -This directory contains Kyverno admission controller policies to enforce security baselines and validation for Hyperledger Fabric orderer workloads. - -## Prerequisites - -- Kyverno installed in the cluster: `kubectl apply -f https://github.com/kyverno/kyverno/releases/latest/download/install.yaml` -- Orderer namespace: `orderer` - -## Policy Overview - -### 1. disallow-latest-tags.yaml -- **Purpose**: Prevents use of `:latest` image tags -- **Scope**: Pod, Deployment, StatefulSet in orderer namespace -- **Enforcement**: Block resources with latest tags - -### 2. enforce-security-context.yaml -- **Purpose**: Enforce security hardening for orderer containers -- **Rules**: - - Run as non-root user - - No privilege escalation - - RuntimeDefault seccomp profile - - Drop all Linux capabilities -- **Scope**: All containers in orderer namespace - -### 3. validate-orderer-secrets.yaml -- **Purpose**: Validate orderer secret structure -- **Rules**: - - MSP secret (fabric-orderer-msp) must have: cacerts, signcerts, keystore, config.yaml - - TLS secret (fabric-orderer-tls) must have: tls.crt, tls.key, ca.crt -- **Scope**: Specific orderer secrets - -### 4. validate-genesis-block.yaml -- **Purpose**: Validate Genesis block configuration -- **Rules**: - - ConfigMap fabric-genesis-block must contain genesis.block data - - StatefulSet fabric-orderer must mount Genesis block ConfigMap -- **Scope**: Genesis block ConfigMap and orderer StatefulSet - -### 5. restrict-network-access.yaml -- **Purpose**: Generate NetworkPolicy for network isolation -- **Rules**: - - Allow from peer namespaces (port 7050) - - Allow inter-orderer Raft communication (port 7050) - - Allow monitoring access to operations endpoint (port 9443) -- **Type**: Generative policy (creates NetworkPolicy resources) - -## Installation - -Apply all policies: -```bash -kubectl apply -f policies/kyverno/ -``` - -Or apply individually: -```bash -kubectl apply -f policies/kyverno/disallow-latest-tags.yaml -kubectl apply -f policies/kyverno/enforce-security-context.yaml -kubectl apply -f policies/kyverno/validate-orderer-secrets.yaml -kubectl apply -f policies/kyverno/validate-genesis-block.yaml -kubectl apply -f policies/kyverno/restrict-network-access.yaml -``` - -## Verification - -Check policy status: -```bash -kubectl get cpol -kubectl describe cpol orderer-disallow-latest-tags -``` - -Test policy violations (should fail): -```bash -# This should be blocked -kubectl -n orderer create deployment test --image=nginx:latest -``` - -View generated NetworkPolicies: -```bash -kubectl -n orderer get networkpolicy orderer-ingress-policy -``` - -## Policy Modes - -Policies can run in different modes: -- `enforce`: Block non-compliant resources (default) -- `audit`: Allow but log violations - -To switch to audit mode: -```yaml -spec: - validationFailureAction: audit -``` - -## Customization - -### Network Policy Adjustments -Modify `restrict-network-access.yaml`: -- Update peer namespace selectors and labels -- Add/remove allowed ports and sources -- Adjust monitoring namespace references - -### Secret Validation -Update `validate-orderer-secrets.yaml`: -- Modify secret names if using different naming convention -- Add additional validation rules for secret content - -### Genesis Block Validation -Adjust `validate-genesis-block.yaml`: -- Change ConfigMap name if using different naming -- Modify volume mount requirements - -## Monitoring - -View policy violations: -```bash -kubectl get events --field-selector reason=PolicyViolation -kubectl get events --field-selector reason=PolicyApplied -``` - -Use Kyverno policy reports: -```bash -kubectl get polr -A # Policy Reports -kubectl get cpolr # Cluster Policy Reports -``` - -## Troubleshooting - -**Policy not enforcing**: -- Verify Kyverno is running: `kubectl -n kyverno get pods` -- Check policy status: `kubectl get cpol -o yaml` - -**NetworkPolicy not generated**: -- Ensure orderer namespace exists -- Check generate policy conditions and labels - -**Secret validation failing**: -- Verify secret naming matches policy patterns -- Ensure secrets contain all required keys - -**Genesis block validation failing**: -- Confirm ConfigMap name matches policy expectation -- Verify Genesis block data is present - -## Network Policy Requirements - -For the generated NetworkPolicy to work properly, ensure peer namespaces are labeled: -```bash -kubectl label namespace greenstand peer-access=true -kubectl label namespace cbo peer-access=true -kubectl label namespace investor peer-access=true -kubectl label namespace verifier peer-access=true -``` - -For monitoring access (optional): -```bash -kubectl label namespace monitoring monitoring-access=true -``` - -## References - -- [Kyverno Documentation](https://kyverno.io/docs/) -- [Kubernetes NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/network-policies/) -- [Hyperledger Fabric Security](https://hyperledger-fabric.readthedocs.io/en/latest/security.html) -- [Raft Consensus Security](https://raft.github.io/) diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml deleted file mode 100644 index 44b7a32..0000000 --- a/hyperledger-fabric-network/orderer/policies/kyverno/disallow-latest-tags.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: orderer-disallow-latest-tags - annotations: - description: "Disallow the use of 'latest' tags for container images in orderer namespace" - policies.kyverno.io/category: Security - policies.kyverno.io/severity: high -spec: - validationFailureAction: enforce - background: true - rules: - - name: block-latest-tags - match: - any: - - resources: - kinds: - - Pod - - Deployment - - StatefulSet - namespaces: - - orderer - validate: - message: "Container images must not use the 'latest' tag. Use specific version tags for production deployments." - pattern: - spec: - =(template): - =(spec): - =(initContainers): - - image: "!*:latest" - =(containers): - - image: "!*:latest" diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml deleted file mode 100644 index b9b44b7..0000000 --- a/hyperledger-fabric-network/orderer/policies/kyverno/enforce-security-context.yaml +++ /dev/null @@ -1,77 +0,0 @@ -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: orderer-enforce-security-context - annotations: - description: "Enforce security context with non-root, no privilege escalation, and seccomp profile for orderer" - policies.kyverno.io/category: Security - policies.kyverno.io/severity: high -spec: - validationFailureAction: enforce - background: true - rules: - - name: require-non-root-user - match: - any: - - resources: - kinds: - - Pod - - Deployment - - StatefulSet - namespaces: - - orderer - validate: - message: "Orderer containers must run as non-root user" - pattern: - spec: - =(template): - =(spec): - securityContext: - runAsNonRoot: true - =(containers): - - name: "*" - securityContext: - allowPrivilegeEscalation: false - - name: require-seccomp-profile - match: - any: - - resources: - kinds: - - Pod - - Deployment - - StatefulSet - namespaces: - - orderer - validate: - message: "Orderer containers must use RuntimeDefault seccomp profile" - pattern: - spec: - =(template): - =(spec): - =(containers): - - name: "*" - securityContext: - seccompProfile: - type: RuntimeDefault - - name: drop-all-capabilities - match: - any: - - resources: - kinds: - - Pod - - Deployment - - StatefulSet - namespaces: - - orderer - validate: - message: "Orderer containers must drop all Linux capabilities" - pattern: - spec: - =(template): - =(spec): - =(containers): - - name: "*" - securityContext: - capabilities: - drop: - - ALL diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml deleted file mode 100644 index ae64480..0000000 --- a/hyperledger-fabric-network/orderer/policies/kyverno/restrict-network-access.yaml +++ /dev/null @@ -1,61 +0,0 @@ -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: orderer-generate-network-policy - annotations: - description: "Generate NetworkPolicy to restrict ingress traffic for orderer workloads" - policies.kyverno.io/category: Networking - policies.kyverno.io/severity: medium -spec: - generateExisting: false - rules: - - name: generate-orderer-network-policy - match: - any: - - resources: - kinds: - - Namespace - names: - - orderer - generate: - synchronize: true - apiVersion: networking.k8s.io/v1 - kind: NetworkPolicy - name: orderer-ingress-policy - namespace: "{{ request.object.metadata.name }}" - data: - metadata: - labels: - generated-by: kyverno - app.kubernetes.io/part-of: hyperledger-fabric - spec: - podSelector: - matchLabels: - app.kubernetes.io/name: fabric-orderer - policyTypes: - - Ingress - ingress: - # Allow from peer namespaces - - from: - - namespaceSelector: - matchLabels: - peer-access: "true" - ports: - - protocol: TCP - port: 7050 - # Allow inter-orderer Raft communication - - from: - - podSelector: - matchLabels: - app.kubernetes.io/name: fabric-orderer - ports: - - protocol: TCP - port: 7050 - # Allow operations endpoint (optional) - - from: - - namespaceSelector: - matchLabels: - monitoring-access: "true" - ports: - - protocol: TCP - port: 9443 diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml deleted file mode 100644 index d56b325..0000000 --- a/hyperledger-fabric-network/orderer/policies/kyverno/validate-genesis-block.yaml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: orderer-validate-genesis-block - annotations: - description: "Validate that Genesis block ConfigMap contains required data" - policies.kyverno.io/category: Configuration - policies.kyverno.io/severity: high -spec: - validationFailureAction: enforce - background: true - rules: - - name: validate-genesis-block-configmap - match: - any: - - resources: - kinds: - - ConfigMap - namespaces: - - orderer - names: - - "fabric-genesis-block" - validate: - message: "Genesis block ConfigMap must contain genesis.block data" - pattern: - data: - genesis.block: "?*" - - name: require-genesis-block-mount - match: - any: - - resources: - kinds: - - StatefulSet - namespaces: - - orderer - names: - - "fabric-orderer" - validate: - message: "Orderer StatefulSet must mount Genesis block ConfigMap" - pattern: - spec: - template: - spec: - volumes: - - name: "genesis-block" - configMap: - name: "fabric-genesis-block" diff --git a/hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml b/hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml deleted file mode 100644 index c788e7b..0000000 --- a/hyperledger-fabric-network/orderer/policies/kyverno/validate-orderer-secrets.yaml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: orderer-validate-secrets - annotations: - description: "Validate that orderer MSP and TLS secrets contain required keys" - policies.kyverno.io/category: Security - policies.kyverno.io/severity: high -spec: - validationFailureAction: enforce - background: true - rules: - - name: validate-orderer-msp-secret - match: - any: - - resources: - kinds: - - Secret - namespaces: - - orderer - names: - - "fabric-orderer-msp" - validate: - message: "Orderer MSP secret must contain cacerts, signcerts, keystore, and config.yaml keys" - pattern: - data: - cacerts: "?*" - signcerts: "?*" - keystore: "?*" - config.yaml: "?*" - - name: validate-orderer-tls-secret - match: - any: - - resources: - kinds: - - Secret - namespaces: - - orderer - names: - - "fabric-orderer-tls" - validate: - message: "Orderer TLS secret must contain tls.crt, tls.key, and ca.crt keys" - pattern: - data: - tls.crt: "?*" - tls.key: "?*" - ca.crt: "?*" diff --git a/hyperledger-fabric-network/orderer/scripts/check.sh b/hyperledger-fabric-network/orderer/scripts/check.sh deleted file mode 100644 index efdafef..0000000 --- a/hyperledger-fabric-network/orderer/scripts/check.sh +++ /dev/null @@ -1,522 +0,0 @@ -#!/bin/bash -# Orderer Infrastructure Check Script -# Usage: ./scripts/check.sh [summary|deep|secrets-only|consensus-only] - -set -e - -# Default configuration -NAMESPACE="orderer" -CHART_LABEL="app.kubernetes.io/part-of=hyperledger-fabric" -ORDERER_LABEL="app.kubernetes.io/name=fabric-orderer" - -# Color output functions -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -log_info() { - echo -e "${BLUE}[INFO]${NC} $1" -} - -log_success() { - echo -e "${GREEN}[OK]${NC} $1" -} - -log_warning() { - echo -e "${YELLOW}[WARN]${NC} $1" -} - -log_error() { - echo -e "${RED}[ERROR]${NC} $1" -} - -# Usage function -usage() { - cat << EOF -Orderer Infrastructure Check Script - -Usage: $0 [MODE] - -MODE: - summary Basic check of pods, services, PVCs, consensus leader (default) - deep Full check including certificates, secrets, consensus health, Genesis block - secrets-only Check only MSP/TLS secrets structure and cert/key matching - consensus-only Check only Raft consensus health and leadership - -Examples: - $0 # Run summary check - $0 deep # Run comprehensive check - $0 secrets-only # Check only certificates and secrets - $0 consensus-only # Check only consensus health - -EOF -} - -# Check if kubectl is available -check_prerequisites() { - if ! command -v kubectl &> /dev/null; then - log_error "kubectl not found. Please install kubectl." - exit 1 - fi - - if ! command -v openssl &> /dev/null; then - log_warning "openssl not found. Certificate validation will be skipped." - OPENSSL_AVAILABLE=false - else - OPENSSL_AVAILABLE=true - fi - - if ! kubectl get namespace "$NAMESPACE" &>/dev/null; then - log_error "Namespace $NAMESPACE does not exist" - exit 1 - fi -} - -# Check orderer pods status -check_pods() { - log_info "Checking orderer pods in namespace $NAMESPACE..." - - local pods - pods=$(kubectl -n "$NAMESPACE" get pods --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") - - if [[ -z "$pods" ]]; then - log_error "No orderer pods found in namespace $NAMESPACE" - return 1 - fi - - local total_pods=0 - local running_pods=0 - local error_pods=0 - - for pod in $pods; do - ((total_pods++)) - local phase - phase=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") - - local ready - ready=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.containerStatuses[0].ready}' 2>/dev/null || echo "false") - - if [[ "$phase" == "Running" && "$ready" == "true" ]]; then - ((running_pods++)) - log_success "Pod $pod is Running and Ready" - else - ((error_pods++)) - log_error "Pod $pod is $phase (ready: $ready)" - - # Show recent events for failed pods - log_info "Recent events for $pod:" - kubectl -n "$NAMESPACE" get events --field-selector involvedObject.name="$pod" --sort-by='.lastTimestamp' | tail -3 || true - fi - done - - log_info "Pod Summary: $running_pods/$total_pods running, $error_pods errors" - - if [[ $error_pods -gt 0 ]]; then - return 1 - fi -} - -# Check services and storage -check_services_and_storage() { - log_info "Checking orderer services and storage..." - - # Check services - local services - services=$(kubectl -n "$NAMESPACE" get svc --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") - - if [[ -n "$services" ]]; then - for svc in $services; do - local endpoints - endpoints=$(kubectl -n "$NAMESPACE" get endpoints "$svc" -o jsonpath='{.subsets[0].addresses[*].ip}' 2>/dev/null || echo "") - - if [[ -n "$endpoints" ]]; then - log_success "Service $svc has endpoints: $endpoints" - else - log_warning "Service $svc has no endpoints" - fi - done - else - log_warning "No orderer services found" - fi - - # Check PVCs - local pvcs - pvcs=$(kubectl -n "$NAMESPACE" get pvc -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") - - if [[ -n "$pvcs" ]]; then - for pvc in $pvcs; do - local status - status=$(kubectl -n "$NAMESPACE" get pvc "$pvc" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") - - if [[ "$status" == "Bound" ]]; then - log_success "PVC $pvc is Bound" - else - log_error "PVC $pvc is $status" - fi - done - else - log_warning "No PVCs found for orderer" - fi -} - -# Check Raft consensus health -check_consensus() { - log_info "Checking Raft consensus health..." - - local pods - pods=$(kubectl -n "$NAMESPACE" get pods --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") - - if [[ -z "$pods" ]]; then - log_error "No orderer pods found for consensus check" - return 1 - fi - - local leader_found=false - local cluster_size=0 - - for pod in $pods; do - ((cluster_size++)) - - # Check if pod is ready - local ready - ready=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.containerStatuses[0].ready}' 2>/dev/null || echo "false") - - if [[ "$ready" != "true" ]]; then - log_warning "Pod $pod is not ready, skipping consensus check" - continue - fi - - # Check for leadership in logs - local recent_logs - recent_logs=$(kubectl -n "$NAMESPACE" logs "$pod" --tail=100 2>/dev/null | grep -i "raft" | tail -10 || echo "") - - if echo "$recent_logs" | grep -q "became leader\|is leader"; then - log_success "Pod $pod is Raft leader" - leader_found=true - elif echo "$recent_logs" | grep -q "lost leadership"; then - log_warning "Pod $pod recently lost leadership" - fi - - # Check for recent Raft activity - if echo "$recent_logs" | grep -q -E "heartbeat|election|replication"; then - log_success "Pod $pod shows recent Raft activity" - else - log_warning "Pod $pod shows no recent Raft activity" - fi - done - - # Consensus health summary - log_info "Consensus Summary: $cluster_size orderers, leader found: $leader_found" - - if [[ "$leader_found" == "false" ]]; then - log_error "No Raft leader found - consensus may be unhealthy" - return 1 - fi - - # Check quorum requirements - local min_nodes=3 - if [[ $cluster_size -lt $min_nodes ]]; then - log_warning "Cluster size ($cluster_size) is below recommended minimum ($min_nodes)" - fi - - if [[ $((cluster_size % 2)) -eq 0 ]]; then - log_warning "Even number of orderers ($cluster_size) - odd numbers recommended for Raft" - fi -} - -# Check Genesis block -check_genesis_block() { - log_info "Checking Genesis block..." - - # Check ConfigMap - local genesis_cm="fabric-genesis-block" - if kubectl -n "$NAMESPACE" get configmap "$genesis_cm" &>/dev/null; then - log_success "Genesis block ConfigMap $genesis_cm exists" - - # Check if genesis.block key exists - if kubectl -n "$NAMESPACE" get configmap "$genesis_cm" -o jsonpath='{.data.genesis\.block}' &>/dev/null; then - log_success "Genesis block data found in ConfigMap" - else - log_error "Genesis block data missing from ConfigMap" - return 1 - fi - else - log_error "Genesis block ConfigMap $genesis_cm not found" - return 1 - fi - - # Check if Genesis block is accessible in pods - local pods - pods=$(kubectl -n "$NAMESPACE" get pods --selector="$ORDERER_LABEL" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") - - for pod in $pods; do - local ready - ready=$(kubectl -n "$NAMESPACE" get pod "$pod" -o jsonpath='{.status.containerStatuses[0].ready}' 2>/dev/null || echo "false") - - if [[ "$ready" == "true" ]]; then - if kubectl -n "$NAMESPACE" exec "$pod" -- test -f /var/hyperledger/orderer/genesis.block 2>/dev/null; then - log_success "Genesis block accessible in pod $pod" - else - log_error "Genesis block not accessible in pod $pod" - return 1 - fi - break # Only need to check one running pod - fi - done -} - -# Check MSP and TLS secrets -check_secrets() { - log_info "Checking orderer MSP and TLS secrets..." - - # Find orderer secrets - local msp_secret="fabric-orderer-msp" - local tls_secret="fabric-orderer-tls" - - # Check MSP secret - if kubectl -n "$NAMESPACE" get secret "$msp_secret" &>/dev/null; then - check_msp_secret "$msp_secret" - else - log_error "MSP secret $msp_secret not found" - return 1 - fi - - # Check TLS secret - if kubectl -n "$NAMESPACE" get secret "$tls_secret" &>/dev/null; then - check_tls_secret "$tls_secret" - else - log_error "TLS secret $tls_secret not found" - return 1 - fi -} - -# Check MSP secret structure -check_msp_secret() { - local secret="$1" - - log_info "Validating MSP secret $secret" - - local required_keys=("cacerts" "signcerts" "keystore" "config.yaml") - local missing_keys=() - - for key in "${required_keys[@]}"; do - if ! kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath="{.data.$key}" &>/dev/null; then - missing_keys+=("$key") - fi - done - - if [[ ${#missing_keys[@]} -eq 0 ]]; then - log_success "MSP secret $secret has all required keys" - - # Check if config.yaml contains NodeOUs - local config_yaml - config_yaml=$(kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath='{.data.config\.yaml}' | base64 -d 2>/dev/null || echo "") - - if [[ -n "$config_yaml" ]]; then - if echo "$config_yaml" | grep -q "NodeOUs"; then - log_success "MSP config.yaml contains NodeOUs configuration" - else - log_warning "MSP config.yaml does not contain NodeOUs configuration" - fi - - if echo "$config_yaml" | grep -q "OrdererOUIdentifier"; then - log_success "MSP config.yaml contains OrdererOUIdentifier" - else - log_warning "MSP config.yaml missing OrdererOUIdentifier" - fi - fi - else - log_error "MSP secret $secret missing keys: ${missing_keys[*]}" - return 1 - fi -} - -# Check TLS secret structure -check_tls_secret() { - local secret="$1" - - log_info "Validating TLS secret $secret" - - local required_keys=("tls.crt" "tls.key" "ca.crt") - local missing_keys=() - - for key in "${required_keys[@]}"; do - if ! kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath="{.data.$key}" &>/dev/null; then - missing_keys+=("$key") - fi - done - - if [[ ${#missing_keys[@]} -eq 0 ]]; then - log_success "TLS secret $secret has all required keys" - - # Validate certificate/key matching if openssl is available - if [[ "$OPENSSL_AVAILABLE" == "true" ]]; then - check_tls_cert_key_match "$secret" - fi - else - log_error "TLS secret $secret missing keys: ${missing_keys[*]}" - return 1 - fi -} - -# Check if TLS certificate and key match -check_tls_cert_key_match() { - local secret="$1" - - log_info "Checking TLS cert/key pair for $secret" - - # Extract cert and key to temp files - local cert_file="/tmp/${secret}-cert.pem" - local key_file="/tmp/${secret}-key.pem" - - kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath='{.data.tls\.crt}' | base64 -d > "$cert_file" 2>/dev/null || { - log_error "Failed to extract certificate from $secret" - return 1 - } - - kubectl -n "$NAMESPACE" get secret "$secret" -o jsonpath='{.data.tls\.key}' | base64 -d > "$key_file" 2>/dev/null || { - log_error "Failed to extract private key from $secret" - rm -f "$cert_file" - return 1 - } - - # Compare modulus - local cert_modulus key_modulus - cert_modulus=$(openssl x509 -noout -modulus -in "$cert_file" 2>/dev/null | openssl md5 2>/dev/null || echo "") - key_modulus=$(openssl rsa -noout -modulus -in "$key_file" 2>/dev/null | openssl md5 2>/dev/null || echo "") - - # Check certificate SANs for orderer service names - local sans - sans=$(openssl x509 -noout -text -in "$cert_file" 2>/dev/null | grep -A1 "Subject Alternative Name" | grep -o "DNS:[^,]*" | head -5 || echo "") - - # Clean up temp files - rm -f "$cert_file" "$key_file" - - if [[ -n "$cert_modulus" && -n "$key_modulus" && "$cert_modulus" == "$key_modulus" ]]; then - log_success "TLS cert/key pair matches for $secret" - else - log_error "TLS cert/key pair MISMATCH for $secret" - log_error " Certificate modulus: $cert_modulus" - log_error " Private key modulus: $key_modulus" - return 1 - fi - - if [[ -n "$sans" ]]; then - log_success "Certificate SANs found: $(echo "$sans" | tr '\n' ' ')" - - # Check if orderer service names are in SANs - if echo "$sans" | grep -q "fabric-orderer"; then - log_success "Orderer service name found in certificate SANs" - else - log_warning "Orderer service name may be missing from certificate SANs" - fi - else - log_warning "No Subject Alternative Names found in certificate" - fi -} - -# Check certificate expiration -check_cert_expiration() { - log_info "Checking certificate expiration..." - - local tls_secret="fabric-orderer-tls" - - if [[ "$OPENSSL_AVAILABLE" == "true" ]] && kubectl -n "$NAMESPACE" get secret "$tls_secret" &>/dev/null; then - local cert_file="/tmp/${tls_secret}-cert.pem" - kubectl -n "$NAMESPACE" get secret "$tls_secret" -o jsonpath='{.data.tls\.crt}' | base64 -d > "$cert_file" 2>/dev/null || return 1 - - local expiry_date - expiry_date=$(openssl x509 -enddate -noout -in "$cert_file" 2>/dev/null | cut -d= -f2 || echo "") - - if [[ -n "$expiry_date" ]]; then - local expiry_epoch current_epoch days_remaining - expiry_epoch=$(date -d "$expiry_date" +%s 2>/dev/null || echo "0") - current_epoch=$(date +%s) - days_remaining=$(( (expiry_epoch - current_epoch) / 86400 )) - - if [[ $days_remaining -lt 30 ]]; then - log_error "Certificate expires in $days_remaining days ($expiry_date)" - elif [[ $days_remaining -lt 90 ]]; then - log_warning "Certificate expires in $days_remaining days ($expiry_date)" - else - log_success "Certificate expires in $days_remaining days" - fi - fi - - rm -f "$cert_file" - fi -} - -# Check orderer connectivity from peers -check_peer_connectivity() { - log_info "Checking peer connectivity to orderer..." - - local orderer_service="fabric-orderer" - local orderer_port="7050" - - # Check if orderer service is accessible - if kubectl -n "$NAMESPACE" get svc "$orderer_service" &>/dev/null; then - local cluster_ip - cluster_ip=$(kubectl -n "$NAMESPACE" get svc "$orderer_service" -o jsonpath='{.spec.clusterIP}') - - if [[ -n "$cluster_ip" && "$cluster_ip" != "None" ]]; then - log_success "Orderer service $orderer_service has ClusterIP: $cluster_ip" - else - log_warning "Orderer service $orderer_service has no ClusterIP" - fi - else - log_error "Orderer service $orderer_service not found" - return 1 - fi -} - -# Main function -main() { - local mode="${1:-summary}" - - case "$mode" in - "help"|"-h"|"--help") - usage - exit 0 - ;; - "summary") - log_info "Running summary check..." - check_prerequisites - check_pods && check_services_and_storage && check_consensus - ;; - "deep") - log_info "Running comprehensive check..." - check_prerequisites - check_pods - check_services_and_storage - check_consensus - check_genesis_block - check_secrets - check_cert_expiration - check_peer_connectivity - ;; - "secrets-only") - log_info "Running secrets-only check..." - check_prerequisites - check_secrets - check_cert_expiration - ;; - "consensus-only") - log_info "Running consensus-only check..." - check_prerequisites - check_consensus - ;; - *) - log_error "Unknown mode: $mode" - usage - exit 1 - ;; - esac - - log_info "Check completed." -} - -# Execute main function with all arguments -main "$@" diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk deleted file mode 100644 index de877f7..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgw6pj2axSt0thGvNU -eH+TiAEkFKtZeJvsEIhWnoFPwtehRANCAAQIOlnMhy1RHJoriFI0CE0c57xJQlFP -KWlB0yvVIw2rlJVy8vXEXOwViEXLQ7Z3IzAEOy57PbJ6oQq0itq6IBWV ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem deleted file mode 100644 index fb96dc7..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/msp/signcerts/cert.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICqTCCAlCgAwIBAgIUXx9q+ofmNmNG/sJEmG58h3RXflYwCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NDYwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjAwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQIOlnMhy1RHJoriFI0CE0c57xJQlFPKWlB -0yvVIw2rlJVy8vXEXOwViEXLQ7Z3IzAEOy57PbJ6oQq0itq6IBWVo4HeMIHbMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRHZQnABKE7yroV -AdXe2j+SpBNvCDAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV -HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi -OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy -MCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0cAMEQCIAwoPBru -ON6nE/Ja7XRTItEDkp2PI0doE0/B7uxOpWa5AiBt559L4KLKcK0kucnvpLVNGx3g -FIRxZqFR4GbBr9fCfQ== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/ca.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt deleted file mode 100644 index fb04251..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.crt +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUMy6blJ3d9/PtiAzOEAOPEXAnaz0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1MzgwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjAwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD48Vpj -UIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXETo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSt/VF0GIV1JWbgJFv3K76mNSsmrzAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -MIImb3JkZXJlcjAuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDHrnAlQ42zJNIKxjstlX0KK8ZZAfopopHtIboTBu5dAgIgdMaX -N7yfsE2e7b8kSg3iSJkvDBnvxOviu7O3Ga5/7S0= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key deleted file mode 100644 index 6d2dd77..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls-ready/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgstJcM73LOWaU62ls -8R9RMQG4sN+SN7rbSrCPPOuLdAGhRANCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD4 -8VpjUIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXET ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk deleted file mode 100644 index 6d2dd77..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgstJcM73LOWaU62ls -8R9RMQG4sN+SN7rbSrCPPOuLdAGhRANCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD4 -8VpjUIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXET ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem deleted file mode 100644 index fb04251..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/signcerts/cert.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUMy6blJ3d9/PtiAzOEAOPEXAnaz0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1MzgwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjAwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAATTrAGtfgu6fBQET/qOCZzQRpc3gxD48Vpj -UIt6ydSZ1SVWbqSbB/274lDhEulZ117DGIN4AD2ZED8oJpnUEXETo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSt/VF0GIV1JWbgJFv3K76mNSsmrzAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -MIImb3JkZXJlcjAuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDHrnAlQ42zJNIKxjstlX0KK8ZZAfopopHtIboTBu5dAgIgdMaX -N7yfsE2e7b8kSg3iSJkvDBnvxOviu7O3Ga5/7S0= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer0/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk deleted file mode 100644 index 001da49..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/8f54d5a9dd189695eaaf7f0a1f224cc7ac63010a1d14efc608a477ce1c12bfdb_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGMsWJK38sYUV4Ftc -sDuI9ugRt1JUqxueORmqr51cOUihRANCAAQz6yySwKYBKnRaAVSCov0iTJCIJYdE -ZrI6nXWFlWLSoOiHT42OmzZugwgXwXTMYziq48cIHQdqRFNjwOp5qJUC ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk deleted file mode 100644 index 042ab06..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgcbXh7Sco2OLdSJiI -ljK4MjieiX0kZ5eELz70pUFuj7ihRANCAAQ+7aww7FQq0TyJCrJQbIkCH+AT152l -FAuN9ETeBt0oEdC80CoAaPwLYA9lqNgeQcrYbQI+ENekvIjHhLzVb2od ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem deleted file mode 100644 index 366be34..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/msp/signcerts/cert.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICqTCCAlCgAwIBAgIUb74xlIoQq3N/wY0IYyWQe0T8nJcwCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTAwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjEwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+7aww7FQq0TyJCrJQbIkCH+AT152lFAuN -9ETeBt0oEdC80CoAaPwLYA9lqNgeQcrYbQI+ENekvIjHhLzVb2odo4HeMIHbMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ8fVM1i7MRFFqm -Fzvm64p4heITtzAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV -HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi -OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy -MSIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0cAMEQCIB5cIMwU -5aUoLR9baWQ/Aw+rqAgDyfk07KRpyVKOVVAkAiBFnOwiXFM+qUniAxhca0UWK+5I -HzYcLg6HY+o3fxeX3Q== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/ca.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt deleted file mode 100644 index b6b0cc5..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.crt +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6DCCAo+gAwIBAgIUC+PraVCv0lx//wi18+PTWdePX58wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDAwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjEwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT/KXi -RHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofyo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRRKt+Ru2lqq878c2Pjw7fGKnOXMzAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -MYImb3JkZXJlcjEuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMSIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0cAMEQCIHSnB+P1TZZNjC+/celUrK/atyo+EUqCqIOHjCPK78XtAiB5R7Ud -9uZbLwqiDlwcW72foHR5EcaXI5nJBAYXWsMkkw== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key deleted file mode 100644 index 671218a..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls-ready/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkWUzFyulAVBVAcon -GUcnpKZmfuB1FVhdtzXOzC6BPdehRANCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT -/KXiRHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofy ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk deleted file mode 100644 index 671218a..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkWUzFyulAVBVAcon -GUcnpKZmfuB1FVhdtzXOzC6BPdehRANCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT -/KXiRHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofy ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem deleted file mode 100644 index b6b0cc5..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/signcerts/cert.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6DCCAo+gAwIBAgIUC+PraVCv0lx//wi18+PTWdePX58wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDAwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjEwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAARvJvDeCeBSeg69YQCrvFMJupsAdrcT/KXi -RHvl4BpEa9eWjLmZbd8MI0HJGVBR8G9OgDnnymodRSPXDluQEofyo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRRKt+Ru2lqq878c2Pjw7fGKnOXMzAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -MYImb3JkZXJlcjEuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMSIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0cAMEQCIHSnB+P1TZZNjC+/celUrK/atyo+EUqCqIOHjCPK78XtAiB5R7Ud -9uZbLwqiDlwcW72foHR5EcaXI5nJBAYXWsMkkw== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer1/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk deleted file mode 100644 index c6c90c1..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/keystore/1412c9b8d4ae74a84333732f4ec07f59a413fa3b3f83d493f4fc0b0c527356e0_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPUCaT9xhsvJru0qi -2B/ylt0L5LJRyBK5K49r3drZS2GhRANCAAQaZaJnwq1bEX+3UdoxwpQKBZ8bsaxk -MDBpSII0vTfpTN4TwJzZkqIBGv9kZK7giplGgVuivP5lyGHY6kjpLP/k ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem deleted file mode 100644 index 87c0af7..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/msp/signcerts/cert.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICqjCCAlCgAwIBAgIUbNNKS91DqluEuvgGcKivQdX9JSMwCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTIwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjIwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQaZaJnwq1bEX+3UdoxwpQKBZ8bsaxkMDBp -SII0vTfpTN4TwJzZkqIBGv9kZK7giplGgVuivP5lyGHY6kjpLP/ko4HeMIHbMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQUBKGIvFuzHTKV -0Kov68c8+vRlQTAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV -HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi -OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy -MiIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0gAMEUCIQDcsHMu -4zlt23yYsJJ1eYDRs4ZL0Uish+zHyaLAX+WjCQIgBHOcyhOU+BlUMn8vrjW182pe -5hbzhOCBA1jNJXMYLSc= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/ca.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt deleted file mode 100644 index 40761cd..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.crt +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUDpgN6b6t5QaPA0UufmwgI0kj59UwCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDEwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjIwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYjboXe -f+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QEo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRod9Pi6aDAXUgxSapYyAVttXa3lDAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -MoImb3JkZXJlcjIuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMiIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDgiqNY0/kVcpQ7FZADWzwyTJ0XiSvuiM5tpga5G3Tm0AIgaQJe -0bvzNaycuzFdIAT28M8BoEYaVSAOHTby5RC/gSk= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key deleted file mode 100644 index 8a579f2..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls-ready/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgoazD9G7wsZosomoX -WkjYBRINnoeAGS1fPNC+u5E7FzahRANCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYj -boXef+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QE ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk deleted file mode 100644 index 8a579f2..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgoazD9G7wsZosomoX -WkjYBRINnoeAGS1fPNC+u5E7FzahRANCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYj -boXef+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QE ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem deleted file mode 100644 index 40761cd..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/signcerts/cert.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUDpgN6b6t5QaPA0UufmwgI0kj59UwCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDEwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjIwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS6lYOt7MYPmbOBjeTU7GIdE3Eo6kYjboXe -f+/1nYvLkRwOY+w+lXeFPDjIdRRIr8HYN+By4QBkX0RVskW7R7QEo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRod9Pi6aDAXUgxSapYyAVttXa3lDAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -MoImb3JkZXJlcjIuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMiIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDgiqNY0/kVcpQ7FZADWzwyTJ0XiSvuiM5tpga5G3Tm0AIgaQJe -0bvzNaycuzFdIAT28M8BoEYaVSAOHTby5RC/gSk= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer2/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk deleted file mode 100644 index efdfb55..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/keystore/3c99241e6c5936e4231be3af2276e4d2584a939cb8d103a0513dc1a385706cb4_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgs7uTpD8r0DrRGYyz -TAhi+7JEC2DW+yvIAWehWDleRcehRANCAAS05P4T3A/CY2DDcrfqxzQHEH+xZTRu -/jhKBPr+fzqdoyA4rLvowyhsFLTCfOql2HFLhw3Uq9lF4MujxS8JwDmJ ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem deleted file mode 100644 index 0ae1437..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/msp/signcerts/cert.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICqTCCAlCgAwIBAgIUS6gk3/3yhrCJlebeym5Z1eB5E1AwCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTMwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjMwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS05P4T3A/CY2DDcrfqxzQHEH+xZTRu/jhK -BPr+fzqdoyA4rLvowyhsFLTCfOql2HFLhw3Uq9lF4MujxS8JwDmJo4HeMIHbMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQvbbmAquuEdUGm -5ap9WFoBdqCBKzAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV -HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi -OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy -MyIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0cAMEQCIHsLC42G -VZMCjULZrChV9W2N65vn7J+ksPNp6tuosNV0AiBPp9DrgaZqvmbYYR5zfVt7Xi4b -RzApcp5y3LwLTgsWYg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/ca.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt deleted file mode 100644 index fa49172..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.crt +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUJJhGOAkfszNSu5iKtuOtb0y0QNowCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDIwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjMwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQYelw+WcCaagVCoLw8TCFs41FUprwLUll2 -RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLLo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRCM68JP5ZcSf8GrZ9fgiO/xivHbzAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -M4Imb3JkZXJlcjMuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMyIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDqS4y3ANPkhx+0s1+SV/DMXBckNFQzYmRE7SDchKjoAAIgHdR2 -NeqEr5nGd4oa+ZMgXJLCTuzxE0hz0lf0ceSeqnI= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key deleted file mode 100644 index a6ead02..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls-ready/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgO4qdW5lENyxYC0n4 -lk0zBajHUQzP3djpIvXI4MDeV7KhRANCAAQYelw+WcCaagVCoLw8TCFs41FUprwL -Ull2RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLL ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk deleted file mode 100644 index a6ead02..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgO4qdW5lENyxYC0n4 -lk0zBajHUQzP3djpIvXI4MDeV7KhRANCAAQYelw+WcCaagVCoLw8TCFs41FUprwL -Ull2RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLL ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem deleted file mode 100644 index fa49172..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/signcerts/cert.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUJJhGOAkfszNSu5iKtuOtb0y0QNowCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDIwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjMwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQYelw+WcCaagVCoLw8TCFs41FUprwLUll2 -RMAQyh3zRAZflY8BICB8C5OdczPH7W1j3AG95O6ZXDgs8u70jlLLo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRCM68JP5ZcSf8GrZ9fgiO/xivHbzAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -M4Imb3JkZXJlcjMuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyMyIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDqS4y3ANPkhx+0s1+SV/DMXBckNFQzYmRE7SDchKjoAAIgHdR2 -NeqEr5nGd4oa+ZMgXJLCTuzxE0hz0lf0ceSeqnI= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer3/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk deleted file mode 100644 index 4a0fe4b..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/keystore/ea93244aa01d7485fb37985afaff622af9ff221eb6acd2df915eb0b0531efb90_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFV+OC2GzNrvuOJZd -+3Er2lU4pcC4JpXAOdco/Gw/QrahRANCAAQ0OmVzRBEqlS2n/kOEDF1Dg7JL/ZBT -vpDf3QyQvwKp4/gY1WGAoB6RI9r74gkkMLWcFSfHy/qjTGYmdjRBx6Q1 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem deleted file mode 100644 index a5a237c..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/msp/signcerts/cert.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICqjCCAlCgAwIBAgIUXiwAHLHB8+XJNku2Zl57Gk6J+BcwCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA0NTQwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjQwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ0OmVzRBEqlS2n/kOEDF1Dg7JL/ZBTvpDf -3QyQvwKp4/gY1WGAoB6RI9r74gkkMLWcFSfHy/qjTGYmdjRBx6Q1o4HeMIHbMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTB1F3zBKEp64Sx -IyoK0JWKYsZUPDAfBgNVHSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDAdBgNV -HREEFjAUghJmYWJyaWMtY2EtY2xpZW50LTAwXAYIKgMEBQYHCAEEUHsiYXR0cnMi -OnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxtZW50SUQiOiJvcmRlcmVy -NCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49BAMCA0gAMEUCIQDdLrYF -412Gko0yKf8/aMDUlMEXzF2Rt2ApEXJDBEN9gwIgRTzqytNP7zIzj9DtrhwlPI/K -1Olnonip+SwhEP9Kn8M= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/ca.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt deleted file mode 100644 index f87da71..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.crt +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUUzu+iqhUyIKr3e8vpO9JZWil5f4wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDMwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjQwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z1Zkr -NhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toDo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSg49w0BnAQjDya+cGe2AW/osUO5TAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -NIImb3JkZXJlcjQuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyNCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDayMSVd9TaHzFdhi7V+BxXXJyyKmdIt4d+jB/Fso7HRgIgMFT6 -w9RcOI5+yzVNVmLu6GpVaklxyHUoQkcFTa/52nY= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key deleted file mode 100644 index 677eab9..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls-ready/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtcWmTWAChJSXLEFW -KL6zdqJlz2mH7BZd1+qypgM0YqShRANCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z -1ZkrNhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toD ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk deleted file mode 100644 index 677eab9..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtcWmTWAChJSXLEFW -KL6zdqJlz2mH7BZd1+qypgM0YqShRANCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z -1ZkrNhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toD ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem deleted file mode 100644 index f87da71..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/signcerts/cert.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAo+gAwIBAgIUUzu+iqhUyIKr3e8vpO9JZWil5f4wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTI2MDgwODA1NDMwMFowYTELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEQMA4GA1UECxMHb3JkZXJlcjERMA8GA1UEAxMIb3JkZXJlcjQwWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAARD+gZwjSlr9f0MOIhyWO3XqOSan35Z1Zkr -NhxhgrsDuGtiTjwwDQ77gSG5Kzqk9HxcswzJhNHqzd5C8XrO6toDo4IBHDCCARgw -DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSg49w0BnAQjDya+cGe2AW/osUO5TAfBgNV -HSMEGDAWgBRvRXSdf3a2fpeGvzDXnk3BZA+PjDA7BgNVHREENDAygghvcmRlcmVy -NIImb3JkZXJlcjQuaGxmLW9yZGVyZXIuc3ZjLmNsdXN0ZXIubG9jYWwwXAYIKgME -BQYHCAEEUHsiYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiIiLCJoZi5FbnJvbGxt -ZW50SUQiOiJvcmRlcmVyNCIsImhmLlR5cGUiOiJvcmRlcmVyIn19MAoGCCqGSM49 -BAMCA0gAMEUCIQDayMSVd9TaHzFdhi7V+BxXXJyyKmdIt4d+jB/Fso7HRgIgMFT6 -w9RcOI5+yzVNVmLu6GpVaklxyHUoQkcFTa/52nY= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 2ad9e9e..0000000 --- a/hyperledger-fabric-network/orderer/secrets/_secrets/orderers/orderer4/tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICFzCCAb2gAwIBAgIUTDNMkLm78o7MZLs/DbiufuNlfk0wCgYIKoZIzj0EAwIw -aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK -EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt -Y2Etc2VydmVyMB4XDTI1MDgwODAwNTMwMFoXDTQwMDgwNDAwNTMwMFowaDELMAkG -A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl -cmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMtY2Etc2Vy -dmVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzFO8lB5DHc5Yn40wrpq/VNHS -BaGk7UYiX7UsThzs58N/uAnpByw7j+RDXep96c9cNZow4jBItU1IXb1/uH14rKNF -MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE -FG9FdJ1/drZ+l4a/MNeeTcFkD4+MMAoGCCqGSM49BAMCA0gAMEUCIQCF49iAjt+J -m2OHI6nbYiCtr2vmU8OEsMSqWrUXqzuKYQIgOJK7lfevgyPvhX1JbUKQqm+ptFZy -l0daA1sXwZYFNVg= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh b/hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh deleted file mode 100644 index 0d904d7..0000000 --- a/hyperledger-fabric-network/orderer/secrets/add-orderer-msp-config.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -# add-orderer-msp-config.sh -set -euo pipefail - -TARGET_NS="hlf-orderer" -LOCAL_BASE="./_secrets/orderers" - -# NodeOUs config (OU-only; no CA file pinning needed since Fabric-CA sets OUs) -read -r -d '' CONFIG_YAML <<'YAML' -NodeOUs: - Enable: true - ClientOUIdentifier: - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - OrganizationalUnitIdentifier: orderer -YAML - -for i in 0 1 2 3 4; do - ORDERER="orderer${i}" - MSP_DIR="${LOCAL_BASE}/${ORDERER}/msp" - - if [[ ! -d "${MSP_DIR}/signcerts" || ! -d "${MSP_DIR}/cacerts" ]]; then - echo "ERROR: Missing MSP dirs for ${ORDERER} in ${MSP_DIR}. Re-run the pull step first." - exit 1 - fi - - echo "==> Patching ${ORDERER}-msp with config.yaml" - printf "%s\n" "${CONFIG_YAML}" > "${MSP_DIR}/config.yaml" - - kubectl create secret generic "${ORDERER}-msp" \ - --namespace "${TARGET_NS}" \ - --from-file="${MSP_DIR}/cacerts" \ - --from-file="${MSP_DIR}/signcerts" \ - $( [[ -d "${MSP_DIR}/keystore" && -n "$(ls -A "${MSP_DIR}/keystore" 2>/dev/null || true)" ]] && echo --from-file="${MSP_DIR}/keystore" ) \ - --from-file=config.yaml="${MSP_DIR}/config.yaml" \ - --dry-run=client -o yaml | kubectl apply -f - -done - -echo "All MSP secrets patched with NodeOUs config.yaml." - diff --git a/hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh b/hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh deleted file mode 100644 index e922cb0..0000000 --- a/hyperledger-fabric-network/orderer/secrets/backup-fabric-orderer.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -NS="${NS:-hlf-orderer}" -RELEASE="${RELEASE:-fabric-orderer}" -STAMP="$(date +%F-%H%M%S)" -OUT="${OUT:-$PWD/${RELEASE}-backup-$STAMP}" - -mkdir -p "$OUT" - -echo "==> Saving Helm release state" -helm get values "$RELEASE" -n "$NS" > "$OUT/values.yaml" -helm get all "$RELEASE" -n "$NS" > "$OUT/helm-get-all.txt" -helm status "$RELEASE" -n "$NS" > "$OUT/helm-status.txt" - -echo "==> Saving Helm release secrets (the canonical Helm state)" -kubectl -n "$NS" get secret \ - -l "owner=helm,name=${RELEASE}" \ - -o yaml > "$OUT/helm-release-secrets.yaml" || true - -echo "==> Saving chart-rendered manifests (what Helm applied)" -# If you still have the chart folder handy; otherwise skip -helm template "$RELEASE" . -n "$NS" > "$OUT/rendered-manifests.yaml" || true - -echo "==> Exporting Kubernetes objects (live state)" -kubectl -n "$NS" get \ - statefulsets,deployments,daemonsets,replicasets,pods,services,endpoints,ingresses \ - -o yaml > "$OUT/workloads.yaml" - -kubectl -n "$NS" get \ - configmaps,secrets,serviceaccounts,roles,rolebindings \ - -o yaml > "$OUT/config-and-rbac.yaml" - -kubectl -n "$NS" get \ - pvc,pv,storageclasses \ - -o yaml > "$OUT/storage.yaml" || true - -echo "==> Exporting CRDs used by the release (if any)" -# Adjust kinds if you have CRDs; left generic -kubectl get crd -o name > "$OUT/crd-list.txt" -# You can selectively dump CRDs your chart uses: -# kubectl get -A -o yaml > "$OUT/crd-objects.yaml" - -echo "==> Export MSP/TLS secrets individually (easier restore)" -mkdir -p "$OUT/secrets" -for s in $(kubectl -n "$NS" get secret \ - | awk '/orderer[0-9]-(msp|tls)/{print $1}'); do - d="$OUT/secrets/$s" - mkdir -p "$d" - # Expand each key to a file - for k in $(kubectl -n "$NS" get secret "$s" -o json \ - | jq -r '.data | keys[]'); do - kubectl -n "$NS" get secret "$s" -o jsonpath="{.data.$k}" \ - | base64 -d > "$d/$k" - done -done - -echo "==> Capture ConfigMaps used by orderers" -kubectl -n "$NS" get cm -o name \ - | grep -E 'fabric-orderer|orderer' \ - | xargs -r kubectl -n "$NS" get -o yaml > "$OUT/configmaps.yaml" || true - -echo "==> (Optional) include genesis/join blocks if you keep them locally" -# Adjust paths to where you keep them: -for f in ~/hyperledger-fabric-network/config/genesis.block \ - ~/hyperledger-fabric-network/config/*.block \ - ~/hyperledger-fabric-network/config/*.tx; do - [ -f "$f" ] && cp -v "$f" "$OUT"/ || true -done - -echo "==> Creating archive" -tar -C "$(dirname "$OUT")" -czf "${OUT}.tar.gz" "$(basename "$OUT")" -sha256sum "${OUT}.tar.gz" > "${OUT}.tar.gz.sha256" - -echo "==> (Optional) Encrypt archive with GPG" -# Uncomment to encrypt -# gpg --symmetric --cipher-algo AES256 -o "${OUT}.tar.gz.gpg" "${OUT}.tar.gz" - -echo "Backup written to: ${OUT}.tar.gz" - diff --git a/hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh b/hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh deleted file mode 100644 index 4b6c2ad..0000000 --- a/hyperledger-fabric-network/orderer/secrets/create-orderer-secrets-v2.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash -# create-orderer-secrets-v2.sh -set -euo pipefail - -CA_NS="hlf-ca" -CA_CLIENT_POD="fabric-ca-client-0" -TARGET_NS="hlf-orderer" -LOCAL_BASE="./_secrets/orderers" - -kubectl get ns "${TARGET_NS}" >/dev/null 2>&1 || kubectl create ns "${TARGET_NS}" -mkdir -p "${LOCAL_BASE}" - -pull_from_pod() { - local remote="$1" ; local local_path="$2" - mkdir -p "$(dirname "${local_path}")" - # Wrap kubectl cp so missing paths don't kill the script when caller says "optional" - if ! kubectl cp "${CA_NS}/${CA_CLIENT_POD}:${remote}" "${local_path}" 2>&1; then - return 1 - fi -} - -for i in 0 1 2 3 4; do - ORDERER="orderer${i}" - echo "==> Processing ${ORDERER}" - - REMOTE_BASE="/data/hyperledger/fabric-ca-client/${ORDERER}" - LOCAL_DIR="${LOCAL_BASE}/${ORDERER}" - MSP_DIR="${LOCAL_DIR}/msp" - TLS_DIR="${LOCAL_DIR}/tls" - TLS_OUT="${LOCAL_DIR}/tls-ready" - mkdir -p "${MSP_DIR}" "${TLS_DIR}" "${TLS_OUT}" - - echo " - Pulling MSP (signcerts, cacerts, keystore?, config.yaml?)" - pull_from_pod "${REMOTE_BASE}/msp/signcerts" "${MSP_DIR}/signcerts" - pull_from_pod "${REMOTE_BASE}/msp/cacerts" "${MSP_DIR}/cacerts" - pull_from_pod "${REMOTE_BASE}/msp/keystore" "${MSP_DIR}/keystore" || echo " (keystore not found yet — ok)" - pull_from_pod "${REMOTE_BASE}/msp/config.yaml" "${MSP_DIR}/config.yaml" || echo " (config.yaml not found — ok)" - - echo " - Pulling TLS (signcerts, keystore?, tlscacerts)" - pull_from_pod "${REMOTE_BASE}/tls/signcerts" "${TLS_DIR}/signcerts" - pull_from_pod "${REMOTE_BASE}/tls/keystore" "${TLS_DIR}/keystore" || echo " (tls keystore not found — ok)" - pull_from_pod "${REMOTE_BASE}/tls/tlscacerts" "${TLS_DIR}/tlscacerts" - - echo " - Normalizing TLS filenames" - SIGNCRT="$(ls -1 ${TLS_DIR}/signcerts/* 2>/dev/null | head -n1 || true)" - KEYFILE="$(ls -1 ${TLS_DIR}/keystore/* 2>/dev/null | head -n1 || true)" - CACRT="$(ls -1 ${TLS_DIR}/tlscacerts/* 2>/dev/null | head -n1 || true)" - - if [[ -z "${SIGNCRT}" || -z "${KEYFILE}" || -z "${CACRT}" ]]; then - echo " ERROR: Missing TLS files for ${ORDERER}." - echo " SIGNCRT='${SIGNCRT}' KEYFILE='${KEYFILE}' CACRT='${CACRT}'" - echo " Re-run TLS enroll for ${ORDERER} before creating secrets." - exit 1 - fi - - cp -f "${SIGNCRT}" "${TLS_OUT}/server.crt" - cp -f "${KEYFILE}" "${TLS_OUT}/server.key" - cp -f "${CACRT}" "${TLS_OUT}/ca.crt" - - echo " - Validating MSP files exist" - [[ -d "${MSP_DIR}/signcerts" ]] || { echo " ERROR: ${MSP_DIR}/signcerts missing"; exit 1; } - [[ -d "${MSP_DIR}/cacerts" ]] || { echo " ERROR: ${MSP_DIR}/cacerts missing"; exit 1; } - # keystore may be empty (soft enrolls); don’t fail if absent. - - echo " - Applying secret ${ORDERER}-msp" - # For directories, do NOT specify a key name. Let kubectl use filenames. - kubectl create secret generic "${ORDERER}-msp" \ - --namespace "${TARGET_NS}" \ - --from-file="${MSP_DIR}/cacerts" \ - --from-file="${MSP_DIR}/signcerts" \ - $( [[ -d "${MSP_DIR}/keystore" && -n "$(ls -A "${MSP_DIR}/keystore" 2>/dev/null || true)" ]] && echo --from-file="${MSP_DIR}/keystore" ) \ - $( [[ -f "${MSP_DIR}/config.yaml" ]] && echo --from-file=config.yaml="${MSP_DIR}/config.yaml" ) \ - --dry-run=client -o yaml | kubectl apply -f - - - echo " - Applying secret ${ORDERER}-tls" - kubectl create secret generic "${ORDERER}-tls" \ - --namespace "${TARGET_NS}" \ - --from-file=server.crt="${TLS_OUT}/server.crt" \ - --from-file=server.key="${TLS_OUT}/server.key" \ - --from-file=ca.crt="${TLS_OUT}/ca.crt" \ - --dry-run=client -o yaml | kubectl apply -f - - - echo " ✓ ${ORDERER} secrets applied" -done - -echo "All orderer secrets created/applied in namespace '${TARGET_NS}'." - diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml deleted file mode 100644 index 7e4727b..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem - OrganizationalUnitIdentifier: orderer \ No newline at end of file diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/keystore/3e8635384942bb77d2ee33993b0364fcd77db5e7717c9715c0d66e87dfaa9858_sk +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer0-msp/signcerts/cert.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/keystore/debb100eae20a493c8c87ff00ece0a0d49be926ce59cbe11f7aee25c20d6ff58_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer0-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml deleted file mode 100644 index 3e670ef..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/config.yaml +++ /dev/null @@ -1,175 +0,0 @@ - -############################################################################# -# This is a configuration file for the fabric-ca-client command. -# -# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES -# ------------------------------------------------ -# Each configuration element can be overridden via command line -# arguments or environment variables. The precedence for determining -# the value of each element is as follows: -# 1) command line argument -# Examples: -# a) --url https://localhost:7054 -# To set the fabric-ca server url -# b) --tls.client.certfile certfile.pem -# To set the client certificate for TLS -# 2) environment variable -# Examples: -# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 -# To set the fabric-ca server url -# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem -# To set the client certificate for TLS -# 3) configuration file -# 4) default value (if there is one) -# All default values are shown beside each element below. -# -# FILE NAME ELEMENTS -# ------------------ -# The value of all fields whose name ends with "file" or "files" are -# name or names of other files. -# For example, see "tls.certfiles" and "tls.client.certfile". -# The value of each of these fields can be a simple filename, a -# relative path, or an absolute path. If the value is not an -# absolute path, it is interpreted as being relative to the location -# of this configuration file. -# -############################################################################# - -############################################################################# -# Client Configuration -############################################################################# - -# URL of the Fabric-ca-server (default: http://localhost:7054) -url: https://root-ca.hlf-ca.svc.cluster.local:7054 - -# Membership Service Provider (MSP) directory -# This is useful when the client is used to enroll a peer or orderer, so -# that the enrollment artifacts are stored in the format expected by MSP. -mspdir: /data/hyperledger/fabric-ca-client/orderer1/msp - -############################################################################# -# TLS section for secure socket connection -# -# certfiles - PEM-encoded list of trusted root certificate files -# client: -# certfile - PEM-encoded certificate file for when client authentication -# is enabled on server -# keyfile - PEM-encoded key file for when client authentication -# is enabled on server -############################################################################# -tls: - # TLS section for secure socket connection - certfiles: - client: - certfile: - keyfile: - -############################################################################# -# Certificate Signing Request section for generating the CSR for an -# enrollment certificate (ECert) -# -# cn - Used by CAs to determine which domain the certificate is to be generated for -# -# keyrequest - Properties to use when generating a private key. -# algo - key generation algorithm to use -# size - size of key to generate -# reusekey - reuse existing key during reenrollment -# -# serialnumber - The serialnumber field, if specified, becomes part of the issued -# certificate's DN (Distinguished Name). For example, one use case for this is -# a company with its own CA (Certificate Authority) which issues certificates -# to its employees and wants to include the employee's serial number in the DN -# of its issued certificates. -# WARNING: The serialnumber field should not be confused with the certificate's -# serial number which is set by the CA but is not a component of the -# certificate's DN. -# -# names - A list of name objects. Each name object should contain at least one -# "C", "L", "O", or "ST" value (or any combination of these) where these -# are abbreviations for the following: -# "C": country -# "L": locality or municipality (such as city or town name) -# "O": organization -# "OU": organizational unit, such as the department responsible for owning the key; -# it can also be used for a "Doing Business As" (DBS) name -# "ST": the state or province -# -# Note that the "OU" or organizational units of an ECert are always set according -# to the values of the identities type and affiliation. OUs are calculated for an enroll -# as OU=, OU=, ..., OU=. For example, an identity -# of type "client" with an affiliation of "org1.dept2.team3" would have the following -# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 -# -# hosts - A list of host names for which the certificate should be valid -# -############################################################################# -csr: - cn: orderer1 - keyrequest: - algo: ecdsa - size: 256 - reusekey: false - serialnumber: - names: - - C: US - ST: North Carolina - L: - O: Hyperledger - OU: Fabric - hosts: - - fabric-ca-client-0 - -############################################################################# -# Registration section used to register a new identity with fabric-ca server -# -# name - Unique name of the identity -# type - Type of identity being registered (e.g. 'peer, app, user') -# affiliation - The identity's affiliation -# maxenrollments - The maximum number of times the secret can be reused to enroll. -# Specially, -1 means unlimited; 0 means to use CA's max enrollment -# value. -# attributes - List of name/value pairs of attribute for identity -############################################################################# -id: - name: - type: - affiliation: - maxenrollments: 0 - attributes: - # - name: - # value: - -############################################################################# -# Enrollment section used to enroll an identity with fabric-ca server -# -# profile - Name of the signing profile to use in issuing the certificate -# label - Label to use in HSM operations -############################################################################# -enrollment: - profile: - label: - -############################################################################# -# Name of the CA to connect to within the fabric-ca server -############################################################################# -caname: - -############################################################################# -# BCCSP (BlockChain Crypto Service Provider) section allows to select which -# crypto implementation library to use -############################################################################# -bccsp: - default: SW - sw: - hash: SHA2 - security: 256 - filekeystore: - # The directory used for the software file-based keystore - keystore: msp/keystore - -############################################################################# -# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. -# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. -# If unspecified, it defaults to 'amcl.Fp256bn'. -############################################################################# -idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/b17f24c0f5936002670894e69afa61d5dc4498052e0386c2f773271280169548_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/keystore/key.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-msp/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/keystore/5de60264f9815952641f5fc48380cc1ca3d97ddf7f44d900070f6d967091af2f_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer1-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer1-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml deleted file mode 100644 index d0a1ce0..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/config.yaml +++ /dev/null @@ -1,175 +0,0 @@ - -############################################################################# -# This is a configuration file for the fabric-ca-client command. -# -# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES -# ------------------------------------------------ -# Each configuration element can be overridden via command line -# arguments or environment variables. The precedence for determining -# the value of each element is as follows: -# 1) command line argument -# Examples: -# a) --url https://localhost:7054 -# To set the fabric-ca server url -# b) --tls.client.certfile certfile.pem -# To set the client certificate for TLS -# 2) environment variable -# Examples: -# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 -# To set the fabric-ca server url -# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem -# To set the client certificate for TLS -# 3) configuration file -# 4) default value (if there is one) -# All default values are shown beside each element below. -# -# FILE NAME ELEMENTS -# ------------------ -# The value of all fields whose name ends with "file" or "files" are -# name or names of other files. -# For example, see "tls.certfiles" and "tls.client.certfile". -# The value of each of these fields can be a simple filename, a -# relative path, or an absolute path. If the value is not an -# absolute path, it is interpreted as being relative to the location -# of this configuration file. -# -############################################################################# - -############################################################################# -# Client Configuration -############################################################################# - -# URL of the Fabric-ca-server (default: http://localhost:7054) -url: https://root-ca.hlf-ca.svc.cluster.local:7054 - -# Membership Service Provider (MSP) directory -# This is useful when the client is used to enroll a peer or orderer, so -# that the enrollment artifacts are stored in the format expected by MSP. -mspdir: /data/hyperledger/fabric-ca-client/orderer2/msp - -############################################################################# -# TLS section for secure socket connection -# -# certfiles - PEM-encoded list of trusted root certificate files -# client: -# certfile - PEM-encoded certificate file for when client authentication -# is enabled on server -# keyfile - PEM-encoded key file for when client authentication -# is enabled on server -############################################################################# -tls: - # TLS section for secure socket connection - certfiles: - client: - certfile: - keyfile: - -############################################################################# -# Certificate Signing Request section for generating the CSR for an -# enrollment certificate (ECert) -# -# cn - Used by CAs to determine which domain the certificate is to be generated for -# -# keyrequest - Properties to use when generating a private key. -# algo - key generation algorithm to use -# size - size of key to generate -# reusekey - reuse existing key during reenrollment -# -# serialnumber - The serialnumber field, if specified, becomes part of the issued -# certificate's DN (Distinguished Name). For example, one use case for this is -# a company with its own CA (Certificate Authority) which issues certificates -# to its employees and wants to include the employee's serial number in the DN -# of its issued certificates. -# WARNING: The serialnumber field should not be confused with the certificate's -# serial number which is set by the CA but is not a component of the -# certificate's DN. -# -# names - A list of name objects. Each name object should contain at least one -# "C", "L", "O", or "ST" value (or any combination of these) where these -# are abbreviations for the following: -# "C": country -# "L": locality or municipality (such as city or town name) -# "O": organization -# "OU": organizational unit, such as the department responsible for owning the key; -# it can also be used for a "Doing Business As" (DBS) name -# "ST": the state or province -# -# Note that the "OU" or organizational units of an ECert are always set according -# to the values of the identities type and affiliation. OUs are calculated for an enroll -# as OU=, OU=, ..., OU=. For example, an identity -# of type "client" with an affiliation of "org1.dept2.team3" would have the following -# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 -# -# hosts - A list of host names for which the certificate should be valid -# -############################################################################# -csr: - cn: orderer2 - keyrequest: - algo: ecdsa - size: 256 - reusekey: false - serialnumber: - names: - - C: US - ST: North Carolina - L: - O: Hyperledger - OU: Fabric - hosts: - - fabric-ca-client-0 - -############################################################################# -# Registration section used to register a new identity with fabric-ca server -# -# name - Unique name of the identity -# type - Type of identity being registered (e.g. 'peer, app, user') -# affiliation - The identity's affiliation -# maxenrollments - The maximum number of times the secret can be reused to enroll. -# Specially, -1 means unlimited; 0 means to use CA's max enrollment -# value. -# attributes - List of name/value pairs of attribute for identity -############################################################################# -id: - name: - type: - affiliation: - maxenrollments: 0 - attributes: - # - name: - # value: - -############################################################################# -# Enrollment section used to enroll an identity with fabric-ca server -# -# profile - Name of the signing profile to use in issuing the certificate -# label - Label to use in HSM operations -############################################################################# -enrollment: - profile: - label: - -############################################################################# -# Name of the CA to connect to within the fabric-ca server -############################################################################# -caname: - -############################################################################# -# BCCSP (BlockChain Crypto Service Provider) section allows to select which -# crypto implementation library to use -############################################################################# -bccsp: - default: SW - sw: - hash: SHA2 - security: 256 - filekeystore: - # The directory used for the software file-based keystore - keystore: msp/keystore - -############################################################################# -# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. -# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. -# If unspecified, it defaults to 'amcl.Fp256bn'. -############################################################################# -idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/keystore/key.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-msp/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/keystore/277e9f39d1ede87d7885dc138322193d948431ba7c4a81245ed9160861655bab_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer2-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer2-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml deleted file mode 100644 index 6707cb9..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/config.yaml +++ /dev/null @@ -1,175 +0,0 @@ - -############################################################################# -# This is a configuration file for the fabric-ca-client command. -# -# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES -# ------------------------------------------------ -# Each configuration element can be overridden via command line -# arguments or environment variables. The precedence for determining -# the value of each element is as follows: -# 1) command line argument -# Examples: -# a) --url https://localhost:7054 -# To set the fabric-ca server url -# b) --tls.client.certfile certfile.pem -# To set the client certificate for TLS -# 2) environment variable -# Examples: -# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 -# To set the fabric-ca server url -# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem -# To set the client certificate for TLS -# 3) configuration file -# 4) default value (if there is one) -# All default values are shown beside each element below. -# -# FILE NAME ELEMENTS -# ------------------ -# The value of all fields whose name ends with "file" or "files" are -# name or names of other files. -# For example, see "tls.certfiles" and "tls.client.certfile". -# The value of each of these fields can be a simple filename, a -# relative path, or an absolute path. If the value is not an -# absolute path, it is interpreted as being relative to the location -# of this configuration file. -# -############################################################################# - -############################################################################# -# Client Configuration -############################################################################# - -# URL of the Fabric-ca-server (default: http://localhost:7054) -url: https://root-ca.hlf-ca.svc.cluster.local:7054 - -# Membership Service Provider (MSP) directory -# This is useful when the client is used to enroll a peer or orderer, so -# that the enrollment artifacts are stored in the format expected by MSP. -mspdir: /data/hyperledger/fabric-ca-client/orderer3/msp - -############################################################################# -# TLS section for secure socket connection -# -# certfiles - PEM-encoded list of trusted root certificate files -# client: -# certfile - PEM-encoded certificate file for when client authentication -# is enabled on server -# keyfile - PEM-encoded key file for when client authentication -# is enabled on server -############################################################################# -tls: - # TLS section for secure socket connection - certfiles: - client: - certfile: - keyfile: - -############################################################################# -# Certificate Signing Request section for generating the CSR for an -# enrollment certificate (ECert) -# -# cn - Used by CAs to determine which domain the certificate is to be generated for -# -# keyrequest - Properties to use when generating a private key. -# algo - key generation algorithm to use -# size - size of key to generate -# reusekey - reuse existing key during reenrollment -# -# serialnumber - The serialnumber field, if specified, becomes part of the issued -# certificate's DN (Distinguished Name). For example, one use case for this is -# a company with its own CA (Certificate Authority) which issues certificates -# to its employees and wants to include the employee's serial number in the DN -# of its issued certificates. -# WARNING: The serialnumber field should not be confused with the certificate's -# serial number which is set by the CA but is not a component of the -# certificate's DN. -# -# names - A list of name objects. Each name object should contain at least one -# "C", "L", "O", or "ST" value (or any combination of these) where these -# are abbreviations for the following: -# "C": country -# "L": locality or municipality (such as city or town name) -# "O": organization -# "OU": organizational unit, such as the department responsible for owning the key; -# it can also be used for a "Doing Business As" (DBS) name -# "ST": the state or province -# -# Note that the "OU" or organizational units of an ECert are always set according -# to the values of the identities type and affiliation. OUs are calculated for an enroll -# as OU=, OU=, ..., OU=. For example, an identity -# of type "client" with an affiliation of "org1.dept2.team3" would have the following -# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 -# -# hosts - A list of host names for which the certificate should be valid -# -############################################################################# -csr: - cn: orderer3 - keyrequest: - algo: ecdsa - size: 256 - reusekey: false - serialnumber: - names: - - C: US - ST: North Carolina - L: - O: Hyperledger - OU: Fabric - hosts: - - fabric-ca-client-0 - -############################################################################# -# Registration section used to register a new identity with fabric-ca server -# -# name - Unique name of the identity -# type - Type of identity being registered (e.g. 'peer, app, user') -# affiliation - The identity's affiliation -# maxenrollments - The maximum number of times the secret can be reused to enroll. -# Specially, -1 means unlimited; 0 means to use CA's max enrollment -# value. -# attributes - List of name/value pairs of attribute for identity -############################################################################# -id: - name: - type: - affiliation: - maxenrollments: 0 - attributes: - # - name: - # value: - -############################################################################# -# Enrollment section used to enroll an identity with fabric-ca server -# -# profile - Name of the signing profile to use in issuing the certificate -# label - Label to use in HSM operations -############################################################################# -enrollment: - profile: - label: - -############################################################################# -# Name of the CA to connect to within the fabric-ca server -############################################################################# -caname: - -############################################################################# -# BCCSP (BlockChain Crypto Service Provider) section allows to select which -# crypto implementation library to use -############################################################################# -bccsp: - default: SW - sw: - hash: SHA2 - security: 256 - filekeystore: - # The directory used for the software file-based keystore - keystore: msp/keystore - -############################################################################# -# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. -# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. -# If unspecified, it defaults to 'amcl.Fp256bn'. -############################################################################# -idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/keystore/key.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-msp/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/keystore/ed70ebdda416acad3b3a774b640c9dcc531fe5cb355fc85c0501f83f46cef279_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer3-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer3-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml deleted file mode 100644 index fcfbb6b..0000000 --- a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/config.yaml +++ /dev/null @@ -1,175 +0,0 @@ - -############################################################################# -# This is a configuration file for the fabric-ca-client command. -# -# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES -# ------------------------------------------------ -# Each configuration element can be overridden via command line -# arguments or environment variables. The precedence for determining -# the value of each element is as follows: -# 1) command line argument -# Examples: -# a) --url https://localhost:7054 -# To set the fabric-ca server url -# b) --tls.client.certfile certfile.pem -# To set the client certificate for TLS -# 2) environment variable -# Examples: -# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 -# To set the fabric-ca server url -# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem -# To set the client certificate for TLS -# 3) configuration file -# 4) default value (if there is one) -# All default values are shown beside each element below. -# -# FILE NAME ELEMENTS -# ------------------ -# The value of all fields whose name ends with "file" or "files" are -# name or names of other files. -# For example, see "tls.certfiles" and "tls.client.certfile". -# The value of each of these fields can be a simple filename, a -# relative path, or an absolute path. If the value is not an -# absolute path, it is interpreted as being relative to the location -# of this configuration file. -# -############################################################################# - -############################################################################# -# Client Configuration -############################################################################# - -# URL of the Fabric-ca-server (default: http://localhost:7054) -url: https://root-ca.hlf-ca.svc.cluster.local:7054 - -# Membership Service Provider (MSP) directory -# This is useful when the client is used to enroll a peer or orderer, so -# that the enrollment artifacts are stored in the format expected by MSP. -mspdir: /data/hyperledger/fabric-ca-client/orderer4/msp - -############################################################################# -# TLS section for secure socket connection -# -# certfiles - PEM-encoded list of trusted root certificate files -# client: -# certfile - PEM-encoded certificate file for when client authentication -# is enabled on server -# keyfile - PEM-encoded key file for when client authentication -# is enabled on server -############################################################################# -tls: - # TLS section for secure socket connection - certfiles: - client: - certfile: - keyfile: - -############################################################################# -# Certificate Signing Request section for generating the CSR for an -# enrollment certificate (ECert) -# -# cn - Used by CAs to determine which domain the certificate is to be generated for -# -# keyrequest - Properties to use when generating a private key. -# algo - key generation algorithm to use -# size - size of key to generate -# reusekey - reuse existing key during reenrollment -# -# serialnumber - The serialnumber field, if specified, becomes part of the issued -# certificate's DN (Distinguished Name). For example, one use case for this is -# a company with its own CA (Certificate Authority) which issues certificates -# to its employees and wants to include the employee's serial number in the DN -# of its issued certificates. -# WARNING: The serialnumber field should not be confused with the certificate's -# serial number which is set by the CA but is not a component of the -# certificate's DN. -# -# names - A list of name objects. Each name object should contain at least one -# "C", "L", "O", or "ST" value (or any combination of these) where these -# are abbreviations for the following: -# "C": country -# "L": locality or municipality (such as city or town name) -# "O": organization -# "OU": organizational unit, such as the department responsible for owning the key; -# it can also be used for a "Doing Business As" (DBS) name -# "ST": the state or province -# -# Note that the "OU" or organizational units of an ECert are always set according -# to the values of the identities type and affiliation. OUs are calculated for an enroll -# as OU=, OU=, ..., OU=. For example, an identity -# of type "client" with an affiliation of "org1.dept2.team3" would have the following -# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 -# -# hosts - A list of host names for which the certificate should be valid -# -############################################################################# -csr: - cn: orderer4 - keyrequest: - algo: ecdsa - size: 256 - reusekey: false - serialnumber: - names: - - C: US - ST: North Carolina - L: - O: Hyperledger - OU: Fabric - hosts: - - fabric-ca-client-0 - -############################################################################# -# Registration section used to register a new identity with fabric-ca server -# -# name - Unique name of the identity -# type - Type of identity being registered (e.g. 'peer, app, user') -# affiliation - The identity's affiliation -# maxenrollments - The maximum number of times the secret can be reused to enroll. -# Specially, -1 means unlimited; 0 means to use CA's max enrollment -# value. -# attributes - List of name/value pairs of attribute for identity -############################################################################# -id: - name: - type: - affiliation: - maxenrollments: 0 - attributes: - # - name: - # value: - -############################################################################# -# Enrollment section used to enroll an identity with fabric-ca server -# -# profile - Name of the signing profile to use in issuing the certificate -# label - Label to use in HSM operations -############################################################################# -enrollment: - profile: - label: - -############################################################################# -# Name of the CA to connect to within the fabric-ca server -############################################################################# -caname: - -############################################################################# -# BCCSP (BlockChain Crypto Service Provider) section allows to select which -# crypto implementation library to use -############################################################################# -bccsp: - default: SW - sw: - hash: SHA2 - security: 256 - filekeystore: - # The directory used for the software file-based keystore - keystore: msp/keystore - -############################################################################# -# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. -# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. -# If unspecified, it defaults to 'amcl.Fp256bn'. -############################################################################# -idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/keystore/key.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/keystore/key.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-msp/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-msp/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerRevocationPublicKey b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/keystore/6256bf9c786203254d1b8d4c8440edb11c3f94026c682963b97c7387dce2f46f_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/signcerts/cert.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/signcerts/cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/orderer4-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/orderer/secrets/orderer4-tls/tlscacerts/tls-root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh deleted file mode 100644 index 3510961..0000000 --- a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-inplace.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -# patch-orderer-msp-config-inplace.sh -set -euo pipefail - -NS="hlf-orderer" - -read -r -d '' CONFIG_YAML <<'YAML' -NodeOUs: - Enable: true - ClientOUIdentifier: - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - OrganizationalUnitIdentifier: orderer -YAML - -B64_CFG="$(printf "%s" "$CONFIG_YAML" | base64 | tr -d '\n')" - -for i in 0 1 2 3 4; do - name="orderer${i}-msp" - echo "Patching $name ..." - # ensure secret exists - kubectl -n "$NS" get secret "$name" >/dev/null - # add/replace config.yaml - kubectl -n "$NS" patch secret "$name" \ - --type=merge \ - -p "{\"data\":{\"config.yaml\":\"${B64_CFG}\"}}" - # verify - kubectl -n "$NS" get secret "$name" -o jsonpath='{.data.config\.yaml}' >/dev/null - echo " ✓ config.yaml present" -done - -echo "All MSP secrets patched." - diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh deleted file mode 100644 index 20fba06..0000000 --- a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json-v2.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash -# patch-orderer-msp-config-json-v2.sh -set -xeuo pipefail - -NS="hlf-orderer" - -CFG="$(cat <<'YAML' -NodeOUs: - Enable: true - ClientOUIdentifier: - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - OrganizationalUnitIdentifier: orderer -YAML -)" -B64_CFG="$(printf '%s' "$CFG" | base64 | tr -d '\n')" - -for i in 0 1 2 3 4; do - name="orderer${i}-msp" - echo "==> Patching $name" - kubectl -n "$NS" patch secret "$name" --type='json' \ - -p="[ {\"op\":\"add\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" \ - || kubectl -n "$NS" patch secret "$name" --type='json' \ - -p="[ {\"op\":\"replace\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" - # verify - kubectl -n "$NS" get secret "$name" -o jsonpath='{.data.config\.yaml}' | base64 -d | sed -n '1,3p' -done - -echo "All MSP secrets now include config.yaml." - - diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh deleted file mode 100644 index cff3ac3..0000000 --- a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config-json.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -# patch-orderer-msp-config-json.sh -set -xeuo pipefail - -NS="hlf-orderer" -read -r -d '' CFG <<'YAML' -NodeOUs: - Enable: true - ClientOUIdentifier: - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - OrganizationalUnitIdentifier: orderer -YAML -B64_CFG="$(printf "%s" "$CFG" | base64 | tr -d '\n')" - -for i in 0 1 2 3 4; do - name="orderer${i}-msp" - echo "==> Patching $name" - # add OR replace depending on existence - kubectl -n "$NS" patch secret "$name" --type='json' \ - -p="[ {\"op\":\"add\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" \ - || kubectl -n "$NS" patch secret "$name" --type='json' \ - -p="[ {\"op\":\"replace\",\"path\":\"/data/config.yaml\",\"value\":\"$B64_CFG\"} ]" - - # show keys present - kubectl -n "$NS" get secret "$name" -o json | jq -r '.data | keys | join(",")' -done - -echo "All MSP secrets now include config.yaml." - diff --git a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh b/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh deleted file mode 100644 index 4aa6a69..0000000 --- a/hyperledger-fabric-network/orderer/secrets/patch-orderer-msp-config.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash -# patch-orderer-msp-config.sh -# Ensure NodeOUs config.yaml is present in orderer0..4 MSP secrets - -set -euo pipefail - -TARGET_NS="hlf-orderer" -LOCAL_BASE="./_secrets/orderers" - -read -r -d '' CONFIG_YAML <<'YAML' -NodeOUs: - Enable: true - ClientOUIdentifier: - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - OrganizationalUnitIdentifier: orderer -YAML - -ensure_file() { - local path="$1" - mkdir -p "$(dirname "$path")" - printf "%s\n" "$CONFIG_YAML" > "$path" -} - -for i in 0 1 2 3 4; do - ORDERER="orderer${i}" - MSP_DIR="${LOCAL_BASE}/${ORDERER}/msp" - CACERTS_DIR="${MSP_DIR}/cacerts" - SIGNCERTS_DIR="${MSP_DIR}/signcerts" - KEYSTORE_DIR="${MSP_DIR}/keystore" - CFG_FILE="${MSP_DIR}/config.yaml" - - echo "==> ${ORDERER}" - - # Basic existence checks (these came from your earlier pull step) - [[ -d "${CACERTS_DIR}" ]] || { echo " ERROR: ${CACERTS_DIR} missing"; exit 1; } - [[ -d "${SIGNCERTS_DIR}" ]] || { echo " ERROR: ${SIGNCERTS_DIR} missing"; exit 1; } - - # Always (re)write a fresh config.yaml - ensure_file "${CFG_FILE}" - - # Build args safely - ARGS=( - --namespace "${TARGET_NS}" - --from-file="${CACERTS_DIR}" - --from-file="${SIGNCERTS_DIR}" - --from-file="config.yaml=${CFG_FILE}" - ) - if [[ -d "${KEYSTORE_DIR}" && -n "$(ls -A "${KEYSTORE_DIR}" 2>/dev/null || true)" ]]; then - ARGS+=( --from-file="${KEYSTORE_DIR}" ) - fi - - # Apply (create/update) the secret - kubectl create secret generic "${ORDERER}-msp" "${ARGS[@]}" --dry-run=client -o yaml | kubectl apply -f - - - # Verify config.yaml present - if kubectl -n "${TARGET_NS}" get secret "${ORDERER}-msp" -o jsonpath='{.data.config\.yaml}' >/dev/null 2>&1; then - echo " ✓ config.yaml added to ${ORDERER}-msp" - else - echo " ✗ config.yaml missing on ${ORDERER}-msp (unexpected)"; exit 1 - fi -done - -echo "All MSP secrets patched with NodeOUs config.yaml." - diff --git a/hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh b/hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh deleted file mode 100644 index 4b50d3b..0000000 --- a/hyperledger-fabric-network/orderer/secrets/restore-fabric-orderer.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -NS="${NS:-hlf-orderer}" -RELEASE="${RELEASE:-fabric-orderer}" -ARCHIVE="${1:-}" -[ -z "$ARCHIVE" ] && { echo "Usage: $0 "; exit 1; } - -WORK="/tmp/restore-$$" -mkdir -p "$WORK" -trap 'rm -rf "$WORK"' EXIT - -echo "==> Extracting archive" -tar -xzf "$ARCHIVE" -C "$WORK" -BACKUP_DIR="$(find "$WORK" -maxdepth 1 -type d -name "${RELEASE}-backup-*")" - -echo "==> Ensure namespace" -kubectl get ns "$NS" >/dev/null 2>&1 || kubectl create ns "$NS" - -echo "==> Restore ConfigMaps (generic dump)" -if [ -s "$BACKUP_DIR/configmaps.yaml" ]; then - kubectl -n "$NS" apply -f "$BACKUP_DIR/configmaps.yaml" -fi - -echo "==> Restore MSP/TLS secrets" -if [ -d "$BACKUP_DIR/secrets" ]; then - for dir in "$BACKUP_DIR"/secrets/*; do - s="$(basename "$dir")" - echo " -> $s" - kubectl -n "$NS" delete secret "$s" --ignore-not-found - # Rebuild secret from files in the dir - kubectl -n "$NS" create secret generic "$s" $(printf -- ' --from-file=%s' "$dir"/*) - done -fi - -echo "==> Reinstall/upgrade Helm release with saved values" -if [ -f "$BACKUP_DIR/values.yaml" ]; then - # If you have the chart directory locally: - helm upgrade --install "$RELEASE" ./ -n "$NS" -f "$BACKUP_DIR/values.yaml" - # If you do NOT have the chart, you can restore from the helm release secret instead: - # kubectl -n "$NS" apply -f "$BACKUP_DIR/helm-release-secrets.yaml" - # Then 'helm history' should pick it up; you may still need the chart source to re-install. -else - echo "WARN: values.yaml not found; skipping helm upgrade/install." -fi - -echo "==> (Optional) restore blocks" -# Example: copy genesis.block into a CM for convenience -if [ -f "$BACKUP_DIR/genesis.block" ]; then - kubectl -n "$NS" create cm genesis-block --from-file=genesis.block \ - --dry-run=client -o yaml | kubectl apply -f - -fi - -echo "Restore complete." - From 47fd03f24b1770a358f464d472a67c7dfb400485 Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 15:59:46 -0400 Subject: [PATCH 08/11] Hyperledger Fabric network for transparent tree planting and carbon offset tracking --- ...Integration with Greenstand Treetracker.md | 12 +- hyperledger-fabric-network/README.md | 3 +- .../ca/DOCUMENTATION_INDEX.md | 183 ------- hyperledger-fabric-network/ca/README.md | 275 ---------- .../ca/fabric-ca/cbo-ca/tls-cert.pem | 1 - .../fabric-ca-server-config.yaml | 72 --- .../ca/fabric-ca/greenstand-ca/tls-cert.pem | 1 - .../ca/fabric-ca/investor-ca/tls-cert.pem | 1 - .../fabric-ca-client-config.yaml | 175 ------ .../msp/IssuerPublicKey | 0 .../msp/IssuerRevocationPublicKey | 0 ...-hlf-ca-svc-cluster-local-7054-root-ca.pem | 1 - ...494f48d8624469eb7c22f768fd52fb396e23a77_sk | 1 - .../msp/signcerts/cert.pem | 1 - .../fabric-ca-client-root-ca/tls-cert.pem | 0 .../root-ca/fabric-ca-server/IssuerPublicKey | 0 .../IssuerRevocationPublicKey | 0 .../root-ca/fabric-ca-server/ca-cert.pem | 0 .../fabric-ca-server-config.yaml | 510 ------------------ .../fabric-ca-server/fabric-ca-server.db | Bin 65536 -> 0 bytes ...0b907920095c657758558d61d690ceba998cc90_sk | 0 ...c58065548ae1b61716e4bc6aa994364290171a4_sk | 0 .../msp/keystore/IssuerRevocationPrivateKey | 0 .../msp/keystore/IssuerSecretKey | 0 .../root-ca/fabric-ca-server/tls-cert.pem | 0 .../ca/fabric-ca/root-ca/root-tls-cert.pem | 1 - .../ca/fabric-ca/verifier-ca/tls-cert.pem | 1 - .../ca/helm-charts/cbo-ca/Chart.yaml | 6 - .../cbo-ca/templates/deployment.yaml | 46 -- .../ca/helm-charts/cbo-ca/templates/pvc.yaml | 16 - .../helm-charts/cbo-ca/templates/service.yaml | 16 - .../ca/helm-charts/cbo-ca/values.yaml | 41 -- 32 files changed, 6 insertions(+), 1357 deletions(-) delete mode 100644 hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md delete mode 100644 hyperledger-fabric-network/ca/README.md delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/tls-cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerPublicKey delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerRevocationPublicKey delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/ca-cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server.db delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/7d5d91f1f6e6ac09cba8fbee30b907920095c657758558d61d690ceba998cc90_sk delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/85e1f8ec6b2fe4c0aab2fc044c58065548ae1b61716e4bc6aa994364290171a4_sk delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerRevocationPrivateKey delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerSecretKey delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/tls-cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem delete mode 100644 hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml diff --git a/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md index 48acc1b..34beff7 100644 --- a/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md +++ b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md @@ -33,8 +33,7 @@ Fabric’s ordering service packages endorsed transactions into blocks, determin --- ## Treetracker Integration Architecture -HLF TT Arch2 - +![alt text]() ### Client Applications @@ -66,8 +65,7 @@ Fabric’s ordering service packages endorsed transactions into blocks, determin --- ## Hyperledger Fabric Network Setup -HLF TT Arch3 - +![alt text]() ### Ordering Service A **Raft** ordering service is provisioned with five orderer nodes, distributed across multiple data centres for high availability. Raft is crash-fault-tolerant; it can withstand the loss of up to two nodes in a five-node cluster ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Each channel runs its own Raft instance, electing a leader per channel ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Organisations may specify which of their orderer nodes participate in each channel ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). @@ -77,7 +75,7 @@ A **Raft** ordering service is provisioned with five orderer nodes, distributed Each organisation runs endorsing and committing peers. Endorsing peers execute chaincode and produce proposal responses; committing peers validate transactions and update their ledgers. Peers use a **gossip** protocol to discover other peers, disseminate blocks and private data, and keep ledgers consistent ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Gossip also elects leaders within organisations to efficiently pull blocks from the ordering service ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). ### Channels -HLF TT Arch4 2 +![alt text]() Treetracker uses several channels: @@ -92,7 +90,7 @@ Treetracker uses several channels: For each organisation, a root CA issues certificates for one or more intermediate CAs. Intermediate CAs issue X.509 certificates to users, peers and orderers. The Fabric CA server is initialised with a CSR (Certificate Signing Request) specifying fields like Common Name (CN), organisation (O), organisational unit (OU), location (L), state (ST) and country (C) ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The server can generate a self-signed CA certificate or obtain a certificate signed by a parent CA ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). TLS is enabled to secure enrolment and registration ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The Membership Service Provider (MSP) uses these certificates to define valid identities and assign roles ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). ### Smart Contracts (Chaincode) -HLF TT Arch5 +![alt text]() Chaincode encapsulates the business logic of Treetracker. Four main contracts are envisaged: @@ -109,7 +107,7 @@ Chaincode runs in a Docker container managed by peers. Fabric’s **new chaincod --- ## Transaction Flow Mapping -HLF TT Arch6 +![alt text]() A typical tree registration and token issuance flow maps onto Fabric’s transaction flow ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)): diff --git a/hyperledger-fabric-network/README.md b/hyperledger-fabric-network/README.md index 550d209..112ccd5 100644 --- a/hyperledger-fabric-network/README.md +++ b/hyperledger-fabric-network/README.md @@ -1,5 +1,4 @@ -Treetracker HLF Network - +![alt text]()

🌳 Blockchain-based Tree Tracking Network 🌳

A production-ready Hyperledger Fabric network for transparent tree planting and carbon offset tracking

diff --git a/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md b/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md deleted file mode 100644 index cbbe0c5..0000000 --- a/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md +++ /dev/null @@ -1,183 +0,0 @@ -# CA Infrastructure Documentation Index - -## Document Overview - -This directory contains comprehensive documentation for the Hyperledger Fabric Certificate Authority infrastructure. The documentation is organized into several key areas covering different aspects of CA management and operations. - -## Documentation Structure - -### 📋 Core Documentation - -| Document | Purpose | Audience | Last Updated | -|----------|---------|----------|--------------| -| [`README.md`](README.md) | Overview and quick start guide | All users | 2024-09-02 | -| [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) | Technical specifications and architecture | Engineers, Architects | 2024-09-02 | -| [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) | Daily operations and maintenance | Operations Teams | 2024-09-02 | -| [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) | Security protocols and incident response | Security Teams | 2024-09-02 | - -### 📁 Directory Documentation - -| Component | Location | Documentation | -|-----------|----------|---------------| -| **Helm Charts** | `helm-charts/` | Individual chart README files | -| **Scripts** | `scripts/` | Script headers and inline documentation | -| **Fabric CA Configs** | `fabric-ca/` | Configuration file comments | -| **Certificate Monitor** | `../monitoring/` | Integration documentation | - -## Quick Reference Guide - -### 🚀 Getting Started - -**New to CA infrastructure?** -1. Start with [`README.md`](README.md) for overview and quick start -2. Review [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) for architecture understanding -3. Follow deployment procedures in scripts documentation - -**Operations team?** -1. Focus on [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) -2. Review daily/weekly/monthly procedures -3. Familiarize with troubleshooting procedures - -**Security team?** -1. Study [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) -2. Review incident response procedures -3. Understand compliance requirements - -### 🔍 Common Tasks - -| Task | Primary Document | Supporting Documents | -|------|------------------|---------------------| -| **Deploy new CA** | README.md | TECHNICAL_SPECS.md | -| **Certificate renewal** | OPERATIONAL_PROCEDURES.md | SECURITY_PROCEDURES.md | -| **Backup/restore** | OPERATIONAL_PROCEDURES.md | TECHNICAL_SPECS.md | -| **Incident response** | SECURITY_PROCEDURES.md | OPERATIONAL_PROCEDURES.md | -| **Performance tuning** | TECHNICAL_SPECS.md | OPERATIONAL_PROCEDURES.md | -| **Security hardening** | SECURITY_PROCEDURES.md | TECHNICAL_SPECS.md | - -## Document Contents Summary - -### [`README.md`](README.md) -- **Overview**: CA infrastructure introduction and architecture -- **Quick Start**: Step-by-step deployment guide -- **Directory Structure**: File and folder organization -- **Basic Operations**: Common commands and procedures -- **Troubleshooting**: Common issues and solutions -- **Integration**: How CA integrates with other systems - -### [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) -- **System Architecture**: Technical design and component relationships -- **Container Specifications**: Resource requirements and configurations -- **Network Configuration**: Security, ports, and communication -- **API Documentation**: REST APIs and CLI commands -- **Performance Metrics**: Scalability limits and capacity planning -- **Configuration Management**: Environment variables and ConfigMaps -- **Version Management**: Upgrade procedures and compatibility - -### [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) -- **Standard Operating Procedures**: Daily, weekly, monthly tasks -- **Incident Response**: Emergency procedures and escalation -- **Maintenance Procedures**: Planned maintenance and updates -- **Monitoring Procedures**: Health checks and performance monitoring -- **Backup/Restore**: Complete data protection procedures -- **Change Management**: Configuration and version changes - -### [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) -- **Security Framework**: Objectives and access control -- **Cryptographic Security**: Key management and certificate validation -- **Network Security**: Segmentation and TLS configuration -- **Incident Response**: Security incident classification and response -- **Compliance**: Audit procedures and regulatory requirements -- **Security Hardening**: Container and network security measures - -## Documentation Maintenance - -### 📝 Update Schedule - -| Document Type | Update Frequency | Trigger Events | -|---------------|------------------|----------------| -| **README.md** | Quarterly | Major feature additions, structural changes | -| **TECHNICAL_SPECS.md** | Bi-annually | Version upgrades, architecture changes | -| **OPERATIONAL_PROCEDURES.md** | Monthly | Process improvements, new procedures | -| **SECURITY_PROCEDURES.md** | Quarterly | Security policy changes, incident learnings | - -### ✍️ Contributing to Documentation - -#### Documentation Standards -- **Format**: Markdown with consistent styling -- **Code Blocks**: Include language identifiers and executable examples -- **Version Control**: All changes tracked in git -- **Review Process**: Technical review required for procedure changes - -#### Update Process -1. **Identify Changes**: Document what needs updating -2. **Draft Updates**: Create updated content following standards -3. **Technical Review**: Review for accuracy and completeness -4. **Security Review**: Security procedures require security team review -5. **Approval**: Platform lead approval for operational changes -6. **Deployment**: Update files and notify relevant teams - -### 🔄 Document Relationships - -```mermaid -graph LR - A[README.md] --> B[TECHNICAL_SPECS.md] - A --> C[OPERATIONAL_PROCEDURES.md] - B --> C - B --> D[SECURITY_PROCEDURES.md] - C --> D - - E[Scripts] --> C - F[Helm Charts] --> A - F --> B - G[Monitoring] --> C - G --> D -``` - -## Additional Resources - -### 🔗 External References - -| Resource | Link | Purpose | -|----------|------|---------| -| **Hyperledger Fabric CA Documentation** | [Official Docs](https://hyperledger-fabric-ca.readthedocs.io/) | Official reference | -| **Kubernetes Documentation** | [k8s.io](https://kubernetes.io/docs/) | Platform reference | -| **Helm Documentation** | [helm.sh](https://helm.sh/docs/) | Deployment tools | -| **Security Best Practices** | [NIST Framework](https://www.nist.gov/cyberframework) | Security guidelines | - -### 📞 Support and Contact - -| Type | Contact | Purpose | -|------|---------|---------| -| **Technical Support** | Platform Team | Infrastructure issues | -| **Security Issues** | Security Team | Security incidents, vulnerabilities | -| **Documentation Updates** | Documentation Team | Content improvements | -| **Emergency Escalation** | On-call Manager | Critical incidents | - -## Version History - -| Version | Date | Changes | Author | -|---------|------|---------|--------| -| 1.0 | 2024-09-02 | Initial documentation creation | System | -| | | Complete CA infrastructure documentation | | -| | | Security procedures and compliance | | -| | | Operational procedures and monitoring | | - -## Compliance and Governance - -### 📋 Document Classification -- **README.md**: Internal Use -- **TECHNICAL_SPECS.md**: Internal Use -- **OPERATIONAL_PROCEDURES.md**: Internal Use -- **SECURITY_PROCEDURES.md**: Confidential - -### 🔒 Access Control -- **Read Access**: All development and operations team members -- **Write Access**: Platform leads, documentation maintainers -- **Security Docs**: Security team approval required for changes - -### 📊 Usage Analytics -- Documentation access patterns monitored -- Most frequently accessed sections identified -- User feedback collected for improvements - -This documentation index provides a comprehensive overview of all CA infrastructure documentation, helping users quickly find the information they need for their specific roles and tasks. diff --git a/hyperledger-fabric-network/ca/README.md b/hyperledger-fabric-network/ca/README.md deleted file mode 100644 index 9f2b387..0000000 --- a/hyperledger-fabric-network/ca/README.md +++ /dev/null @@ -1,275 +0,0 @@ -# Hyperledger Fabric Certificate Authority (CA) Documentation - -This directory contains the complete Certificate Authority infrastructure for the Hyperledger Fabric network, including Root CA, Intermediate CAs, deployment scripts, and management tools. - -## Overview - -The CA infrastructure provides: -- **Root CA**: Central certificate authority for the network -- **Intermediate CAs**: Organization-specific certificate authorities (CBO, Investor, Verifier, Greenstand) -- **Automated enrollment**: Scripts for identity registration and certificate enrollment -- **Kubernetes deployment**: Helm charts for scalable CA deployment -- **Backup/restore**: Complete CA data backup and restoration capabilities - -## Directory Structure - -``` -ca/ -├── helm-charts/ # Helm deployment charts -│ ├── root-ca/ # Root CA deployment -│ ├── cbo-ca/ # CBO organization CA -│ ├── investor-ca/ # Investor organization CA -│ ├── verifier-ca/ # Verifier organization CA -│ ├── greenstand-ca/ # Greenstand organization CA -│ └── fabric-ca-client/ # CA client pod deployment -├── scripts/ # Management and deployment scripts -│ ├── create-ca-secrets.sh # Kubernetes secret creation -│ ├── enroll-admin.sh # Admin enrollment -│ ├── register-identities.sh # Identity registration -│ ├── enroll-ica.sh # Intermediate CA enrollment -│ ├── backup-ca.sh # CA backup script -│ └── restore-ca.sh # CA restoration script -├── fabric-ca/ # CA server configurations -│ ├── root-ca/ -│ ├── cbo-ca/ -│ ├── investor-ca/ -│ ├── verifier-ca/ -│ └── greenstand-ca/ -└── README.md # This documentation -``` - -## Certificate Authority Hierarchy - -``` -Root CA (root-ca) -├── CBO-CA (cbo-ca) # CBO organization certificates -├── Investor-CA (investor-ca) # Investor organization certificates -├── Verifier-CA (verifier-ca) # Verifier organization certificates -└── Greenstand-CA (greenstand-ca) # Greenstand organization certificates -``` - -## Quick Start - -### 1. Deploy Root CA -```bash -cd helm-charts/root-ca -helm install root-ca . -n hlf-ca --create-namespace -``` - -### 2. Deploy CA Client -```bash -cd helm-charts/fabric-ca-client -kubectl apply -f fabric-ca-client.yaml -``` - -### 3. Enroll Admin -```bash -cd scripts -./enroll-admin.sh -``` - -### 4. Register Intermediate CAs -```bash -./register-identities.sh -``` - -### 5. Deploy Intermediate CAs -```bash -cd ../helm-charts/cbo-ca -helm install cbo-ca . -n hlf-ca - -cd ../investor-ca -helm install investor-ca . -n hlf-ca - -cd ../verifier-ca -helm install verifier-ca . -n hlf-ca -``` - -### 6. Enroll Intermediate CAs -```bash -cd ../../scripts -./enroll-ica.sh -``` - -### 7. Create Kubernetes Secrets -```bash -./create-ca-secrets.sh -``` - -## Configuration - -### Root CA Configuration -- **Image**: hyperledger/fabric-ca:1.5.12 -- **Port**: 7054 -- **Storage**: 2Gi persistent volume -- **TLS**: Enabled with custom certificates -- **Database**: SQLite3 (configurable to PostgreSQL/MySQL) - -### Intermediate CA Configuration -- **Parent**: Root CA -- **Organizations**: CBO, Investor, Verifier, Greenstand -- **Auto-enrollment**: Configured for MSP and TLS certificates -- **Storage**: 2Gi per CA instance - -## Management Scripts - -### Identity Management -```bash -# Enroll admin identity -./enroll-admin.sh - -# Register new intermediate CA -./register-identities.sh - -# Enroll intermediate CAs -./enroll-ica.sh -``` - -### Secret Management -```bash -# Create all CA secrets -./create-ca-secrets.sh - -# Backup CA data -./backup-ca.sh - -# Restore CA data -./restore-ca.sh -``` - -## Helm Charts - -### Root CA Chart -- **Location**: `helm-charts/root-ca/` -- **Purpose**: Deploys Root Certificate Authority -- **Features**: TLS-enabled, persistent storage, custom CSR configuration - -### Intermediate CA Charts -- **Locations**: `helm-charts/{org}-ca/` -- **Purpose**: Deploy organization-specific CAs -- **Features**: Parent CA integration, automatic enrollment, TLS configuration - -### CA Client Chart -- **Location**: `helm-charts/fabric-ca-client/` -- **Purpose**: Provides fabric-ca-client for enrollment operations -- **Features**: Persistent client data, configuration management - -## Operations - -### Daily Operations -```bash -# Check CA pod status -kubectl get pods -n hlf-ca - -# View CA logs -kubectl logs -n hlf-ca -l app=root-ca - -# Check certificate expiry -kubectl exec -n hlf-ca fabric-ca-client-0 -- \ - fabric-ca-client certificate list --tls.certfiles /data/hyperledger/fabric-ca-client/root-ca/tls-cert.pem -``` - -### Backup Operations -```bash -# Create backup -./scripts/backup-ca.sh - -# Verify backup contents -tar -tzf fabric-ca-backup-*.tgz | head -20 - -# Store backup securely (off-cluster) -``` - -### Certificate Renewal -```bash -# Check certificate expiry -for ca in root-ca cbo-ca investor-ca verifier-ca; do - echo "Checking $ca certificate expiry..." - kubectl exec -n hlf-ca $ca-0 -- \ - openssl x509 -in /etc/hyperledger/fabric-ca-server/ca-cert.pem -noout -enddate -done - -# Renew certificates (if needed) -# Follow certificate renewal runbook -``` - -## Security Considerations - -### Access Control -- **RBAC**: Kubernetes RBAC limits CA access -- **Network policies**: Restrict CA network access -- **Secrets**: TLS certificates stored as Kubernetes secrets -- **Encryption**: All CA communications use TLS - -### Certificate Management -- **Root CA**: Highest security - air-gapped if possible -- **Intermediate CAs**: Organization-isolated -- **Key protection**: Private keys stored securely in persistent volumes -- **Certificate rotation**: Regular certificate renewal procedures - -## Troubleshooting - -### Common Issues - -#### CA Pod Not Starting -```bash -# Check pod status and events -kubectl describe pod -n hlf-ca root-ca-0 - -# Check persistent volume claims -kubectl get pvc -n hlf-ca - -# Verify TLS certificates -kubectl get secret -n hlf-ca | grep tls -``` - -#### Enrollment Failures -```bash -# Check CA client connectivity -kubectl exec -n hlf-ca fabric-ca-client-0 -- \ - fabric-ca-client getcainfo -u https://root-ca.hlf-ca.svc.cluster.local:7054 - -# Verify TLS certificate -kubectl exec -n hlf-ca fabric-ca-client-0 -- \ - ls -la /data/hyperledger/fabric-ca-client/root-ca/ -``` - -#### Certificate Issues -```bash -# Validate certificate chain -kubectl exec -n hlf-ca fabric-ca-client-0 -- \ - openssl verify -CAfile /data/hyperledger/fabric-ca-client/root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054.pem \ - /data/hyperledger/fabric-ca-client/cbo-ca/msp/signcerts/cert.pem -``` - -## Integration - -### With Peer Networks -- CAs provide certificates for peer MSP and TLS -- Certificate secrets automatically created for peer deployments -- Integration with certificate monitoring system - -### With Certificate Monitoring -- CA certificates monitored for expiry -- Automated alerts for CA certificate issues -- Health metrics exported to Prometheus - -### With CI/CD Pipeline -- CA validation in deployment pipeline -- Automated certificate checks -- Integration with Jenkins/GitHub Actions - -## Maintenance - -### Regular Tasks -- **Weekly**: Check CA pod health and logs -- **Monthly**: Review certificate expiry dates -- **Quarterly**: Perform CA backup -- **Annually**: Plan certificate renewal cycle - -### Emergency Procedures -- **CA failure**: Restore from backup using restore-ca.sh -- **Certificate expiry**: Emergency certificate renewal -- **Security breach**: Revoke compromised certificates - -This CA infrastructure provides a robust foundation for certificate management in your Hyperledger Fabric network with comprehensive automation, monitoring, and operational procedures. diff --git a/hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/cbo-ca/tls-cert.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml b/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml deleted file mode 100644 index c9dc5dc..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/fabric-ca-server-config.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# fabric-ca-server-config.yaml - -# Server info -version: 1.5.0 -ca: - name: {{ ICA_NAME }} # e.g., greenstand-ca - keyfile: /etc/hyperledger/fabric-ca-server/ca-key.pem - certfile: /etc/hyperledger/fabric-ca-server/ca-cert.pem - -# Database (default: sqlite3) -db: - type: sqlite3 - datasource: fabric-ca-server.db - tls: - enabled: false - -# TLS Configuration -tls: - enabled: true - certfile: /etc/hyperledger/fabric-ca-server/tls-cert.pem - keyfile: /etc/hyperledger/fabric-ca-server/tls-key.pem - clientauth: - type: noclientcert - -# Registry - identities this CA can issue -registry: - maxenrollments: -1 - identities: - - name: {{ ICA_NAME }} - pass: {{ ICA_PASSWORD }} # e.g., greenstandcapw - type: client - attrs: - hf.IntermediateCA: "true" - -# Affiliations - organizational hierarchy -affiliations: - {{ ORG_NAME }}: # e.g., greenstand - - department1 - - department2 - -# Signing options -csr: - cn: {{ ICA_NAME }} - hosts: - - {{ ICA_NAME }} - - {{ ICA_NAME }}.hlf-ca.svc.cluster.local - - localhost - names: - - C: US - ST: North Carolina - L: Durham - O: Treetracker - OU: {{ ORG_NAME }} Department - -# Certificate expiration settings -caexpiry: 8760h # 1 year -certfileexpiry: 8760h -crl: - expiry: 24h - -# LDAP (not used here) -ldap: - enabled: false - -# Intermediate CA settings (pointing to Root CA) -intermediate: - parentserver: - url: https://admin:adminpw@root-ca.hlf-ca.svc.cluster.local:7054 - caname: root-ca - tls: - certfiles: - - /etc/hyperledger/fabric-ca-server/root-tls-cert.pem diff --git a/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/greenstand-ca/tls-cert.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/investor-ca/tls-cert.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml deleted file mode 100644 index 0c451ab..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/fabric-ca-client-config.yaml +++ /dev/null @@ -1,175 +0,0 @@ - -############################################################################# -# This is a configuration file for the fabric-ca-client command. -# -# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES -# ------------------------------------------------ -# Each configuration element can be overridden via command line -# arguments or environment variables. The precedence for determining -# the value of each element is as follows: -# 1) command line argument -# Examples: -# a) --url https://localhost:7054 -# To set the fabric-ca server url -# b) --tls.client.certfile certfile.pem -# To set the client certificate for TLS -# 2) environment variable -# Examples: -# a) FABRIC_CA_CLIENT_URL=https://localhost:7054 -# To set the fabric-ca server url -# b) FABRIC_CA_CLIENT_TLS_CLIENT_CERTFILE=certfile.pem -# To set the client certificate for TLS -# 3) configuration file -# 4) default value (if there is one) -# All default values are shown beside each element below. -# -# FILE NAME ELEMENTS -# ------------------ -# The value of all fields whose name ends with "file" or "files" are -# name or names of other files. -# For example, see "tls.certfiles" and "tls.client.certfile". -# The value of each of these fields can be a simple filename, a -# relative path, or an absolute path. If the value is not an -# absolute path, it is interpreted as being relative to the location -# of this configuration file. -# -############################################################################# - -############################################################################# -# Client Configuration -############################################################################# - -# URL of the Fabric-ca-server (default: http://localhost:7054) -url: https://root-ca.hlf-ca.svc.cluster.local:7054 - -# Membership Service Provider (MSP) directory -# This is useful when the client is used to enroll a peer or orderer, so -# that the enrollment artifacts are stored in the format expected by MSP. -mspdir: /data/hyperledger/fabric-ca-client/root-ca/msp - -############################################################################# -# TLS section for secure socket connection -# -# certfiles - PEM-encoded list of trusted root certificate files -# client: -# certfile - PEM-encoded certificate file for when client authentication -# is enabled on server -# keyfile - PEM-encoded key file for when client authentication -# is enabled on server -############################################################################# -tls: - # TLS section for secure socket connection - certfiles: - client: - certfile: - keyfile: - -############################################################################# -# Certificate Signing Request section for generating the CSR for an -# enrollment certificate (ECert) -# -# cn - Used by CAs to determine which domain the certificate is to be generated for -# -# keyrequest - Properties to use when generating a private key. -# algo - key generation algorithm to use -# size - size of key to generate -# reusekey - reuse existing key during reenrollment -# -# serialnumber - The serialnumber field, if specified, becomes part of the issued -# certificate's DN (Distinguished Name). For example, one use case for this is -# a company with its own CA (Certificate Authority) which issues certificates -# to its employees and wants to include the employee's serial number in the DN -# of its issued certificates. -# WARNING: The serialnumber field should not be confused with the certificate's -# serial number which is set by the CA but is not a component of the -# certificate's DN. -# -# names - A list of name objects. Each name object should contain at least one -# "C", "L", "O", or "ST" value (or any combination of these) where these -# are abbreviations for the following: -# "C": country -# "L": locality or municipality (such as city or town name) -# "O": organization -# "OU": organizational unit, such as the department responsible for owning the key; -# it can also be used for a "Doing Business As" (DBS) name -# "ST": the state or province -# -# Note that the "OU" or organizational units of an ECert are always set according -# to the values of the identities type and affiliation. OUs are calculated for an enroll -# as OU=, OU=, ..., OU=. For example, an identity -# of type "client" with an affiliation of "org1.dept2.team3" would have the following -# organizational units: OU=client, OU=org1, OU=dept2, OU=team3 -# -# hosts - A list of host names for which the certificate should be valid -# -############################################################################# -csr: - cn: admin - keyrequest: - algo: ecdsa - size: 256 - reusekey: false - serialnumber: - names: - - C: US - ST: North Carolina - L: - O: Hyperledger - OU: Fabric - hosts: - - fabric-ca-client-0 - -############################################################################# -# Registration section used to register a new identity with fabric-ca server -# -# name - Unique name of the identity -# type - Type of identity being registered (e.g. 'peer, app, user') -# affiliation - The identity's affiliation -# maxenrollments - The maximum number of times the secret can be reused to enroll. -# Specially, -1 means unlimited; 0 means to use CA's max enrollment -# value. -# attributes - List of name/value pairs of attribute for identity -############################################################################# -id: - name: - type: - affiliation: - maxenrollments: 0 - attributes: - # - name: - # value: - -############################################################################# -# Enrollment section used to enroll an identity with fabric-ca server -# -# profile - Name of the signing profile to use in issuing the certificate -# label - Label to use in HSM operations -############################################################################# -enrollment: - profile: - label: - -############################################################################# -# Name of the CA to connect to within the fabric-ca server -############################################################################# -caname: - -############################################################################# -# BCCSP (BlockChain Crypto Service Provider) section allows to select which -# crypto implementation library to use -############################################################################# -bccsp: - default: SW - sw: - hash: SHA2 - security: 256 - filekeystore: - # The directory used for the software file-based keystore - keystore: msp/keystore - -############################################################################# -# Idemix curve ID specifies the Elliptic Curve used by Identity Mixer. -# It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. -# If unspecified, it defaults to 'amcl.Fp256bn'. -############################################################################# -idemixCurveID: amcl.Fp256bn diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerRevocationPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054-root-ca.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/keystore/bc4a90b2d3868c4e95e20adec494f48d8624469eb7c22f768fd52fb396e23a77_sk +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/msp/signcerts/cert.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-client-root-ca/tls-cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerRevocationPublicKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/IssuerRevocationPublicKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/ca-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/ca-cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml deleted file mode 100644 index 7c717e9..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server-config.yaml +++ /dev/null @@ -1,510 +0,0 @@ -############################################################################# -# This is a configuration file for the fabric-ca-server command. -# -# COMMAND LINE ARGUMENTS AND ENVIRONMENT VARIABLES -# ------------------------------------------------ -# Each configuration element can be overridden via command line -# arguments or environment variables. The precedence for determining -# the value of each element is as follows: -# 1) command line argument -# Examples: -# a) --port 443 -# To set the listening port -# b) --ca.keyfile ../mykey.pem -# To set the "keyfile" element in the "ca" section below; -# note the '.' separator character. -# 2) environment variable -# Examples: -# a) FABRIC_CA_SERVER_PORT=443 -# To set the listening port -# b) FABRIC_CA_SERVER_CA_KEYFILE="../mykey.pem" -# To set the "keyfile" element in the "ca" section below; -# note the '_' separator character. -# 3) configuration file -# 4) default value (if there is one) -# All default values are shown beside each element below. -# -# FILE NAME ELEMENTS -# ------------------ -# The value of all fields whose name ends with "file" or "files" are -# name or names of other files. -# For example, see "tls.certfile" and "tls.clientauth.certfiles". -# The value of each of these fields can be a simple filename, a -# relative path, or an absolute path. If the value is not an -# absolute path, it is interpreted as being relative to the location -# of this configuration file. -# -############################################################################# - -# Version of config file -version: v1.5.12 - -# Server's listening port (default: 7054) -port: 7054 - -# Cross-Origin Resource Sharing (CORS) -cors: - enabled: false - origins: - - "*" - -# Enables debug logging (default: false) -debug: false - -# Size limit of an acceptable CRL in bytes (default: 512000) -crlsizelimit: 512000 - -############################################################################# -# TLS section for the server's listening port -# -# The following types are supported for client authentication: NoClientCert, -# RequestClientCert, RequireAnyClientCert, VerifyClientCertIfGiven, -# and RequireAndVerifyClientCert. -# -# Certfiles is a list of root certificate authorities that the server uses -# when verifying client certificates. -############################################################################# -tls: - # Enable TLS (default: false) - enabled: false - # TLS for the server's listening port - certfile: - keyfile: - clientauth: - type: noclientcert - certfiles: - -############################################################################# -# The CA section contains information related to the Certificate Authority -# including the name of the CA, which should be unique for all members -# of a blockchain network. It also includes the key and certificate files -# used when issuing enrollment certificates (ECerts). -# The chainfile (if it exists) contains the certificate chain which -# should be trusted for this CA, where the 1st in the chain is always the -# root CA certificate. -############################################################################# -ca: - # Name of this CA - name: - # Key file (is only used to import a private key into BCCSP) - keyfile: - # Certificate file (default: ca-cert.pem) - certfile: - # Chain file - chainfile: - # Ignore Certificate Expiration in the case of re-enroll - reenrollIgnoreCertExpiry: false - -############################################################################# -# The gencrl REST endpoint is used to generate a CRL that contains revoked -# certificates. This section contains configuration options that are used -# during gencrl request processing. -############################################################################# -crl: - # Specifies expiration for the generated CRL. The number of hours - # specified by this property is added to the UTC time, the resulting time - # is used to set the 'Next Update' date of the CRL. - expiry: 24h - -############################################################################# -# The registry section controls how the fabric-ca-server does two things: -# 1) authenticates enrollment requests which contain a username and password -# (also known as an enrollment ID and secret). -# 2) once authenticated, retrieves the identity's attribute names and values. -# These attributes are useful for making access control decisions in -# chaincode. -# There are two main configuration options: -# 1) The fabric-ca-server is the registry. -# This is true if "ldap.enabled" in the ldap section below is false. -# 2) An LDAP server is the registry, in which case the fabric-ca-server -# calls the LDAP server to perform these tasks. -# This is true if "ldap.enabled" in the ldap section below is true, -# which means this "registry" section is ignored. -############################################################################# -registry: - # Maximum number of times a password/secret can be reused for enrollment - # (default: -1, which means there is no limit) - maxenrollments: -1 - - # Contains identity information which is used when LDAP is disabled - identities: - - name: admin - pass: adminpw - type: client - affiliation: "" - attrs: - hf.Registrar.Roles: "*" - hf.Registrar.DelegateRoles: "*" - hf.Revoker: true - hf.IntermediateCA: true - hf.GenCRL: true - hf.Registrar.Attributes: "*" - hf.AffiliationMgr: true - -############################################################################# -# Database section -# Supported types are: "sqlite3", "postgres", and "mysql". -# The datasource value depends on the type. -# If the type is "sqlite3", the datasource value is a file name to use -# as the database store. Since "sqlite3" is an embedded database, it -# may not be used if you want to run the fabric-ca-server in a cluster. -# To run the fabric-ca-server in a cluster, you must choose "postgres" -# or "mysql". -############################################################################# -db: - type: sqlite3 - datasource: fabric-ca-server.db - tls: - enabled: false - certfiles: - client: - certfile: - keyfile: - -############################################################################# -# LDAP section -# If LDAP is enabled, the fabric-ca-server calls LDAP to: -# 1) authenticate enrollment ID and secret (i.e. username and password) -# for enrollment requests; -# 2) To retrieve identity attributes -############################################################################# -ldap: - # Enables or disables the LDAP client (default: false) - # If this is set to true, the "registry" section is ignored. - enabled: false - # The URL of the LDAP server - url: ldap://:@:/ - # TLS configuration for the client connection to the LDAP server - tls: - certfiles: - client: - certfile: - keyfile: - # Attribute related configuration for mapping from LDAP entries to Fabric CA attributes - attribute: - # 'names' is an array of strings containing the LDAP attribute names which are - # requested from the LDAP server for an LDAP identity's entry - names: ['uid','member'] - # The 'converters' section is used to convert an LDAP entry to the value of - # a fabric CA attribute. - # For example, the following converts an LDAP 'uid' attribute - # whose value begins with 'revoker' to a fabric CA attribute - # named "hf.Revoker" with a value of "true" (because the boolean expression - # evaluates to true). - # converters: - # - name: hf.Revoker - # value: attr("uid") =~ "revoker*" - converters: - - name: - value: - # The 'maps' section contains named maps which may be referenced by the 'map' - # function in the 'converters' section to map LDAP responses to arbitrary values. - # For example, assume a user has an LDAP attribute named 'member' which has multiple - # values which are each a distinguished name (i.e. a DN). For simplicity, assume the - # values of the 'member' attribute are 'dn1', 'dn2', and 'dn3'. - # Further assume the following configuration. - # converters: - # - name: hf.Registrar.Roles - # value: map(attr("member"),"groups") - # maps: - # groups: - # - name: dn1 - # value: peer - # - name: dn2 - # value: client - # The value of the user's 'hf.Registrar.Roles' attribute is then computed to be - # "peer,client,dn3". This is because the value of 'attr("member")' is - # "dn1,dn2,dn3", and the call to 'map' with a 2nd argument of - # "group" replaces "dn1" with "peer" and "dn2" with "client". - maps: - groups: - - name: - value: - -############################################################################# -# Affiliations section. Fabric CA server can be bootstrapped with the -# affiliations specified in this section. Affiliations are specified as maps. -# For example: -# businessunit1: -# department1: -# - team1 -# businessunit2: -# - department2 -# - department3 -# -# Affiliations are hierarchical in nature. In the above example, -# department1 (used as businessunit1.department1) is the child of businessunit1. -# team1 (used as businessunit1.department1.team1) is the child of department1. -# department2 (used as businessunit2.department2) and department3 (businessunit2.department3) -# are children of businessunit2. -# Note: Affiliations are case sensitive except for the non-leaf affiliations -# (like businessunit1, department1, businessunit2) that are specified in the configuration file, -# which are always stored in lower case. -############################################################################# -affiliations: - org1: - - department1 - - department2 - org2: - - department1 - -############################################################################# -# Signing section -# -# The "default" subsection is used to sign enrollment certificates; -# the default expiration ("expiry" field) is "8760h", which is 1 year in hours. -# -# The "ca" profile subsection is used to sign intermediate CA certificates; -# the default expiration ("expiry" field) is "43800h" which is 5 years in hours. -# Note that "isca" is true, meaning that it issues a CA certificate. -# A maxpathlen of 0 means that the intermediate CA cannot issue other -# intermediate CA certificates, though it can still issue end entity certificates. -# (See RFC 5280, section 4.2.1.9) -# -# The "tls" profile subsection is used to sign TLS certificate requests; -# the default expiration ("expiry" field) is "8760h", which is 1 year in hours. -############################################################################# -signing: - default: - usage: - - digital signature - expiry: 8760h - profiles: - ca: - usage: - - cert sign - - crl sign - expiry: 43800h - caconstraint: - isca: true - maxpathlen: 0 - tls: - usage: - - signing - - key encipherment - - server auth - - client auth - - key agreement - expiry: 8760h - -########################################################################### -# Certificate Signing Request (CSR) section. -# This controls the creation of the root CA certificate. -# The expiration for the root CA certificate is configured with the -# "ca.expiry" field below, whose default value is "131400h" which is -# 15 years in hours. -# The pathlength field is used to limit CA certificate hierarchy as described -# in section 4.2.1.9 of RFC 5280. -# Examples: -# 1) No pathlength value means no limit is requested. -# 2) pathlength == 1 means a limit of 1 is requested which is the default for -# a root CA. This means the root CA can issue intermediate CA certificates, -# but these intermediate CAs may not in turn issue other CA certificates -# though they can still issue end entity certificates. -# 3) pathlength == 0 means a limit of 0 is requested; -# this is the default for an intermediate CA, which means it can not issue -# CA certificates though it can still issue end entity certificates. -# The "hosts" field will be used to specify Subject Alternative Names -# if the server creates a self-signed TLS certificate. -########################################################################### -csr: - cn: fabric-ca-server - keyrequest: - algo: ecdsa - size: 256 - names: - - C: US - ST: "North Carolina" - L: - O: Hyperledger - OU: Fabric - hosts: - - root-ca-f4b6dfcb4-7xdh8 - - localhost - ca: - expiry: 131400h - pathlength: 1 - -########################################################################### -# Each CA can issue both X509 enrollment certificate as well as Idemix -# Credential. This section specifies configuration for the issuer component -# that is responsible for issuing Idemix credentials. -########################################################################### -idemix: - # Specifies pool size for revocation handles. A revocation handle is an unique identifier of an - # Idemix credential. The issuer will create a pool revocation handles of this specified size. When - # a credential is requested, issuer will get handle from the pool and assign it to the credential. - # Issuer will repopulate the pool with new handles when the last handle in the pool is used. - # A revocation handle and credential revocation information (CRI) are used to create non revocation proof - # by the prover to prove to the verifier that her credential is not revoked. - rhpoolsize: 1000 - - # The Idemix credential issuance is a two step process. First step is to get a nonce from the issuer - # and second step is send credential request that is constructed using the nonce to the isuser to - # request a credential. This configuration property specifies expiration for the nonces. By default is - # nonces expire after 15 seconds. The value is expressed in the time.Duration format (see https://golang.org/pkg/time/#ParseDuration). - nonceexpiration: 15s - - # Specifies interval at which expired nonces are removed from datastore. Default value is 15 minutes. - # The value is expressed in the time.Duration format (see https://golang.org/pkg/time/#ParseDuration) - noncesweepinterval: 15m - - # Specifies the Elliptic Curve used by Identity Mixer. - # It can be any of: {"amcl.Fp256bn", "gurvy.Bn254", "amcl.Fp256Miraclbn"}. - # If unspecified, it defaults to 'amcl.Fp256bn'. - curve: amcl.Fp256bn - -############################################################################# -# BCCSP (BlockChain Crypto Service Provider) section is used to select which -# crypto library implementation to use -############################################################################# -bccsp: - default: SW - sw: - hash: SHA2 - security: 256 - filekeystore: - # The directory used for the software file-based keystore - keystore: msp/keystore - -############################################################################# -# Multi CA section -# -# Each Fabric CA server contains one CA by default. This section is used -# to configure multiple CAs in a single server. -# -# 1) --cacount -# Automatically generate non-default CAs. The names of these -# additional CAs are "ca1", "ca2", ... "caN", where "N" is -# This is particularly useful in a development environment to quickly set up -# multiple CAs. Note that, this config option is not applicable to intermediate CA server -# i.e., Fabric CA server that is started with intermediate.parentserver.url config -# option (-u command line option) -# -# 2) --cafiles -# For each CA config file in the list, generate a separate signing CA. Each CA -# config file in this list MAY contain all of the same elements as are found in -# the server config file except port, debug, and tls sections. -# -# Examples: -# fabric-ca-server start -b admin:adminpw --cacount 2 -# -# fabric-ca-server start -b admin:adminpw --cafiles ca/ca1/fabric-ca-server-config.yaml -# --cafiles ca/ca2/fabric-ca-server-config.yaml -# -############################################################################# - -cacount: - -cafiles: - -############################################################################# -# Intermediate CA section -# -# The relationship between servers and CAs is as follows: -# 1) A single server process may contain or function as one or more CAs. -# This is configured by the "Multi CA section" above. -# 2) Each CA is either a root CA or an intermediate CA. -# 3) Each intermediate CA has a parent CA which is either a root CA or another intermediate CA. -# -# This section pertains to configuration of #2 and #3. -# If the "intermediate.parentserver.url" property is set, -# then this is an intermediate CA with the specified parent -# CA. -# -# parentserver section -# url - The URL of the parent server -# caname - Name of the CA to enroll within the server -# -# enrollment section used to enroll intermediate CA with parent CA -# profile - Name of the signing profile to use in issuing the certificate -# label - Label to use in HSM operations -# -# tls section for secure socket connection -# certfiles - PEM-encoded list of trusted root certificate files -# client: -# certfile - PEM-encoded certificate file for when client authentication -# is enabled on server -# keyfile - PEM-encoded key file for when client authentication -# is enabled on server -############################################################################# -intermediate: - parentserver: - url: - caname: - - enrollment: - hosts: - profile: - label: - - tls: - certfiles: - client: - certfile: - keyfile: - -############################################################################# -# CA configuration section -# -# Configure the number of incorrect password attempts are allowed for -# identities. By default, the value of 'passwordattempts' is 10, which -# means that 10 incorrect password attempts can be made before an identity get -# locked out. -############################################################################# -cfg: - identities: - passwordattempts: 10 - -############################################################################### -# -# Operations section -# -############################################################################### -operations: - # host and port for the operations server - listenAddress: 127.0.0.1:9443 - - # TLS configuration for the operations endpoint - tls: - # TLS enabled - enabled: false - - # path to PEM encoded server certificate for the operations server - cert: - file: - - # path to PEM encoded server key for the operations server - key: - file: - - # require client certificate authentication to access all resources - clientAuthRequired: false - - # paths to PEM encoded ca certificates to trust for client authentication - clientRootCAs: - files: [] - -############################################################################### -# -# Metrics section -# -############################################################################### -metrics: - # statsd, prometheus, or disabled - provider: disabled - - # statsd configuration - statsd: - # network type: tcp or udp - network: udp - - # statsd server address - address: 127.0.0.1:8125 - - # the interval at which locally cached counters and gauges are pushed - # to statsd; timings are pushed immediately - writeInterval: 10s - - # prefix is prepended to all emitted statsd metrics - prefix: server diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server.db b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/fabric-ca-server.db deleted file mode 100644 index cee2e63bf55b1284ff95482620a9fc3b28bad137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 zcmeI*O>Em(egJUE@~2`CGud%9IYr}4uu=U*eM?ykQc|R4S)y#}!Rdr3hV*_5CDO@F7WC%7M6V5+wL!PQxIE7LWZfW_f&7mv)hZQ0!x)xe~F@V ztbb#6_lEzeD*KPALTaBXJPk#ofh~U*8LH4a)p~6a8Gf;)i~js!$)7Lha$A0(XEt<0 zHAkmsXmqN|NVDGl_2VSrv?YkBW#`9bnu6Ku&K71Mp{r|tRWrBzXxLGWk>6C?2p`<; zZ21k;*UylAipLB`Y6rDvi)o=gexppj#HQJTpJDf?a<1ejxBN$i3`Z5J{w!O4I(1ez zpGP3@YUTct&*yW0er^NzaK^6vG&e#C6vE;>bk8mfsw8kV7|yb%lCeZK;B( z;uF7e50asXwaYXORqWv_=`XRB(pU{$o!FMYEeubQX6UU}8?$#OJ8lF}HAy!NB$=lj zq1zqkhNWquc4w0N1~2Q(0)gejjlaY#0k`ql{X#vyzUa$7x#=CI z8hOyUwXmwVGFBa*FWy!~XBO)$Pp1m8QkK5Gy5#%h6ZcEXu3^W}J61Fakk*AY=J;{ZPAzhNw5+6xZjvhIR|R4g>yjKEs#UH+9+@o1*hfaLIwd=DkJV^M^N`#JCct z!SUUGchx?G#ur33Vs^L$VH|_9Fo#Ks$`JbYWE;S}yOG88R zv>|A6%h3^ALf0IpovPYtN7t{T&zAp70oZSXL(NA^OTNdC-Jf5^as%1%RA_aj$?Eb{ z%^f@55PTfxby??`@NH$E4WI8VRDUUo*Qy){M3)zRna4M^42J;jmlLNI;-~Hhz9&!I zUr2Tvadu+o`t*qC-17#|sZnDVZqoGb=vesb=%b}CAu>PR!W^F{{@;n*Fxq|jPX{j_ zJg`Y$Dt04t4o%MWsd3Rc=6C&1HK9ET^EU+6j)8ESnhw7=#+E?*8@COI&U#G`w)X=c zF8V(6-PF^@qkPbQ@!&!8Th_=KBo=+_quaCCL+15og!^ka+rr8}x<2^s+R1A4-U?oY z1q46<1V8`;KmY_l;Fne4RbXND@yq##Yo7;}-R|W+o;%hsW4Bt47RyYsjE&*)ORwPiHtUq@!T0oQ5#zu_IwH6XBs`U@trN_vF!CMS%z^O>8Kn|wdYPZo>|$a zbC>X}og>${F1KZ%CUbg@d^0&-{MX#8z`WB+)%tj@Q+HTZ`bz4!)Y#z^rmAv{R4p&= zR1URxvzhB(=zJuV*`>&Q{{T-C8vVG@+-)6k?e}BlsNBqnOi8~#t4E&IhjzPqWVI_v z)F(|UOYVi3RC|}9MVdBK`-WKPCU-K-PK9QYp{5b77Yp5kdiNyPJ!~{ak#6dkE50A5 zalO7Cq3yZVZ`wlJmXKl~q~QruO`brNE@YD#rIZ%kuF6^?NHQaZJQTQ zQEMq?Q0S_y;ZdoU-Rbsw?+0qCdS8!M-@WRyyuLVG!Cr#gR<+9*g$2$ON{Du<$*R(g z=tns{6*^R7`{@!AQYL>`W;1l6Q5-6}<>o;nnoPEOZ*nTww=4{NdRM_II1`y}jAF9~ zrjeE^CO7V6$ojVeuh_J0Ra#I0T2KI5C8!X009sH0T2KI5V$h}gy*r_F=@JB zZ966g=e?eX?(qzm=R?mo-BWWsbITsziap6<-T$9k`cv1v-^Wj|fB*=900@8p2;3!s z@7Cv5eJ@_DtuH@+{=1vwp*xfiBk_bB3khgL_HxXx-N&vP;8q_;2%F3d`8Bek>n;x z;%B@Bx9uOly?wo7+gfNgoyq%CY@w9d%cSt{wAiU$E|W7Q(btIqI=I>a@=WDW#gp>b1;8lVtJn1FyiaIgUC@Q^7JzH@MXCF*n@1 zppI!Je~e2jF=x@fq!siGn{P<%WLG$eHn;*mV3jI!%=1|P2FLVHh@+N~y6I2-H@>`V+h#CPOQ4o1QWXL_q4)|5iWBe{J%;^;_)DP@8j zqYMriYLG8+18z^Z(n6PMLyoChX@g2>TyyVNt@>5Xy*E|88X9(LCsC5)BLjxItoq=% zQA-CqVw0|MG?%7F=V@<|izF$9O{Y@lX?uOZ?o(ujqO*nkFsoGaG{yCpOhMq-;xHfN zduD6cZr2&{cr#oPt2M76=yH}XMxxbGH-Dfc`C4-jRys@_A%#!q=5bCL>Q%8w>cKpl zO*QKmbdsYY7P8C?SlYWg;H~SquP_v6UAp}OM^p6#OEoE+U|$WHQTP*@E*&1m#gZC{ zUNEsX*>5N@Ix7~v!F(kdEm3tlbCF}y40WQ=g?^z@ltHfjNl}c5QAb=OvWV=;eP%VyFU3W8out~U%BhIo4D(rrLVg_-)`liO0H8e zlAH9P#rAvZ&=gwIqrJ4E7_`Ff(Y(aqc=12Pk77gL zCzEYnPA3OSCYufE-cn+8o{b;pNalYPKX$L;hZl$XkfKa<6_uVyw;SD>8f;dJ(F?iF z^>ADXO5s9FQlnilly8Wc%z;--C!5uip)Q8=BuDAjff&c#6h%rD$MUI6s*yXCnSw%V zCVh}SXvPwCDpTm3Cq|-I(=X08kB;dabHJRX_Ue>MD{`~f&KJ0T1!aq3gX)FCwPy00@8p2!H?xfB*=9 z00@8p2;6yr^8AYz?sq*sKUcz~uDt7+KkNR#{g?jkJStQW1V8`;KmY_l00ck)1V8`; zKmY_l;4KBLzvVyv1Ho@u5M&1d5C8!X009sH0T2KI5C8!X009uVdjfF(|L$EAs1XQ& z00@8p2!H?xfB*=900@8p2)t_n>-YcR`~UA+70Lqv5C8!X009sH0T2KI5C8!X0D-$D zVBPKmY_l00ck)1V8`;KmY_l00cnbtp%3c3$B&970cr+5_>5C8!X009sH0T2KI5C8!X009sHfv;J>`U=48e89r8 ZXWdSmzuY@D6X1D6VsLKBW6vuD{~K2#5P|>z diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/7d5d91f1f6e6ac09cba8fbee30b907920095c657758558d61d690ceba998cc90_sk b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/7d5d91f1f6e6ac09cba8fbee30b907920095c657758558d61d690ceba998cc90_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/85e1f8ec6b2fe4c0aab2fc044c58065548ae1b61716e4bc6aa994364290171a4_sk b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/85e1f8ec6b2fe4c0aab2fc044c58065548ae1b61716e4bc6aa994364290171a4_sk deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerRevocationPrivateKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerRevocationPrivateKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerSecretKey b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/msp/keystore/IssuerSecretKey deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/fabric-ca-server/tls-cert.pem deleted file mode 100644 index e69de29..0000000 diff --git a/hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/root-ca/root-tls-cert.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem b/hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem deleted file mode 100644 index 8b13789..0000000 --- a/hyperledger-fabric-network/ca/fabric-ca/verifier-ca/tls-cert.pem +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml deleted file mode 100644 index 2097500..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/Chart.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v2 -name: cbo-ca -description: Hyperledger Fabric intermediate CA for CBO -type: application -version: 0.1.0 -appVersion: 1.5.12 \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml deleted file mode 100644 index 90ee72f..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/deployment.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.intermediateCA.enabled -}} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Values.intermediateCA.name }} - namespace: {{ .Values.intermediateCA.namespace }} - labels: - app: {{ .Values.intermediateCA.name }} -spec: - replicas: 1 - selector: - matchLabels: - app: {{ .Values.intermediateCA.name }} - template: - metadata: - labels: - app: {{ .Values.intermediateCA.name }} - spec: - containers: - - name: fabric-ca - image: "{{ .Values.intermediateCA.image.repository }}:{{ .Values.intermediateCA.image.tag }}" - imagePullPolicy: {{ .Values.intermediateCA.image.pullPolicy }} - ports: - - containerPort: {{ .Values.intermediateCA.port }} - name: ca-port - env: - - name: FABRIC_CA_HOME - value: /etc/hyperledger/fabric-ca-server - - name: FABRIC_CA_SERVER_CA_NAME - value: {{ .Values.intermediateCA.name }} - - name: FABRIC_CA_SERVER_PORT - value: "{{ .Values.intermediateCA.port }}" - - name: FABRIC_CA_SERVER_PARENT_URL - value: "https://{{ .Values.intermediateCA.parentID }}:{{ .Values.intermediateCA.parentSecret }}@{{ .Values.intermediateCA.parentHost }}:7054" - - name: FABRIC_CA_SERVER_TLS_ENABLED - value: "true" - - name: FABRIC_CA_SERVER_CSR_HOSTS - value: "{{ join "," .Values.intermediateCA.csr.hosts }}" - volumeMounts: - - name: fabric-ca-data - mountPath: /etc/hyperledger/fabric-ca-server - volumes: - - name: fabric-ca-data - persistentVolumeClaim: - claimName: pvc-{{ .Values.intermediateCA.name }} -{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml deleted file mode 100644 index 0e654d6..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/pvc.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if .Values.intermediateCA.enabled -}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: pvc-{{ .Values.intermediateCA.name }} - namespace: {{ .Values.intermediateCA.namespace }} - labels: - app: {{ .Values.intermediateCA.name }} -spec: - accessModes: - - {{ .Values.intermediateCA.storage.accessMode }} - resources: - requests: - storage: {{ .Values.intermediateCA.storage.size }} - storageClassName: {{ .Values.intermediateCA.storage.storageClass }} -{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml deleted file mode 100644 index da5f903..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/templates/service.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if .Values.intermediateCA.enabled -}} -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.intermediateCA.name }} - namespace: {{ .Values.intermediateCA.namespace }} - labels: - app: {{ .Values.intermediateCA.name }} -spec: - selector: - app: {{ .Values.intermediateCA.name }} - ports: - - name: ca-port - port: {{ .Values.intermediateCA.port }} - targetPort: ca-port -{{- end -}} \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml b/hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml deleted file mode 100644 index 25b0f45..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/cbo-ca/values.yaml +++ /dev/null @@ -1,41 +0,0 @@ -intermediateCA: - enabled: true - name: cbo-ca - namespace: hlf-ca - - image: - repository: hyperledger/fabric-ca - tag: 1.5.12 - pullPolicy: IfNotPresent - - port: 7054 - - storage: - accessMode: ReadWriteOnce - size: 2Gi - storageClass: do-block-storage - pvcName: pvc-cbo-ca # Added from second block - - parentID: cbo-ca - parentSecret: cbocapw - parentHost: root-ca.hlf-ca.svc.cluster.local - - csr: - cn: cbo-ca # Added from second block - hosts: - - cbo-ca - - cbo-ca.hlf-ca.svc.cluster.local - - localhost - - tls: - enabled: true - secretName: cbo-ca-tls-cert - - msp: - secretName: cbo-ca-msp - - bootstrapUser: cbo-ca - bootstrapPassword: cbocapw - - service: - port: 7054 \ No newline at end of file From 94d92b1c58fca4c78cc46e7feca87f63d9070e81 Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:01:06 -0400 Subject: [PATCH 09/11] Update README.md --- hyperledger-fabric-network/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hyperledger-fabric-network/README.md b/hyperledger-fabric-network/README.md index 112ccd5..46a9387 100644 --- a/hyperledger-fabric-network/README.md +++ b/hyperledger-fabric-network/README.md @@ -1,4 +1,5 @@ -![alt text]() +Treetracker HLF Network +

🌳 Blockchain-based Tree Tracking Network 🌳

A production-ready Hyperledger Fabric network for transparent tree planting and carbon offset tracking

From 46f40e871949d70c1254cf6544d5dac35d41db5c Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:06:45 -0400 Subject: [PATCH 10/11] Certificate Authority infrastructure for the Hyperledger Fabric network, including Root CA, Intermediate CAs, deployment scripts --- .../ca/DOCUMENTATION_INDEX.md | 183 +++++++ hyperledger-fabric-network/ca/README.md | 275 +++++++++++ .../fabric-orderer-helm-chart/Chart.yaml | 7 - .../configtx/configtx.yaml | 99 ---- .../create-orderer-secrets.sh | 21 - .../crypto-config.yaml | 11 - .../example.com/ca/ca.example.com-cert.pem | 15 - .../files/crypto/example.com/ca/priv_sk | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../files/crypto/example.com/msp/config.yaml | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer0.example.com/msp/config.yaml | 14 - .../orderer0.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer0.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer0.example.com/tls/ca.crt | 15 - .../orderer0.example.com/tls/server.crt | 15 - .../orderer0.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer1.example.com/msp/config.yaml | 14 - .../orderer1.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer1.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer1.example.com/tls/ca.crt | 15 - .../orderer1.example.com/tls/server.crt | 15 - .../orderer1.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer2.example.com/msp/config.yaml | 14 - .../orderer2.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer2.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer2.example.com/tls/ca.crt | 15 - .../orderer2.example.com/tls/server.crt | 15 - .../orderer2.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer3.example.com/msp/config.yaml | 14 - .../orderer3.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer3.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer3.example.com/tls/ca.crt | 15 - .../orderer3.example.com/tls/server.crt | 15 - .../orderer3.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer4.example.com/msp/config.yaml | 14 - .../orderer4.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer4.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer4.example.com/tls/ca.crt | 15 - .../orderer4.example.com/tls/server.crt | 15 - .../orderer4.example.com/tls/server.key | 5 - .../files/crypto/example.com/tlsca/priv_sk | 5 - .../tlsca/tlsca.example.com-cert.pem | 15 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../users/Admin@example.com/msp/config.yaml | 14 - .../Admin@example.com/msp/keystore/priv_sk | 5 - .../msp/signcerts/Admin@example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../users/Admin@example.com/tls/ca.crt | 15 - .../users/Admin@example.com/tls/client.crt | 14 - .../users/Admin@example.com/tls/client.key | 5 - .../example.com/ca/ca.example.com-cert.pem | 15 - .../example.com/ca/priv_sk | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../example.com/msp/config.yaml | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer0.example.com/msp/config.yaml | 14 - .../orderer0.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer0.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer0.example.com/tls/ca.crt | 15 - .../orderer0.example.com/tls/server.crt | 15 - .../orderer0.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer1.example.com/msp/config.yaml | 14 - .../orderer1.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer1.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer1.example.com/tls/ca.crt | 15 - .../orderer1.example.com/tls/server.crt | 15 - .../orderer1.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer2.example.com/msp/config.yaml | 14 - .../orderer2.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer2.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer2.example.com/tls/ca.crt | 15 - .../orderer2.example.com/tls/server.crt | 15 - .../orderer2.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer3.example.com/msp/config.yaml | 14 - .../orderer3.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer3.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer3.example.com/tls/ca.crt | 15 - .../orderer3.example.com/tls/server.crt | 15 - .../orderer3.example.com/tls/server.key | 5 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../orderer4.example.com/msp/config.yaml | 14 - .../orderer4.example.com/msp/keystore/priv_sk | 5 - .../signcerts/orderer4.example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../orderers/orderer4.example.com/tls/ca.crt | 15 - .../orderer4.example.com/tls/server.crt | 15 - .../orderer4.example.com/tls/server.key | 5 - .../example.com/tlsca/priv_sk | 5 - .../tlsca/tlsca.example.com-cert.pem | 15 - .../msp/cacerts/ca.example.com-cert.pem | 15 - .../users/Admin@example.com/msp/config.yaml | 14 - .../Admin@example.com/msp/keystore/priv_sk | 5 - .../msp/signcerts/Admin@example.com-cert.pem | 14 - .../msp/tlscacerts/tlsca.example.com-cert.pem | 15 - .../users/Admin@example.com/tls/ca.crt | 15 - .../users/Admin@example.com/tls/client.crt | 14 - .../users/Admin@example.com/tls/client.key | 5 - .../genesis.block.base64.txt | 1 - .../orderer.genesis.block | Bin 15310 -> 0 bytes .../rendered-orderers.yaml | 447 ------------------ .../templates/pvc.yaml | 15 - .../templates/secret-msp.yaml | 17 - .../templates/secret-tls.yaml | 16 - .../templates/service-orderer.yaml | 16 - .../templates/statefulset-orderer.yaml | 78 --- .../fabric-orderer-helm-chart/values.yaml | 38 -- .../greenstand-ca/greenstand-values.yaml.bkp | 40 -- .../values.yaml.bkp-startingPoint | 41 -- .../ca/helm-charts/greenstand-peer/Chart.yaml | 6 - .../greenstand-peer/templates/_helpers.tpl | 3 - .../greenstand-peer/templates/deployment.yaml | 145 ------ .../greenstand-peer/templates/pvc.yaml | 12 - .../greenstand-peer/templates/service.yaml | 21 - .../helm-charts/greenstand-peer/values.yaml | 53 --- 133 files changed, 458 insertions(+), 2429 deletions(-) create mode 100644 hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md create mode 100644 hyperledger-fabric-network/ca/README.md delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/orderer.genesis.block delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml delete mode 100644 hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml diff --git a/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md b/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md new file mode 100644 index 0000000..cbbe0c5 --- /dev/null +++ b/hyperledger-fabric-network/ca/DOCUMENTATION_INDEX.md @@ -0,0 +1,183 @@ +# CA Infrastructure Documentation Index + +## Document Overview + +This directory contains comprehensive documentation for the Hyperledger Fabric Certificate Authority infrastructure. The documentation is organized into several key areas covering different aspects of CA management and operations. + +## Documentation Structure + +### 📋 Core Documentation + +| Document | Purpose | Audience | Last Updated | +|----------|---------|----------|--------------| +| [`README.md`](README.md) | Overview and quick start guide | All users | 2024-09-02 | +| [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) | Technical specifications and architecture | Engineers, Architects | 2024-09-02 | +| [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) | Daily operations and maintenance | Operations Teams | 2024-09-02 | +| [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) | Security protocols and incident response | Security Teams | 2024-09-02 | + +### 📁 Directory Documentation + +| Component | Location | Documentation | +|-----------|----------|---------------| +| **Helm Charts** | `helm-charts/` | Individual chart README files | +| **Scripts** | `scripts/` | Script headers and inline documentation | +| **Fabric CA Configs** | `fabric-ca/` | Configuration file comments | +| **Certificate Monitor** | `../monitoring/` | Integration documentation | + +## Quick Reference Guide + +### 🚀 Getting Started + +**New to CA infrastructure?** +1. Start with [`README.md`](README.md) for overview and quick start +2. Review [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) for architecture understanding +3. Follow deployment procedures in scripts documentation + +**Operations team?** +1. Focus on [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) +2. Review daily/weekly/monthly procedures +3. Familiarize with troubleshooting procedures + +**Security team?** +1. Study [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) +2. Review incident response procedures +3. Understand compliance requirements + +### 🔍 Common Tasks + +| Task | Primary Document | Supporting Documents | +|------|------------------|---------------------| +| **Deploy new CA** | README.md | TECHNICAL_SPECS.md | +| **Certificate renewal** | OPERATIONAL_PROCEDURES.md | SECURITY_PROCEDURES.md | +| **Backup/restore** | OPERATIONAL_PROCEDURES.md | TECHNICAL_SPECS.md | +| **Incident response** | SECURITY_PROCEDURES.md | OPERATIONAL_PROCEDURES.md | +| **Performance tuning** | TECHNICAL_SPECS.md | OPERATIONAL_PROCEDURES.md | +| **Security hardening** | SECURITY_PROCEDURES.md | TECHNICAL_SPECS.md | + +## Document Contents Summary + +### [`README.md`](README.md) +- **Overview**: CA infrastructure introduction and architecture +- **Quick Start**: Step-by-step deployment guide +- **Directory Structure**: File and folder organization +- **Basic Operations**: Common commands and procedures +- **Troubleshooting**: Common issues and solutions +- **Integration**: How CA integrates with other systems + +### [`TECHNICAL_SPECS.md`](TECHNICAL_SPECS.md) +- **System Architecture**: Technical design and component relationships +- **Container Specifications**: Resource requirements and configurations +- **Network Configuration**: Security, ports, and communication +- **API Documentation**: REST APIs and CLI commands +- **Performance Metrics**: Scalability limits and capacity planning +- **Configuration Management**: Environment variables and ConfigMaps +- **Version Management**: Upgrade procedures and compatibility + +### [`OPERATIONAL_PROCEDURES.md`](OPERATIONAL_PROCEDURES.md) +- **Standard Operating Procedures**: Daily, weekly, monthly tasks +- **Incident Response**: Emergency procedures and escalation +- **Maintenance Procedures**: Planned maintenance and updates +- **Monitoring Procedures**: Health checks and performance monitoring +- **Backup/Restore**: Complete data protection procedures +- **Change Management**: Configuration and version changes + +### [`SECURITY_PROCEDURES.md`](SECURITY_PROCEDURES.md) +- **Security Framework**: Objectives and access control +- **Cryptographic Security**: Key management and certificate validation +- **Network Security**: Segmentation and TLS configuration +- **Incident Response**: Security incident classification and response +- **Compliance**: Audit procedures and regulatory requirements +- **Security Hardening**: Container and network security measures + +## Documentation Maintenance + +### 📝 Update Schedule + +| Document Type | Update Frequency | Trigger Events | +|---------------|------------------|----------------| +| **README.md** | Quarterly | Major feature additions, structural changes | +| **TECHNICAL_SPECS.md** | Bi-annually | Version upgrades, architecture changes | +| **OPERATIONAL_PROCEDURES.md** | Monthly | Process improvements, new procedures | +| **SECURITY_PROCEDURES.md** | Quarterly | Security policy changes, incident learnings | + +### ✍️ Contributing to Documentation + +#### Documentation Standards +- **Format**: Markdown with consistent styling +- **Code Blocks**: Include language identifiers and executable examples +- **Version Control**: All changes tracked in git +- **Review Process**: Technical review required for procedure changes + +#### Update Process +1. **Identify Changes**: Document what needs updating +2. **Draft Updates**: Create updated content following standards +3. **Technical Review**: Review for accuracy and completeness +4. **Security Review**: Security procedures require security team review +5. **Approval**: Platform lead approval for operational changes +6. **Deployment**: Update files and notify relevant teams + +### 🔄 Document Relationships + +```mermaid +graph LR + A[README.md] --> B[TECHNICAL_SPECS.md] + A --> C[OPERATIONAL_PROCEDURES.md] + B --> C + B --> D[SECURITY_PROCEDURES.md] + C --> D + + E[Scripts] --> C + F[Helm Charts] --> A + F --> B + G[Monitoring] --> C + G --> D +``` + +## Additional Resources + +### 🔗 External References + +| Resource | Link | Purpose | +|----------|------|---------| +| **Hyperledger Fabric CA Documentation** | [Official Docs](https://hyperledger-fabric-ca.readthedocs.io/) | Official reference | +| **Kubernetes Documentation** | [k8s.io](https://kubernetes.io/docs/) | Platform reference | +| **Helm Documentation** | [helm.sh](https://helm.sh/docs/) | Deployment tools | +| **Security Best Practices** | [NIST Framework](https://www.nist.gov/cyberframework) | Security guidelines | + +### 📞 Support and Contact + +| Type | Contact | Purpose | +|------|---------|---------| +| **Technical Support** | Platform Team | Infrastructure issues | +| **Security Issues** | Security Team | Security incidents, vulnerabilities | +| **Documentation Updates** | Documentation Team | Content improvements | +| **Emergency Escalation** | On-call Manager | Critical incidents | + +## Version History + +| Version | Date | Changes | Author | +|---------|------|---------|--------| +| 1.0 | 2024-09-02 | Initial documentation creation | System | +| | | Complete CA infrastructure documentation | | +| | | Security procedures and compliance | | +| | | Operational procedures and monitoring | | + +## Compliance and Governance + +### 📋 Document Classification +- **README.md**: Internal Use +- **TECHNICAL_SPECS.md**: Internal Use +- **OPERATIONAL_PROCEDURES.md**: Internal Use +- **SECURITY_PROCEDURES.md**: Confidential + +### 🔒 Access Control +- **Read Access**: All development and operations team members +- **Write Access**: Platform leads, documentation maintainers +- **Security Docs**: Security team approval required for changes + +### 📊 Usage Analytics +- Documentation access patterns monitored +- Most frequently accessed sections identified +- User feedback collected for improvements + +This documentation index provides a comprehensive overview of all CA infrastructure documentation, helping users quickly find the information they need for their specific roles and tasks. diff --git a/hyperledger-fabric-network/ca/README.md b/hyperledger-fabric-network/ca/README.md new file mode 100644 index 0000000..9f2b387 --- /dev/null +++ b/hyperledger-fabric-network/ca/README.md @@ -0,0 +1,275 @@ +# Hyperledger Fabric Certificate Authority (CA) Documentation + +This directory contains the complete Certificate Authority infrastructure for the Hyperledger Fabric network, including Root CA, Intermediate CAs, deployment scripts, and management tools. + +## Overview + +The CA infrastructure provides: +- **Root CA**: Central certificate authority for the network +- **Intermediate CAs**: Organization-specific certificate authorities (CBO, Investor, Verifier, Greenstand) +- **Automated enrollment**: Scripts for identity registration and certificate enrollment +- **Kubernetes deployment**: Helm charts for scalable CA deployment +- **Backup/restore**: Complete CA data backup and restoration capabilities + +## Directory Structure + +``` +ca/ +├── helm-charts/ # Helm deployment charts +│ ├── root-ca/ # Root CA deployment +│ ├── cbo-ca/ # CBO organization CA +│ ├── investor-ca/ # Investor organization CA +│ ├── verifier-ca/ # Verifier organization CA +│ ├── greenstand-ca/ # Greenstand organization CA +│ └── fabric-ca-client/ # CA client pod deployment +├── scripts/ # Management and deployment scripts +│ ├── create-ca-secrets.sh # Kubernetes secret creation +│ ├── enroll-admin.sh # Admin enrollment +│ ├── register-identities.sh # Identity registration +│ ├── enroll-ica.sh # Intermediate CA enrollment +│ ├── backup-ca.sh # CA backup script +│ └── restore-ca.sh # CA restoration script +├── fabric-ca/ # CA server configurations +│ ├── root-ca/ +│ ├── cbo-ca/ +│ ├── investor-ca/ +│ ├── verifier-ca/ +│ └── greenstand-ca/ +└── README.md # This documentation +``` + +## Certificate Authority Hierarchy + +``` +Root CA (root-ca) +├── CBO-CA (cbo-ca) # CBO organization certificates +├── Investor-CA (investor-ca) # Investor organization certificates +├── Verifier-CA (verifier-ca) # Verifier organization certificates +└── Greenstand-CA (greenstand-ca) # Greenstand organization certificates +``` + +## Quick Start + +### 1. Deploy Root CA +```bash +cd helm-charts/root-ca +helm install root-ca . -n hlf-ca --create-namespace +``` + +### 2. Deploy CA Client +```bash +cd helm-charts/fabric-ca-client +kubectl apply -f fabric-ca-client.yaml +``` + +### 3. Enroll Admin +```bash +cd scripts +./enroll-admin.sh +``` + +### 4. Register Intermediate CAs +```bash +./register-identities.sh +``` + +### 5. Deploy Intermediate CAs +```bash +cd ../helm-charts/cbo-ca +helm install cbo-ca . -n hlf-ca + +cd ../investor-ca +helm install investor-ca . -n hlf-ca + +cd ../verifier-ca +helm install verifier-ca . -n hlf-ca +``` + +### 6. Enroll Intermediate CAs +```bash +cd ../../scripts +./enroll-ica.sh +``` + +### 7. Create Kubernetes Secrets +```bash +./create-ca-secrets.sh +``` + +## Configuration + +### Root CA Configuration +- **Image**: hyperledger/fabric-ca:1.5.12 +- **Port**: 7054 +- **Storage**: 2Gi persistent volume +- **TLS**: Enabled with custom certificates +- **Database**: SQLite3 (configurable to PostgreSQL/MySQL) + +### Intermediate CA Configuration +- **Parent**: Root CA +- **Organizations**: CBO, Investor, Verifier, Greenstand +- **Auto-enrollment**: Configured for MSP and TLS certificates +- **Storage**: 2Gi per CA instance + +## Management Scripts + +### Identity Management +```bash +# Enroll admin identity +./enroll-admin.sh + +# Register new intermediate CA +./register-identities.sh + +# Enroll intermediate CAs +./enroll-ica.sh +``` + +### Secret Management +```bash +# Create all CA secrets +./create-ca-secrets.sh + +# Backup CA data +./backup-ca.sh + +# Restore CA data +./restore-ca.sh +``` + +## Helm Charts + +### Root CA Chart +- **Location**: `helm-charts/root-ca/` +- **Purpose**: Deploys Root Certificate Authority +- **Features**: TLS-enabled, persistent storage, custom CSR configuration + +### Intermediate CA Charts +- **Locations**: `helm-charts/{org}-ca/` +- **Purpose**: Deploy organization-specific CAs +- **Features**: Parent CA integration, automatic enrollment, TLS configuration + +### CA Client Chart +- **Location**: `helm-charts/fabric-ca-client/` +- **Purpose**: Provides fabric-ca-client for enrollment operations +- **Features**: Persistent client data, configuration management + +## Operations + +### Daily Operations +```bash +# Check CA pod status +kubectl get pods -n hlf-ca + +# View CA logs +kubectl logs -n hlf-ca -l app=root-ca + +# Check certificate expiry +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + fabric-ca-client certificate list --tls.certfiles /data/hyperledger/fabric-ca-client/root-ca/tls-cert.pem +``` + +### Backup Operations +```bash +# Create backup +./scripts/backup-ca.sh + +# Verify backup contents +tar -tzf fabric-ca-backup-*.tgz | head -20 + +# Store backup securely (off-cluster) +``` + +### Certificate Renewal +```bash +# Check certificate expiry +for ca in root-ca cbo-ca investor-ca verifier-ca; do + echo "Checking $ca certificate expiry..." + kubectl exec -n hlf-ca $ca-0 -- \ + openssl x509 -in /etc/hyperledger/fabric-ca-server/ca-cert.pem -noout -enddate +done + +# Renew certificates (if needed) +# Follow certificate renewal runbook +``` + +## Security Considerations + +### Access Control +- **RBAC**: Kubernetes RBAC limits CA access +- **Network policies**: Restrict CA network access +- **Secrets**: TLS certificates stored as Kubernetes secrets +- **Encryption**: All CA communications use TLS + +### Certificate Management +- **Root CA**: Highest security - air-gapped if possible +- **Intermediate CAs**: Organization-isolated +- **Key protection**: Private keys stored securely in persistent volumes +- **Certificate rotation**: Regular certificate renewal procedures + +## Troubleshooting + +### Common Issues + +#### CA Pod Not Starting +```bash +# Check pod status and events +kubectl describe pod -n hlf-ca root-ca-0 + +# Check persistent volume claims +kubectl get pvc -n hlf-ca + +# Verify TLS certificates +kubectl get secret -n hlf-ca | grep tls +``` + +#### Enrollment Failures +```bash +# Check CA client connectivity +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + fabric-ca-client getcainfo -u https://root-ca.hlf-ca.svc.cluster.local:7054 + +# Verify TLS certificate +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + ls -la /data/hyperledger/fabric-ca-client/root-ca/ +``` + +#### Certificate Issues +```bash +# Validate certificate chain +kubectl exec -n hlf-ca fabric-ca-client-0 -- \ + openssl verify -CAfile /data/hyperledger/fabric-ca-client/root-ca/msp/cacerts/root-ca-hlf-ca-svc-cluster-local-7054.pem \ + /data/hyperledger/fabric-ca-client/cbo-ca/msp/signcerts/cert.pem +``` + +## Integration + +### With Peer Networks +- CAs provide certificates for peer MSP and TLS +- Certificate secrets automatically created for peer deployments +- Integration with certificate monitoring system + +### With Certificate Monitoring +- CA certificates monitored for expiry +- Automated alerts for CA certificate issues +- Health metrics exported to Prometheus + +### With CI/CD Pipeline +- CA validation in deployment pipeline +- Automated certificate checks +- Integration with Jenkins/GitHub Actions + +## Maintenance + +### Regular Tasks +- **Weekly**: Check CA pod health and logs +- **Monthly**: Review certificate expiry dates +- **Quarterly**: Perform CA backup +- **Annually**: Plan certificate renewal cycle + +### Emergency Procedures +- **CA failure**: Restore from backup using restore-ca.sh +- **Certificate expiry**: Emergency certificate renewal +- **Security breach**: Revoke compromised certificates + +This CA infrastructure provides a robust foundation for certificate management in your Hyperledger Fabric network with comprehensive automation, monitoring, and operational procedures. diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml deleted file mode 100644 index ff6c044..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/Chart.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: v2 -name: fabric-orderer -description: Hyperledger Fabric Raft-based Orderer Helm Chart -type: application -version: 0.1.0 -appVersion: "2.5" - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml deleted file mode 100644 index 1cb3ca3..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/configtx/configtx.yaml +++ /dev/null @@ -1,99 +0,0 @@ -Organizations: - - &OrdererOrg - Name: OrdererMSP - ID: OrdererMSP - MSPDir: ../crypto-config/ordererOrganizations/example.com/msp - #MSPDir: crypto-config/ordererOrganizations/example.com/msp - Policies: - Readers: - Type: Signature - Rule: "OR('OrdererMSP.member')" - Writers: - Type: Signature - Rule: "OR('OrdererMSP.member')" - Admins: - Type: Signature - Rule: "OR('OrdererMSP.admin')" - -Orderer: &Orderer - OrdererType: etcdraft - Addresses: - - orderer0:7050 - - orderer1:7050 - - orderer2:7050 - - orderer3:7050 - - orderer4:7050 - BatchTimeout: 2s - BatchSize: - MaxMessageCount: 10 - AbsoluteMaxBytes: 99 MB - PreferredMaxBytes: 512 KB - EtcdRaft: - Consenters: - - Host: orderer0 - Port: 7050 - ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt - ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt - #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt - #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt - - Host: orderer1 - Port: 7050 - ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt - ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt - #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt - #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt - - Host: orderer2 - Port: 7050 - ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt - ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt - #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt - #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt - - Host: orderer3 - Port: 7050 - ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt - ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt - #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt - #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt - - Host: orderer4 - Port: 7050 - ClientTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt - ServerTLSCert: ../crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt - #ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt - #ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt - Organizations: - - *OrdererOrg - Policies: - Readers: - Type: ImplicitMeta - Rule: "ANY Readers" - Writers: - Type: ImplicitMeta - Rule: "ANY Writers" - Admins: - Type: ImplicitMeta - Rule: "MAJORITY Admins" - BlockValidation: - Type: ImplicitMeta - Rule: "ANY Writers" - -Channel: &ChannelDefaults - Policies: - Readers: - Type: ImplicitMeta - Rule: "ANY Readers" - Writers: - Type: ImplicitMeta - Rule: "ANY Writers" - Admins: - Type: ImplicitMeta - Rule: "MAJORITY Admins" - -Profiles: - SampleMultiNodeEtcdRaft: - <<: *ChannelDefaults - Orderer: - <<: *Orderer - Consortiums: - SampleConsortium: - Organizations: [] - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh deleted file mode 100644 index 581fb4d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/create-orderer-secrets.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -ORDERERS=(orderer0 orderer1 orderer2 orderer3 orderer4) -ORG_PATH=./crypto-config/ordererOrganizations/example.com/orderers - -for ORDERER in "${ORDERERS[@]}"; do - echo "Creating secrets for $ORDERER..." - - kubectl create secret generic ${ORDERER}-tls \ - --from-file=server.crt=${ORG_PATH}/${ORDERER}.example.com/tls/server.crt \ - --from-file=server.key=${ORG_PATH}/${ORDERER}.example.com/tls/server.key \ - --from-file=ca.crt=${ORG_PATH}/${ORDERER}.example.com/tls/ca.crt \ - -n hyperledger-fabric - - kubectl create secret generic ${ORDERER}-msp \ - --from-file=${ORG_PATH}/${ORDERER}.example.com/msp \ - -n hyperledger-fabric - - echo "$ORDERER secrets created." -done - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml deleted file mode 100644 index b513e24..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/crypto-config.yaml +++ /dev/null @@ -1,11 +0,0 @@ -OrdererOrgs: - - Name: Orderer - Domain: example.com - EnableNodeOUs: true - Specs: - - Hostname: orderer0 - - Hostname: orderer1 - - Hostname: orderer2 - - Hostname: orderer3 - - Hostname: orderer4 - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk deleted file mode 100644 index 85f7c0c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/ca/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgJDYIlAdchIQdCR6/ -ggSlDNTaRGs1RAL9tSLFPXGvfKWhRANCAATjQ+WGqox14vFIJW8gpjlsw7kfHYpO -d6Yrhg03Zluo/g/vBvBIX4HHWw4pE8Bl8QG0sRcGq8zXJYVRZoeITRTS ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk deleted file mode 100644 index d62578a..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQySnHebEP69wbBGa -0bxt29/qcUQqcXflIsE8gzUU6FKhRANCAAT+vWt1m2R8uyNtd9v3MJmYq+mg9+Oz -ZGyYnIK3WXPFzs3UBUWPDY4wChJXYb/nRfQ23soK5QPTtrMXnsIUmKNk ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem deleted file mode 100644 index cc57815..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICHzCCAcWgAwIBAgIQIvUD4tkpv9y6EtRMYw0cNjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIwLmV4YW1wbGUu -Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/r1rdZtkfLsjbXfb9zCZmKvp -oPfjs2RsmJyCt1lzxc7N1AVFjw2OMAoSV2G/50X0Nt7KCuUD07azF57CFJijZKNN -MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw -goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIh -AIIqRyYqOlIDaemQbiXLlN87OaP+fqmHRpZVdO6EXgvwAiBEi9CN98Z2Fv20QI7h -n33cOR0U1KpHtTb6Wh22We6QPQ== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt deleted file mode 100644 index c3312d2..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICWzCCAgKgAwIBAgIQFFOwr2xevt3nHzYp6F1CLTAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowWTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIwLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAEox+Xd/WSheLOT9WcWK8V4/q1haNiU3GYWwjr7NQ3+T/u -U1O5ZWaArqG5ootUzA4RiwiK4HanSGCJjxRS7nygyqOBmDCBlTAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgkrOhP0AbK3wCyYtVhZDF1didmbM8aBg+OGL69+Yr2/4w -KQYDVR0RBCIwIIIUb3JkZXJlcjAuZXhhbXBsZS5jb22CCG9yZGVyZXIwMAoGCCqG -SM49BAMCA0cAMEQCIG/e6JcmYlpIq5Fyzcyi6+Mq4nD7qWdS4Gc64Gv1xNnvAiAI -dMRcXbawjFMeCCifZ/qr0O5+HA/jjtIxtsjsM8hTKA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key deleted file mode 100644 index 7a71204..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer0.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgQifpIletdOPbsXSn -OuXzJ3MTaav2VqIUoDv43Pxie36hRANCAASjH5d39ZKF4s5P1ZxYrxXj+rWFo2JT -cZhbCOvs1Df5P+5TU7llZoCuobmii1TMDhGLCIrgdqdIYImPFFLufKDK ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk deleted file mode 100644 index 315029b..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbbeTIq8+XLbvaHSl -1dvH48k1Oxy8UTd5U7u4iDeelmahRANCAAT6mcv8uY4nyB3kTAptX1bQj5kyEDs1 -IuSTz7GT2KIL0J2Jkl//hxYLtpn4dnG9700VTy1IBwH7qydMZsh8G5yq ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem deleted file mode 100644 index 4ed98e4..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICHjCCAcWgAwIBAgIQRw0zPSMv064F/u92fEwL0zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIxLmV4YW1wbGUu -Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+pnL/LmOJ8gd5EwKbV9W0I+Z -MhA7NSLkk8+xk9iiC9CdiZJf/4cWC7aZ+HZxve9NFU8tSAcB+6snTGbIfBucqqNN -MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw -goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDRwAwRAIg -I/S7hNFP0USiqW9QvVDY7vN7AE4POdyOkPunhVYbdDsCIBDG/hmHFxgyigh8mXh4 -euzUCrH+nk8zv5rYW06SiNZe ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt deleted file mode 100644 index 66feab7..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICWzCCAgKgAwIBAgIQOf2O2SQM8DnWB7EaAT3cvzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowWTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAEc5RUk0XhlopDfCAXbfYoX/nt8sCQgvwkLmMFAOEpdx7O -oT+9mX6GkvE8prd0O4EU1HioRy4jWtWC8x8GRllKLqOBmDCBlTAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgkrOhP0AbK3wCyYtVhZDF1didmbM8aBg+OGL69+Yr2/4w -KQYDVR0RBCIwIIIUb3JkZXJlcjEuZXhhbXBsZS5jb22CCG9yZGVyZXIxMAoGCCqG -SM49BAMCA0cAMEQCIHbF2usziP050btAMEhlS+mbotpmQ6TnrzEOldWKUlkZAiAv -A4r4cwC2QJ0GU91Zjo8SkkNlwHEZ3LP9Be9Q5w62MQ== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key deleted file mode 100644 index 09b9bdf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer1.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgvyhMJHHc2AtIEoZ/ -jNw61FgjTRA5wwGLAzorJjZ6EEuhRANCAARzlFSTReGWikN8IBdt9ihf+e3ywJCC -/CQuYwUA4Sl3Hs6hP72ZfoaS8Tymt3Q7gRTUeKhHLiNa1YLzHwZGWUou ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk deleted file mode 100644 index 8a9d0df..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgnhsc8IxigK6fVt1b -a/PohiTU+gH6ea4F3P3AtEaEqeShRANCAAQY+MaN8Yq7F/+FveK5G5PedCjVZ9zJ -lv8OjLOI2ZvqisEILe84wtLIC5fgh6aZ1eVyH8kzw3zsCfTaClRKQygM ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem deleted file mode 100644 index c15fa17..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICHjCCAcWgAwIBAgIQL4icIvif2hO9PBvPP0ZxTzAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIyLmV4YW1wbGUu -Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGPjGjfGKuxf/hb3iuRuT3nQo -1WfcyZb/DoyziNmb6orBCC3vOMLSyAuX4IemmdXlch/JM8N87An02gpUSkMoDKNN -MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw -goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDRwAwRAIg -UnaP6mZ5whHhEBkD0camfsomT+4ltLsHBrHPaYxwGI8CIFapix0EEWDa1iIOBO3h -P8oveBU1UmKUJEi/kHhPQXsR ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt deleted file mode 100644 index caeb880..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICXDCCAgOgAwIBAgIRAN1m/kCbLJJocSLaxFzdZL8wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMFkxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMR0wGwYDVQQDExRvcmRlcmVyMi5leGFtcGxlLmNvbTBZMBMGByqGSM49 -AgEGCCqGSM49AwEHA0IABEQV1fFbn5DNUef4FixSaIELWfMv2hu7Auz1tlMio46Y -8gbOqOdAIwkkDzzyaA2uRvSUVqQtxYp+nuq6VHo2WZKjgZgwgZUwDgYDVR0PAQH/ -BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8E -AjAAMCsGA1UdIwQkMCKAIJKzoT9AGyt8AsmLVYWQxdXYnZmzPGgYPjhi+vfmK9v+ -MCkGA1UdEQQiMCCCFG9yZGVyZXIyLmV4YW1wbGUuY29tgghvcmRlcmVyMjAKBggq -hkjOPQQDAgNHADBEAiBV0T59I6oJh8COBJXSMiyATtGZA6LFsvA1m0+HZORWhwIg -UAaos3xk0ZTJUrpP3g9riMLN4qp+mKhDnafKGatlXXo= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key deleted file mode 100644 index 995dd40..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer2.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0RqZKJvjbCfQZouy -iVM8jgRxqBaqR22xB2kCSNBQGsGhRANCAAREFdXxW5+QzVHn+BYsUmiBC1nzL9ob -uwLs9bZTIqOOmPIGzqjnQCMJJA888mgNrkb0lFakLcWKfp7qulR6NlmS ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk deleted file mode 100644 index 90c8e5b..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBOHByRcEcNky/zha -zd6AiImQ80AmLnrFExvlFMsaTE6hRANCAASXehX11p0Qp0hDgriqEb2sVVQvZVZt -HTcnccP4sya2cWPL8XUHbWWqRvy6Ei8ZRWyBpoQ8BWyM8dRcK2ZVfRT4 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem deleted file mode 100644 index 754d76e..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICHjCCAcWgAwIBAgIQHzInO/Fx/dPtDzKRd2LvDzAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowazELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUu -Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEl3oV9dadEKdIQ4K4qhG9rFVU -L2VWbR03J3HD+LMmtnFjy/F1B21lqkb8uhIvGUVsgaaEPAVsjPHUXCtmVX0U+KNN -MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgRggw -goey8jeKmwLE9y0AbEXewM+IqupmsIIfUJmHgNowCgYIKoZIzj0EAwIDRwAwRAIg -EW4XX8CHqT5HRzLXT0f4Xx+gYC7XZ4OLjSDSaV5qkoACIFugwpbXWzrs59T6N27K -joOtzH9+CQuW7lKnTSUPqcB+ ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt deleted file mode 100644 index 795081c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICXDCCAgKgAwIBAgIQanhxqBDauPu0XOCldlcNKTAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowWTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAE+gkOhU1bkhfO6CEaOF8rfMUq2mG9AC8gFCJ/nEsbukn1 -pnXWv34HtTAVG+WWV+lPGHhlQ6uuaJ3TvvJ6L+W86KOBmDCBlTAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgkrOhP0AbK3wCyYtVhZDF1didmbM8aBg+OGL69+Yr2/4w -KQYDVR0RBCIwIIIUb3JkZXJlcjMuZXhhbXBsZS5jb22CCG9yZGVyZXIzMAoGCCqG -SM49BAMCA0gAMEUCIQCIeVYDJD0gGeqNYvPbEiqNVkSId40AZSH+o2j6+smk/wIg -L7vuvvXfQ5naJNUGpPvmQj3ievRsJa4kKiyNyXsjx3o= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key deleted file mode 100644 index 6ac2f48..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer3.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg3XK7Nf1n4SvvE7ve -p8bl/3NbfneI3WgNB8pCXNXlARWhRANCAAT6CQ6FTVuSF87oIRo4Xyt8xSraYb0A -LyAUIn+cSxu6SfWmdda/fge1MBUb5ZZX6U8YeGVDq65ondO+8nov5bzo ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk deleted file mode 100644 index 6d2918d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgp1QJ0uituAQcg8O6 -PmeBOj4jdov8OacT2TKWQD5SASehRANCAAS8Tvz9YbKNUIgofh7tdgXcMajLxt0y -0Jy2w7rQOhu1s/SIzspa+4626Wq24XoOwNR48huAKB+Whn2CHXA4NT7g ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem deleted file mode 100644 index 3e9ec2b..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICIDCCAcagAwIBAgIRAKITTLtyll1btSYSH4NSMVYwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMGsxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyNC5leGFtcGxl -LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxO/P1hso1QiCh+Hu12Bdwx -qMvG3TLQnLbDutA6G7Wz9IjOylr7jrbparbheg7A1HjyG4AoH5aGfYIdcDg1PuCj -TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEYI -MIKHsvI3ipsCxPctAGxF3sDPiKrqZrCCH1CZh4DaMAoGCCqGSM49BAMCA0gAMEUC -IQDfe51zhFX7ArXw185ZyxtRYew08gQZLUkp01KxCFI9rQIgOLArCqG4DZMZz9oA -pHXEJEXiZLfbHmYFrllwib0d62A= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt deleted file mode 100644 index 2c417d6..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICXDCCAgOgAwIBAgIRAKxT9kCnXs7ZVDt+rrEsRgUwCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMFkxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMR0wGwYDVQQDExRvcmRlcmVyNC5leGFtcGxlLmNvbTBZMBMGByqGSM49 -AgEGCCqGSM49AwEHA0IABIQqn8Gmn590jRJIDpT7s0nfISnrrFeQ7oQod5OMP48B -XEN91id2DJhEo6+/1OFK9onvuPT5frXwJdMep2ojHLyjgZgwgZUwDgYDVR0PAQH/ -BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8E -AjAAMCsGA1UdIwQkMCKAIJKzoT9AGyt8AsmLVYWQxdXYnZmzPGgYPjhi+vfmK9v+ -MCkGA1UdEQQiMCCCFG9yZGVyZXI0LmV4YW1wbGUuY29tgghvcmRlcmVyNDAKBggq -hkjOPQQDAgNHADBEAiBGwLbvvjvsQW6WupC3hXBh63sJtNPG4lMF1ifHCrtuKAIg -PcFDmTKwLdbNX2NmvnuLjTOGq44aN1X/VwhB/b675+I= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key deleted file mode 100644 index 6f80bdd..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/orderers/orderer4.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgKbwsCeduWCvbBnPX -QOUVfhubcbR0xBFdUlI5BCxOcn+hRANCAASEKp/Bpp+fdI0SSA6U+7NJ3yEp66xX -kO6EKHeTjD+PAVxDfdYndgyYRKOvv9ThSvaJ77j0+X618CXTHqdqIxy8 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk deleted file mode 100644 index 5a9fd44..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgsnJIUl19E9lNnFUI -AIcDTWe1ymemYrWtzWwB82rVG/OhRANCAATFT7qBbtIlapAL8pm4KTpf8qUOii/f -noiBJZi0ZdYZqQ5K2wdBWSe+5mVCZvJGRPryn+fLvfJAhIIcwGm0lv7L ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/tlsca/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index db3d41c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQSlUYptYm6Co6a7Fckh0d3zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOND5YaqjHXi8UglbyCmOWzDuR8d -ik53piuGDTdmW6j+D+8G8EhfgcdbDikTwGXxAbSxFwarzNclhVFmh4hNFNKjbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgRggwgoey8jeKmwLE9y0AbEXewM+I -qupmsIIfUJmHgNowCgYIKoZIzj0EAwIDSAAwRQIhAKXOeCuwx9OgZ+wVZLjWzy0H -hqiT65zD2MR665TgQGQYAiAi0f7C3YDrlYmunnXWgGCadkiRgGYO/ZgKfFT8txrw -GA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk deleted file mode 100644 index bcf988c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgE2hkJWcDQRd2gPrY -7ONNqe3XCogLJ19UAEEwLowoRtChRANCAAQGyvpl1arQ+ynAESEIJZcBOX3LNssz -aWl0K6Acr7fjIl8C3f39IP5puLwhCFKbrQplWMgeHhmXrKDEiiRYmQP/ ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem deleted file mode 100644 index dbace89..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGzCCAcGgAwIBAgIRAJ4K18/L9NlE2Nzzo/PLY1cwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMGYxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMQ4wDAYDVQQLEwVhZG1pbjEaMBgGA1UEAwwRQWRtaW5AZXhhbXBsZS5jb20w -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQGyvpl1arQ+ynAESEIJZcBOX3LNssz -aWl0K6Acr7fjIl8C3f39IP5puLwhCFKbrQplWMgeHhmXrKDEiiRYmQP/o00wSzAO -BgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCBGCDCCh7Ly -N4qbAsT3LQBsRd7Az4iq6mawgh9QmYeA2jAKBggqhkjOPQQDAgNIADBFAiEAjgxk -s2Vb8sS5Y7Az4M3vapuFm/hRTgfUKzbtfTsl20UCICiLUFZuosT+FktfiRambOIU -nsmLDvFZe5V3mVidkuax ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt deleted file mode 100644 index 35f59b0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICRDCCAemgAwIBAgIQL1Ff+K9EAEo3GXXfgGjzEzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDQwMFoXDTM1MDcyMjE3MDQwMFowbDELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5leGFt -cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMVPuoFu0iVqkAvymbgp -Ol/ypQ6KL9+eiIElmLRl1hmpDkrbB0FZJ77mZUJm8kZE+vKf58u98kCEghzAabSW -/sujbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB -BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgkrOhP0AbK3wCyYtVhZDF -1didmbM8aBg+OGL69+Yr2/4wCgYIKoZIzj0EAwIDSQAwRgIhAOYVqeZiY6m2QN+9 -kH5oyo5lhrjPGshsBY9UF8QpHPnRAiEAkbVgMfnvyrRjEea+QEu3UOnS0AZOKo8z -RvT+M7jW+RE= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt deleted file mode 100644 index a220015..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICLTCCAdOgAwIBAgIRALjrmoxasHKGckUjjleRys4wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA0MDBaFw0zNTA3MjIxNzA0MDBaMFYxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEG -CCqGSM49AwEHA0IABEY1BETTrY3dtvPz9VTqwh5oWfSG+SV1zIrguoZbLinmKzRg -tXCukZGKgwGoUQLlXHQAcxY0avzZsnJ7lP6Io3CjbDBqMA4GA1UdDwEB/wQEAwIF -oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAr -BgNVHSMEJDAigCCSs6E/QBsrfALJi1WFkMXV2J2ZszxoGD44Yvr35ivb/jAKBggq -hkjOPQQDAgNIADBFAiEAupNA/Kct051i0EIFTkuL1F8iuKU01K0eSiE9l9OTLIoC -IFubISSt/QHgk0rx2tOB31hdfqMcxWdgDJbiP23Jvs4T ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key deleted file mode 100644 index 51ff9a8..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/example.com/users/Admin@example.com/tls/client.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCsHTVQawXtfVsfy0 -pkcwEOomqEBcb/au3+xy0kr9336hRANCAARGNQRE062N3bbz8/VU6sIeaFn0hvkl -dcyK4LqGWy4p5is0YLVwrpGRioMBqFEC5Vx0AHMWNGr82bJye5T+iKNw ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk deleted file mode 100644 index 7265803..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/ca/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWV9uWnS35LAJ9mjU -eDFn/YPqRVbAzTzxvFhigbyTrK6hRANCAATnHTE4uFCe550oHkoF3hs3ITlWMz93 -VCJSwQwTyOOPepJkGzzFoAwwvuCwWGjvTmwS9dmtqUX7Oq/YAfTiM/6n ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk deleted file mode 100644 index a5c8754..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgWMc5vzkgx7egBDHn -JxbAymVU0xAfryCJzrOHPYngqfihRANCAAQAO7CMO7PQOFcQBrPTRksoPIkRseSq -4ziY5TfDcAJ8ABiZgJ1M8RkQWThtkh1rvd/GD1smK467yZb0+1kQ3yN7 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem deleted file mode 100644 index a70ec1f..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/signcerts/orderer0.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICHzCCAcagAwIBAgIRANFBIinxFECKIjqS/8SvOp4wCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGsxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl -LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAA7sIw7s9A4VxAGs9NGSyg8 -iRGx5KrjOJjlN8NwAnwAGJmAnUzxGRBZOG2SHWu938YPWyYrjrvJlvT7WRDfI3uj -TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJhf -zuxIe6nIedddYysRe8awyptv7QAq8DH2q6gY8gQuMAoGCCqGSM49BAMCA0cAMEQC -IDzaqty4RH927CH9AET06xuwXBGcfW+siFBiFRauAB58AiBl9fxfeQNYxiphwB+G -skjQubnhrVywNhI+11RSFYc9Mw== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt deleted file mode 100644 index aa22d9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICWzCCAgKgAwIBAgIQVRZw9SeBEtRkxO39xuo5lzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIwLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAEYOueoJet/ZQ5GHsm2Zcqer8VDlVjJdJPra94s3SidigH -aju/AJIGXWGI2QhRa4DgP1pFKbYigtGxEyWrp5/BUaOBmDCBlTAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w -KQYDVR0RBCIwIIIUb3JkZXJlcjAuZXhhbXBsZS5jb22CCG9yZGVyZXIwMAoGCCqG -SM49BAMCA0cAMEQCIDQZVU3228pjYjU/tNV+x5BjjG8fscxUOFxDC7PJ/SqvAiBC -Ih7t1N6OuFHDOFHfyBe9L3oG2u/DO8n1muDLSdXuDQ== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key deleted file mode 100644 index 051418a..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg0iHS8ru6UR/eoKUA -A1v5/uqNish63Q+0fdcj+JQIPs6hRANCAARg656gl639lDkYeybZlyp6vxUOVWMl -0k+tr3izdKJ2KAdqO78AkgZdYYjZCFFrgOA/WkUptiKC0bETJaunn8FR ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk deleted file mode 100644 index 8341649..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXPSgpANN3NGW94QN -Zv2l8RB25xBFaZJlCFAqxHX4djqhRANCAATxQwpa04NP7R2xHYtV95fT7xAkPi96 -uvwuYPe35pH9nkqEQJLcU+2VPH0MbiHNd4fjoEGxhUAb9t6PpnlgpKEE ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem deleted file mode 100644 index 407aa74..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/signcerts/orderer1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICIDCCAcagAwIBAgIRAMf6bJNWt6QQ32CHGSojQ4wwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGsxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMS5leGFtcGxl -LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPFDClrTg0/tHbEdi1X3l9Pv -ECQ+L3q6/C5g97fmkf2eSoRAktxT7ZU8fQxuIc13h+OgQbGFQBv23o+meWCkoQSj -TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJhf -zuxIe6nIedddYysRe8awyptv7QAq8DH2q6gY8gQuMAoGCCqGSM49BAMCA0gAMEUC -IQCzrvJERq97NFKkZHcOcCgNnwXPzvOZNZNaW541sEFggAIgYiBUpDMThc/48w/r -nUhymeGFLR6gFe7msfg9yd8h9e4= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt deleted file mode 100644 index 50172de..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICWzCCAgKgAwIBAgIQVn0JI5GFL41vp3YfaXP4kTAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAEKiWp/NagzrpwSA93SautSp3AY3bUKa7LBKHkWrWKUF6s -DLKZSI/SruVnj9YgtUpBa6lGz2F2DMfuQKa2+8KfuqOBmDCBlTAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w -KQYDVR0RBCIwIIIUb3JkZXJlcjEuZXhhbXBsZS5jb22CCG9yZGVyZXIxMAoGCCqG -SM49BAMCA0cAMEQCIEe83dVp54d8nHrsICGNU2Sm5pJZnTY4ChGgQtkBjmGkAiBG -+tCa4Byh2fCWm3nNxBYtJ6hnKHUz2jng3Z1rL+ILTQ== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key deleted file mode 100644 index 1679c92..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmyFTJzjfuYYtythv -GILh7yIZFEx5ctJrWknbGgvkWYehRANCAAQqJan81qDOunBID3dJq61KncBjdtQp -rssEoeRatYpQXqwMsplIj9Ku5WeP1iC1SkFrqUbPYXYMx+5Aprb7wp+6 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk deleted file mode 100644 index e438986..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgT7OWZ6BDBN4s86+H -3mEzt18sWrWjIr0pxcDhdMhKC4ahRANCAAQZ9yopiZek2Cm87mqACdHkzArAelX/ -6VZ/IA2unZlgZQlsBeRhVCquhKtgrqx9PSin3JYcFmvVzHyDqK3Qk35Y ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem deleted file mode 100644 index d7fcb75..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/signcerts/orderer2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICIDCCAcagAwIBAgIRANSos0j6AiNQ5ILO+f+Y1yUwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGsxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMi5leGFtcGxl -LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBn3KimJl6TYKbzuaoAJ0eTM -CsB6Vf/pVn8gDa6dmWBlCWwF5GFUKq6Eq2CurH09KKfclhwWa9XMfIOordCTflij -TTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJhf -zuxIe6nIedddYysRe8awyptv7QAq8DH2q6gY8gQuMAoGCCqGSM49BAMCA0gAMEUC -IQCxUIGjHhGX+fH5iqEnrSuxxgL8dc5x1BtcFY9f/5086QIgHbTiqNBLXek5K4aj -mvwSn4Dm2n9sQIQRRNkhZKMVihk= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt deleted file mode 100644 index a15486b..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICXTCCAgOgAwIBAgIRAJ2e0mV97WbQRhkkHsTP2VcwCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMFkxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMR0wGwYDVQQDExRvcmRlcmVyMi5leGFtcGxlLmNvbTBZMBMGByqGSM49 -AgEGCCqGSM49AwEHA0IABKA3O5ncGKdQbDlfQzQKGF126EUhDr3Avqiw1O9FsHwJ -v3ANndLK8gcJa/khW6NEwoAzrZoxG4FcsQiCFzGwK0ijgZgwgZUwDgYDVR0PAQH/ -BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8E -AjAAMCsGA1UdIwQkMCKAIJptJDQdV5qOPRV79cELQQR5Ru0mf0o+ytB5sc7N5ok/ -MCkGA1UdEQQiMCCCFG9yZGVyZXIyLmV4YW1wbGUuY29tgghvcmRlcmVyMjAKBggq -hkjOPQQDAgNIADBFAiEAgMO95PuV1HbUx0e8KeehPhvplMVWjV1cW3N8JjryhOQC -IDv8tDEWTI3TbDnWHo3I5kXzuJoaqXd0WebSTPxnmGB/ ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key deleted file mode 100644 index f60503a..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5MdMW2XSuEnZ2rE7 -ttxWIxe/99h2PENylkGrSy8p3j+hRANCAASgNzuZ3BinUGw5X0M0ChhdduhFIQ69 -wL6osNTvRbB8Cb9wDZ3SyvIHCWv5IVujRMKAM62aMRuBXLEIghcxsCtI ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk deleted file mode 100644 index 30f4d8a..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2QM1jqSOBfK5C1c1 -/rmQdRP21NaY4qyuFSg7jbHslX+hRANCAAT8loIUsV9s+0mqaxnOgrLZ6WUNZ+k6 -fOOViEmDiL27WWiE7lJRxDe5WJDi1q4/MGL8g+teYxPanB5yVrmprMe4 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem deleted file mode 100644 index 7873c4b..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/signcerts/orderer3.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICHjCCAcWgAwIBAgIQV1wJ++2B/m9Fg3wakk0T7DAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowazELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUu -Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/JaCFLFfbPtJqmsZzoKy2ell -DWfpOnzjlYhJg4i9u1lohO5SUcQ3uViQ4tauPzBi/IPrXmMT2pwecla5qazHuKNN -MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgmF/O -7Eh7qch5111jKxF7xrDKm2/tACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDRwAwRAIg -YqxbyfL5nzH1qHQpC2pFlMBiSX/w0U4A5qPdVIFF9N0CIDMvafRpXP/wj/h8LSMi -61/zHjDZSMy+dGtF3emmpVXE ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt deleted file mode 100644 index 94314e1..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICWzCCAgKgAwIBAgIQXDa9oKIVVK5k0UylOHFIhzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXIzLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAEgbRmp1YpW8QiCw9CYl/B/VODL8Hy7uKxbBSMg1mbEQsL -EX+tnX0I9ixZcqb4rUZ492trkNXDfczmkVprNzvfBaOBmDCBlTAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w -KQYDVR0RBCIwIIIUb3JkZXJlcjMuZXhhbXBsZS5jb22CCG9yZGVyZXIzMAoGCCqG -SM49BAMCA0cAMEQCIGWRGORqa/dii1nvWO6hAFzGtG60MOyY+VvNk64HkDCTAiBe -ffh6GtZ2lSL5kR5u2NgLQqX02voz26tn63M92dkGRA== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key deleted file mode 100644 index efedb64..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfKJQPXJtV87q6UCD -PjkmA6FGWxhxOLcMYOzQEE55gmOhRANCAASBtGanVilbxCILD0JiX8H9U4MvwfLu -4rFsFIyDWZsRCwsRf62dfQj2LFlypvitRnj3a2uQ1cN9zOaRWms3O98F ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk deleted file mode 100644 index 7a48cc9..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4L2PJDO/3l4byxDI -vMxgyilZzDidbbbljwgj0C+VObmhRANCAASCm2ymDBaQg0877vcpc43/JcCARFiA -uLwDT/1LH8VcYhu+cgcNLApHMvUW3ZWsrnCXuvIi1qKP825LqxeBzVl6 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem deleted file mode 100644 index fd923cc..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/signcerts/orderer4.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICHjCCAcWgAwIBAgIQAqPAaWAFhV2jWlqzCoaa5zAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowazELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xEDAOBgNVBAsTB29yZGVyZXIxHTAbBgNVBAMTFG9yZGVyZXI0LmV4YW1wbGUu -Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgptspgwWkINPO+73KXON/yXA -gERYgLi8A0/9Sx/FXGIbvnIHDSwKRzL1Ft2VrK5wl7ryItaij/NuS6sXgc1ZeqNN -MEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgmF/O -7Eh7qch5111jKxF7xrDKm2/tACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDRwAwRAIg -US8wHzUvktXcqK96xkDtqrs+YcittxkUlqkEVb3hm+0CIGTxeDehfEW8KHc2CSp0 -dAtUmRhd121fdsSIk3yxLMve ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt deleted file mode 100644 index 9974837..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICWzCCAgKgAwIBAgIQCHqnS9/QiFXJKNWh2QvckTAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowWTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xHTAbBgNVBAMTFG9yZGVyZXI0LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAENI9t73XOzov/+5RMPtvV54gijsIbLHt1E6MOqL9tZ2sP -tvTphF7h3req3bvCeRu+HFyPKH28c4yAAn7bjzy5VKOBmDCBlTAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgmm0kNB1Xmo49FXv1wQtBBHlG7SZ/Sj7K0Hmxzs3miT8w -KQYDVR0RBCIwIIIUb3JkZXJlcjQuZXhhbXBsZS5jb22CCG9yZGVyZXI0MAoGCCqG -SM49BAMCA0cAMEQCIHVDvIxyOCC9tqVxZ38UXSWlA4qgn6Xi3Zyd0tCBD7+XAiB4 -VV59BJRKdN9mYcBnFD+Aq5QVYuSSodpcZf6lU0yV9g== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key deleted file mode 100644 index 1c93b88..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg3s0ovQFTLvz4Lb7m -jCyNoeKiPE8+vDaK6ETOyQCpWUKhRANCAAQ0j23vdc7Oi//7lEw+29XniCKOwhss -e3UTow6ov21naw+29OmEXuHet6rdu8J5G74cXI8ofbxzjIACftuPPLlU ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk deleted file mode 100644 index 4911be3..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgMyxJ51+5RzC/bwqA -/BYQelYZjzBVrQjvGMLomi/5fsChRANCAASoNDqsX1ceYOaT/I8EFGi1a3cHynrf -4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVDjbPt ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index b632faf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPTCCAeOgAwIBAgIQaoL+ExK1KzGL8XuMGFsihjAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOcdMTi4UJ7nnSgeSgXeGzchOVYz -P3dUIlLBDBPI4496kmQbPMWgDDC+4LBYaO9ObBL12a2pRfs6r9gB9OIz/qejbTBr -MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgmF/O7Eh7qch5111jKxF7xrDKm2/t -ACrwMfarqBjyBC4wCgYIKoZIzj0EAwIDSAAwRQIhAKdwFCya5A2yQ3ktzIH59k1k -pqOoEZ3xc4Z+hsazirZHAiAV3cogUae+KXqE5yV8tryc4PznDQQxiB9NBcOfFKXH -+A== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml deleted file mode 100644 index 8846e9d..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -NodeOUs: - Enable: true - ClientOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: client - PeerOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: peer - AdminOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: admin - OrdererOUIdentifier: - Certificate: cacerts/ca.example.com-cert.pem - OrganizationalUnitIdentifier: orderer diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk deleted file mode 100644 index 88fe802..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/priv_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgMa3ODKt+JSswHiLu -8MWJw5tDL1ktrhXvq38bs9xaxbChRANCAAQPCDyYzKLfn97gwJYi04vZlttYNgJ2 -dt3pMYhoUEA6w368L2A41lb6hHvtxRV+9OsZdrCmQbw35qFm0LPE6AQH ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem deleted file mode 100644 index 45d8acf..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGzCCAcGgAwIBAgIRAKqBndR3MKJtq/JD5zbqlIQwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGYxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMQ4wDAYDVQQLEwVhZG1pbjEaMBgGA1UEAwwRQWRtaW5AZXhhbXBsZS5jb20w -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQPCDyYzKLfn97gwJYi04vZlttYNgJ2 -dt3pMYhoUEA6w368L2A41lb6hHvtxRV+9OsZdrCmQbw35qFm0LPE6AQHo00wSzAO -BgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCYX87sSHup -yHnXXWMrEXvGsMqbb+0AKvAx9quoGPIELjAKBggqhkjOPQQDAgNIADBFAiEA8Iwx -QwcZ+oDZVMauR9PD/NZd4Rr7c7P3cSWe1aBaPeICIBWsKyf1vCjiCrp+qm2XfUdM -4DdDPDA2aHkgKdyAAVxZ ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt deleted file mode 100644 index 9a9477c..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAIPyQ0wLoGRqveNTfJpSGAswCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0yNTA3MjQxNzA5MDBaFw0zNTA3MjIxNzA5MDBaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASoNDqsX1ceYOaT/I8E -FGi1a3cHynrf4u9SjkVsgQ21magG+jw7fDojqQIBk+hGQ/wKS3sJPqQxq/qF9UVD -jbPto20wazAOBgNVHQ8BAf8EBAMCAaYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG -AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIJptJDQdV5qOPRV79cEL -QQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqGSM49BAMCA0cAMEQCIEXqr7RxumOKui6N -8PfTBZUK9WCjYZ93PqyQMnNXtLDEAiB1vpIcdO19SaaCSuNS0dB2u1ew2Pz0NpOr -IcUdUWrkTg== ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt deleted file mode 100644 index f8aa37b..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICLDCCAdKgAwIBAgIQEANgeYPMIYV7jgZnygJnJzAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTI1MDcyNDE3MDkwMFoXDTM1MDcyMjE3MDkwMFowVjELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI -KoZIzj0DAQcDQgAESOWEpCdCO8jKa/wQiCMlsHygdh+v1xz+SYHbK4l1JMJvw11x -BKWVPgC0We73dZpYI/Ld0GmB11LY6p90MaaMtKNsMGowDgYDVR0PAQH/BAQDAgWg -MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG -A1UdIwQkMCKAIJptJDQdV5qOPRV79cELQQR5Ru0mf0o+ytB5sc7N5ok/MAoGCCqG -SM49BAMCA0gAMEUCIQC5RLll3Fuudn6ZWTO226Y6MUX2rIVHaGjFc25p9D+OcQIg -Pd9tm8Kce0i77NPIEH7/nnl0W/GOd03WQrlAy2M6/i0= ------END CERTIFICATE----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key deleted file mode 100644 index 806a554..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/files/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls/client.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg11Y/cJMxHHHNFfms -VqtKrA+pvXWAdufpbFPyvlyHBGShRANCAARI5YSkJ0I7yMpr/BCIIyWwfKB2H6/X -HP5JgdsriXUkwm/DXXEEpZU+ALRZ7vd1mlgj8t3QaYHXUtjqn3Qxpoy0 ------END PRIVATE KEY----- diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt deleted file mode 100644 index c24b0f0..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/genesis.block.base64.txt +++ /dev/null @@ -1 +0,0 @@ -CiIaIEiXsVSAhGcr2iLU/YOG9VTsyupksRwgsba40NRgZbmIEpd3CpR3CpF3CnwKXggBEAEaBgjZ4InEBiIOc3lzdGVtLWNoYW5uZWwqQGJhZDQ1MmUwYjMwODE4OTZjNGY4NTEwYzBkMmFmZDAyNTJjMTY2Njg5NDI5NzhlYzcyZjk3NTMwMTQ3ZGMwOWQSGhIYZHbCJrQX7lA5MQQRAVRRJFkghbDh96C2EpB2Co12Eop2EvRxCgdPcmRlcmVyEuhxEtspCgpPcmRlcmVyTVNQEswpGqEoCgNNU1ASmSgSjigSiygKCk9yZGVyZXJNU1ASxwYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1BqQ0NBZU9nQXdJQkFnSVFGNHVSSWZxQ1hOQ3BiSUY3WVBkZFRqQUtCZ2dxaGtqT1BRUURBakJwTVFzdwpDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5CllXNWphWE5qYnpFVU1CSUdBMVVFQ2hNTFpYaGhiWEJzWlM1amIyMHhGekFWQmdOVkJBTVREbU5oTG1WNFlXMXcKYkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd2FURUxNQWtHQTFVRQpCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnVZMmx6ClkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0Y0d4bExtTnYKYlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQlBpZ1dvMGdRMjltcnlCdE5Ed3NEOUlOUTZ4WAo2eVVOaWRtQXN5dTJrUEM3Tzl5V2l6Ri9RUTdzc3ZtK0tJaUUvUDJteHFUUTF2US9La2lGTzhpR2pOcWpiVEJyCk1BNEdBMVVkRHdFQi93UUVBd0lCcGpBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXcKRHdZRFZSMFRBUUgvQkFVd0F3RUIvekFwQmdOVkhRNEVJZ1FnMmdVbkVwSDdBK3lQM1dGeTZDS2Jnblk2cDA1TQpFSkcvSmFaSWtsVGVTdE13Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU50MzEyZHZVOEErTk5MVUcyNVo0R1JMCjB0cTNBa3dzOHM0RGl1bzlEMkoyQWlFQXhQZkdFZkNza1RqTERYZU8rQlhVa040bWNWeUhtS0xtTWo2Qk9nN20KNjBzPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCkIOCgRTSEEyEgZTSEEyNTZKywYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1FqQ0NBZW1nQXdJQkFnSVFOamlDK3NqOURBSVgxS2ZEOGxQd0hqQUtCZ2dxaGtqT1BRUURBakJzTVFzdwpDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5CllXNWphWE5qYnpFVU1CSUdBMVVFQ2hNTFpYaGhiWEJzWlM1amIyMHhHakFZQmdOVkJBTVRFWFJzYzJOaExtVjQKWVcxd2JHVXVZMjl0TUI0WERUSTFNRGN5TkRFM016WXdNRm9YRFRNMU1EY3lNakUzTXpZd01Gb3diREVMTUFrRwpBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1ClkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1Sb3dHQVlEVlFRREV4RjBiSE5qWVM1bGVHRnQKY0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRUxZbVVkR21pSXFlYUhSVkI5TgpJcjVlUGk5dTVTWDlMeG81bnI4SEd6SU1YOTlhSXFBbjUwa2NPZ0lTREpIKzY3VVl0WWtQd2xIL0hHVkJvK2NHClcxU2piVEJyTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUIKQlFVSEF3RXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWd6S09hVVNSREhVa3dTZ1B4aEVPVwpsZHdSSXl3TE9Ub2QvT1Y2aGQ1OW1XQXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdWQm1vdzhtODJ5ZXJPTmZZClFkYk1kYldBYTFOOFY4U0RreGp5bjJhaE9oOENJRkxILzRJU3dSYkxFSlJUdkp0dkdTODA5aGpPNjN5d3lIRDQKSndTeHJYYmwKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpa1BoIARLSBgrHBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDUGpDQ0FlT2dBd0lCQWdJUUY0dVJJZnFDWE5DcGJJRjdZUGRkVGpBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEkxTURjeU5ERTNNell3TUZvWERUTTFNRGN5TWpFM016WXdNRm93YVRFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnRjR3hsTG1OdgpiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCUGlnV28wZ1EyOW1yeUJ0TkR3c0Q5SU5RNnhYCjZ5VU5pZG1Bc3l1MmtQQzdPOXlXaXpGL1FRN3Nzdm0rS0lpRS9QMm14cVRRMXZRL0traUZPOGlHak5xamJUQnIKTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFdwpEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcyZ1VuRXBIN0EreVAzV0Z5NkNLYmduWTZwMDVNCkVKRy9KYVpJa2xUZVN0TXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTnQzMTJkdlU4QStOTkxVRzI1WjRHUkwKMHRxM0Frd3M4czREaXVvOUQySjJBaUVBeFBmR0VmQ3NrVGpMRFhlTytCWFVrTjRtY1Z5SG1LTG1NajZCT2c3bQo2MHM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEgZjbGllbnQa0AYKxwYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1BqQ0NBZU9nQXdJQkFnSVFGNHVSSWZxQ1hOQ3BiSUY3WVBkZFRqQUtCZ2dxaGtqT1BRUURBakJwTVFzdwpDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5CllXNWphWE5qYnpFVU1CSUdBMVVFQ2hNTFpYaGhiWEJzWlM1amIyMHhGekFWQmdOVkJBTVREbU5oTG1WNFlXMXcKYkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd2FURUxNQWtHQTFVRQpCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnVZMmx6ClkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0Y0d4bExtTnYKYlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQlBpZ1dvMGdRMjltcnlCdE5Ed3NEOUlOUTZ4WAo2eVVOaWRtQXN5dTJrUEM3Tzl5V2l6Ri9RUTdzc3ZtK0tJaUUvUDJteHFUUTF2US9La2lGTzhpR2pOcWpiVEJyCk1BNEdBMVVkRHdFQi93UUVBd0lCcGpBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXcKRHdZRFZSMFRBUUgvQkFVd0F3RUIvekFwQmdOVkhRNEVJZ1FnMmdVbkVwSDdBK3lQM1dGeTZDS2Jnblk2cDA1TQpFSkcvSmFaSWtsVGVTdE13Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU50MzEyZHZVOEErTk5MVUcyNVo0R1JMCjB0cTNBa3dzOHM0RGl1bzlEMkoyQWlFQXhQZkdFZkNza1RqTERYZU8rQlhVa040bWNWeUhtS0xtTWo2Qk9nN20KNjBzPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIEcGVlciLRBgrHBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDUGpDQ0FlT2dBd0lCQWdJUUY0dVJJZnFDWE5DcGJJRjdZUGRkVGpBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEkxTURjeU5ERTNNell3TUZvWERUTTFNRGN5TWpFM016WXdNRm93YVRFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnRjR3hsTG1OdgpiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCUGlnV28wZ1EyOW1yeUJ0TkR3c0Q5SU5RNnhYCjZ5VU5pZG1Bc3l1MmtQQzdPOXlXaXpGL1FRN3Nzdm0rS0lpRS9QMm14cVRRMXZRL0traUZPOGlHak5xamJUQnIKTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFdwpEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcyZ1VuRXBIN0EreVAzV0Z5NkNLYmduWTZwMDVNCkVKRy9KYVpJa2xUZVN0TXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTnQzMTJkdlU4QStOTkxVRzI1WjRHUkwKMHRxM0Frd3M4czREaXVvOUQySjJBaUVBeFBmR0VmQ3NrVGpMRFhlTytCWFVrTjRtY1Z5SG1LTG1NajZCT2c3bQo2MHM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEgVhZG1pbirTBgrHBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDUGpDQ0FlT2dBd0lCQWdJUUY0dVJJZnFDWE5DcGJJRjdZUGRkVGpBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEkxTURjeU5ERTNNell3TUZvWERUTTFNRGN5TWpFM016WXdNRm93YVRFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnRjR3hsTG1OdgpiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCUGlnV28wZ1EyOW1yeUJ0TkR3c0Q5SU5RNnhYCjZ5VU5pZG1Bc3l1MmtQQzdPOXlXaXpGL1FRN3Nzdm0rS0lpRS9QMm14cVRRMXZRL0traUZPOGlHak5xamJUQnIKTUE0R0ExVWREd0VCL3dRRUF3SUJwakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFdwpEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWcyZ1VuRXBIN0EreVAzV0Z5NkNLYmduWTZwMDVNCkVKRy9KYVpJa2xUZVN0TXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTnQzMTJkdlU4QStOTkxVRzI1WjRHUkwKMHRxM0Frd3M4czREaXVvOUQySjJBaUVBeFBmR0VmQ3NrVGpMRFhlTytCWFVrTjRtY1Z5SG1LTG1NajZCT2c3bQo2MHM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEgdvcmRlcmVyGgZBZG1pbnMiMwoHUmVhZGVycxIoEh4IARIaEggSBggBEgIIABoOEgwKCk9yZGVyZXJNU1AaBkFkbWlucyIzCgdXcml0ZXJzEigSHggBEhoSCBIGCAESAggAGg4SDAoKT3JkZXJlck1TUBoGQWRtaW5zIjQKBkFkbWlucxIqEiAIARIcEggSBggBEgIIABoQEg4KCk9yZGVyZXJNU1AQARoGQWRtaW5zKgZBZG1pbnMaIgoJQmF0Y2hTaXplEhUSCwgKEICAwDEYgIAgGgZBZG1pbnMaHgoMQmF0Y2hUaW1lb3V0Eg4SBAoCMnMaBkFkbWlucxofChNDaGFubmVsUmVzdHJpY3Rpb25zEggaBkFkbWlucxqCRgoNQ29uc2Vuc3VzVHlwZRLwRRLlRQoIZXRjZHJhZnQS2EUK8Q0KCG9yZGVyZXIwEIo3Gu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYVENDQWdPZ0F3SUJBZ0lSQUtmMUdBL3Q1Z2FlVE5uZzRjeUp5YlF3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQkt2WlBMQUV6clpFQTdHQVAyc09jd2NGaUZKUWUzRnRvVDBzdTJ1MTBNQ1kKZEIxMGtpZHc4RU56MG1pLzNzd3NmZHJPNFBETnJKaGRja1lVRXJONkhDbWpnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJd0xtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNREFLQmdncQpoa2pPUFFRREFnTklBREJGQWlFQXZKYzRRa1JxdjNVL3lrK2dJcFBINmhpT2FCOWZ1YUxOb2diMjBhRmxPSllDCklEYmFSLzRSOEFlOGo4ditETzVMUFZZQjJyMzk1RXV4YS92dGVXQzV0OUFXCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KIu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYVENDQWdPZ0F3SUJBZ0lSQUtmMUdBL3Q1Z2FlVE5uZzRjeUp5YlF3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQkt2WlBMQUV6clpFQTdHQVAyc09jd2NGaUZKUWUzRnRvVDBzdTJ1MTBNQ1kKZEIxMGtpZHc4RU56MG1pLzNzd3NmZHJPNFBETnJKaGRja1lVRXJONkhDbWpnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJd0xtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNREFLQmdncQpoa2pPUFFRREFnTklBREJGQWlFQXZKYzRRa1JxdjNVL3lrK2dJcFBINmhpT2FCOWZ1YUxOb2diMjBhRmxPSllDCklEYmFSLzRSOEFlOGo4ditETzVMUFZZQjJyMzk1RXV4YS92dGVXQzV0OUFXCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCvENCghvcmRlcmVyMRCKNxrvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDV3pDQ0FnS2dBd0lCQWdJUUJLb2xUYklReTZza3JVZUNpT3Avb3pBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSXhMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRXFJYno5VlV4OUhiNFNjUW5qbHN4UEZpRDcvTFVkUktCdlVOeFdCWVd0SkZ6CkxhanFHc01xNEE3OEorZTZ0TTZBSENhVllKaGYxVjRMSWZ0elNOU2ZtS09CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqRXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEl4TUFvR0NDcUcKU000OUJBTUNBMGNBTUVRQ0lEeFRHNk9hR05aRm5EcXBHQ0hhWmRLeFQvY2p1VklyN0NsNUptR2w1K3Z1QWlCWgpnUEZWSzI2TmFRS2dmM20xbTF4VWRoT2ZPdzd1bEcyTjlVcXJ1U0VBVEE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCiLvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDV3pDQ0FnS2dBd0lCQWdJUUJLb2xUYklReTZza3JVZUNpT3Avb3pBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSXhMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRXFJYno5VlV4OUhiNFNjUW5qbHN4UEZpRDcvTFVkUktCdlVOeFdCWVd0SkZ6CkxhanFHc01xNEE3OEorZTZ0TTZBSENhVllKaGYxVjRMSWZ0elNOU2ZtS09CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqRXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEl4TUFvR0NDcUcKU000OUJBTUNBMGNBTUVRQ0lEeFRHNk9hR05aRm5EcXBHQ0hhWmRLeFQvY2p1VklyN0NsNUptR2w1K3Z1QWlCWgpnUEZWSzI2TmFRS2dmM20xbTF4VWRoT2ZPdzd1bEcyTjlVcXJ1U0VBVEE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgrxDQoIb3JkZXJlcjIQijca7wYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1hUQ0NBZ09nQXdJQkFnSVJBUDlxTGJqVUxBYmhuKzZBY1ZnZmgvQXdDZ1lJS29aSXpqMEVBd0l3YkRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUm93R0FZRFZRUURFeEYwYkhOallTNWwKZUdGdGNHeGxMbU52YlRBZUZ3MHlOVEEzTWpReE56TTJNREJhRncwek5UQTNNakl4TnpNMk1EQmFNRmt4Q3pBSgpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoCmJtTnBjMk52TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDkKQWdFR0NDcUdTTTQ5QXdFSEEwSUFCQkVSajFRWjZHc0d4Z1g0K21jaXpGRlRxcEt5RW40bjVwNitVK1gzQnpaMApHSG0xbDhXQ3Y1VmFUeTlxM1B3M2N2TVdBUndHVUhrS1N1UVVVQXZycTNtamdaZ3dnWlV3RGdZRFZSMFBBUUgvCkJBUURBZ1dnTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU1CZ05WSFJNQkFmOEUKQWpBQU1Dc0dBMVVkSXdRa01DS0FJTXlqbWxFa1F4MUpNRW9EOFlSRGxwWGNFU01zQ3prNkhmemxlb1hlZlpsZwpNQ2tHQTFVZEVRUWlNQ0NDRkc5eVpHVnlaWEl5TG1WNFlXMXdiR1V1WTI5dGdnaHZjbVJsY21WeU1qQUtCZ2dxCmhrak9QUVFEQWdOSUFEQkZBaUVBelZBVkVWSk9IUUhSZWZLREY4bGh3Ly94bG42TmZreEx3TUJnelh1Y043b0MKSUg5MXNXZHdlR1RFOEsrZWZ6STBOMnREVXF5cTVGNTBoSmVUVWdpSG9QSnMKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoi7wYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ1hUQ0NBZ09nQXdJQkFnSVJBUDlxTGJqVUxBYmhuKzZBY1ZnZmgvQXdDZ1lJS29aSXpqMEVBd0l3YkRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUm93R0FZRFZRUURFeEYwYkhOallTNWwKZUdGdGNHeGxMbU52YlRBZUZ3MHlOVEEzTWpReE56TTJNREJhRncwek5UQTNNakl4TnpNMk1EQmFNRmt4Q3pBSgpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoCmJtTnBjMk52TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDkKQWdFR0NDcUdTTTQ5QXdFSEEwSUFCQkVSajFRWjZHc0d4Z1g0K21jaXpGRlRxcEt5RW40bjVwNitVK1gzQnpaMApHSG0xbDhXQ3Y1VmFUeTlxM1B3M2N2TVdBUndHVUhrS1N1UVVVQXZycTNtamdaZ3dnWlV3RGdZRFZSMFBBUUgvCkJBUURBZ1dnTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU1CZ05WSFJNQkFmOEUKQWpBQU1Dc0dBMVVkSXdRa01DS0FJTXlqbWxFa1F4MUpNRW9EOFlSRGxwWGNFU01zQ3prNkhmemxlb1hlZlpsZwpNQ2tHQTFVZEVRUWlNQ0NDRkc5eVpHVnlaWEl5TG1WNFlXMXdiR1V1WTI5dGdnaHZjbVJsY21WeU1qQUtCZ2dxCmhrak9QUVFEQWdOSUFEQkZBaUVBelZBVkVWSk9IUUhSZWZLREY4bGh3Ly94bG42TmZreEx3TUJnelh1Y043b0MKSUg5MXNXZHdlR1RFOEsrZWZ6STBOMnREVXF5cTVGNTBoSmVUVWdpSG9QSnMKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK8Q0KCG9yZGVyZXIzEIo3Gu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYRENDQWdPZ0F3SUJBZ0lSQUxVbFdzTVNJUnUrRit3cklvdno1cnd3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQk5FTitINmgwVzk1M1o4SnVFdWh6eG4vSFFyZDM4ZmgyK3VNYUx6RHdUajIKdi9LQmlzYkFvaFZkSnNNWlkxY2wybmwyMG00bXpRQ01IVmxtUDRwbjJJU2pnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJekxtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNekFLQmdncQpoa2pPUFFRREFnTkhBREJFQWlCeHVXODhtUXJCMnV3czNGdTZVRjdReVVmMkdIaTBhNVRtMWlaUTVxMFpvZ0lnCkxtanZnNVBUQkkyRFNsOHgvNDcvZ21OVlM0aG4rWTFHQTRWNW9XR2ZZZWc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KIu8GLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYRENDQWdPZ0F3SUJBZ0lSQUxVbFdzTVNJUnUrRit3cklvdno1cnd3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBM01qUXhOek0yTURCYUZ3MHpOVEEzTWpJeE56TTJNREJhTUZreEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQk5FTitINmgwVzk1M1o4SnVFdWh6eG4vSFFyZDM4ZmgyK3VNYUx6RHdUajIKdi9LQmlzYkFvaFZkSnNNWlkxY2wybmwyMG00bXpRQ01IVmxtUDRwbjJJU2pnWmd3Z1pVd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU15am1sRWtReDFKTUVvRDhZUkRscFhjRVNNc0N6azZIZnpsZW9YZWZabGcKTUNrR0ExVWRFUVFpTUNDQ0ZHOXlaR1Z5WlhJekxtVjRZVzF3YkdVdVkyOXRnZ2h2Y21SbGNtVnlNekFLQmdncQpoa2pPUFFRREFnTkhBREJFQWlCeHVXODhtUXJCMnV3czNGdTZVRjdReVVmMkdIaTBhNVRtMWlaUTVxMFpvZ0lnCkxtanZnNVBUQkkyRFNsOHgvNDcvZ21OVlM0aG4rWTFHQTRWNW9XR2ZZZWc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCvENCghvcmRlcmVyNBCKNxrvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDWERDQ0FnS2dBd0lCQWdJUWVlVEFTaWcwQis0eUh0UURKTHhEc1RBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSTBMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRThKeU85c082R2ZFd3JmQjc1djVlMFE1ZDEyMGxsaVVxMS9FcmI3cEtJMk40CjUrSGJndEVGaVVPRzRRMnNIZ2NRVndwZ2gxZm5iZHNnUU9XVWt2VVIxNk9CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqUXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEkwTUFvR0NDcUcKU000OUJBTUNBMGdBTUVVQ0lRRGpwMUdVTWxnQkI1K01BeGZvNlB5bWh5TkNwV1lUTEkrelZ3VEdXVjM4QWdJZwpKaUxDNndTWDg0dW5CVll5UGxVRXRYaVVZVVRMUERYU1BFY1BTTkw5czNVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCiLvBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDWERDQ0FnS2dBd0lCQWdJUWVlVEFTaWcwQis0eUh0UURKTHhEc1RBS0JnZ3Foa2pPUFFRREFqQnNNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEdqQVlCZ05WQkFNVEVYUnNjMk5oTG1WNApZVzF3YkdVdVkyOXRNQjRYRFRJMU1EY3lOREUzTXpZd01Gb1hEVE0xTURjeU1qRTNNell3TUZvd1dURUxNQWtHCkExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCR2NtRnUKWTJselkyOHhIVEFiQmdOVkJBTVRGRzl5WkdWeVpYSTBMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRThKeU85c082R2ZFd3JmQjc1djVlMFE1ZDEyMGxsaVVxMS9FcmI3cEtJMk40CjUrSGJndEVGaVVPRzRRMnNIZ2NRVndwZ2gxZm5iZHNnUU9XVWt2VVIxNk9CbURDQmxUQU9CZ05WSFE4QkFmOEUKQkFNQ0JhQXdIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQwpNQUF3S3dZRFZSMGpCQ1F3SW9BZ3pLT2FVU1JESFVrd1NnUHhoRU9XbGR3Ukl5d0xPVG9kL09WNmhkNTltV0F3CktRWURWUjBSQkNJd0lJSVViM0prWlhKbGNqUXVaWGhoYlhCc1pTNWpiMjJDQ0c5eVpHVnlaWEkwTUFvR0NDcUcKU000OUJBTUNBMGdBTUVVQ0lRRGpwMUdVTWxnQkI1K01BeGZvNlB5bWh5TkNwV1lUTEkrelZ3VEdXVjM4QWdJZwpKaUxDNndTWDg0dW5CVll5UGxVRXRYaVVZVVRMUERYU1BFY1BTTkw5czNVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChISCgU1MDBtcxAKGAEgBSiAgIAIGgZBZG1pbnMiIgoHV3JpdGVycxIXEg0IAxIJCgdXcml0ZXJzGgZBZG1pbnMiIgoGQWRtaW5zEhgSDggDEgoKBkFkbWlucxACGgZBZG1pbnMiKgoPQmxvY2tWYWxpZGF0aW9uEhcSDQgDEgkKB1dyaXRlcnMaBkFkbWlucyIiCgdSZWFkZXJzEhcSDQgDEgkKB1JlYWRlcnMaBkFkbWlucyoGQWRtaW5zEskBCgtDb25zb3J0aXVtcxK5ARJvChBTYW1wbGVDb25zb3J0aXVtElsaQAoVQ2hhbm5lbENyZWF0aW9uUG9saWN5EicSDAgDEggKBkFkbWlucxoXL0NoYW5uZWwvT3JkZXJlci9BZG1pbnMqFy9DaGFubmVsL09yZGVyZXIvQWRtaW5zIi0KBkFkbWlucxIjEggIARIEEgISABoXL0NoYW5uZWwvT3JkZXJlci9BZG1pbnMqFy9DaGFubmVsL09yZGVyZXIvQWRtaW5zGiYKEEhhc2hpbmdBbGdvcml0aG0SEhIICgZTSEEyNTYaBkFkbWlucxotChlCbG9ja0RhdGFIYXNoaW5nU3RydWN0dXJlEhASBgj/////DxoGQWRtaW5zGnoKEE9yZGVyZXJBZGRyZXNzZXMSZhJLCg1vcmRlcmVyMDo3MDUwCg1vcmRlcmVyMTo3MDUwCg1vcmRlcmVyMjo3MDUwCg1vcmRlcmVyMzo3MDUwCg1vcmRlcmVyNDo3MDUwGhcvQ2hhbm5lbC9PcmRlcmVyL0FkbWlucyIiCgZBZG1pbnMSGBIOCAMSCgoGQWRtaW5zEAIaBkFkbWlucyIiCgdSZWFkZXJzEhcSDQgDEgkKB1JlYWRlcnMaBkFkbWlucyIiCgdXcml0ZXJzEhcSDQgDEgkKB1dyaXRlcnMaBkFkbWlucyoGQWRtaW5zGg4KBAoCCgAKAAoACgAKAA== \ No newline at end of file diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/orderer.genesis.block b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/orderer.genesis.block deleted file mode 100644 index ebe611fe411b7645d4049a69b5e830bd7ef0bd86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15310 zcmeI3+l%8^e#fVKdwOcm&h%CkmYEdGrm2KYZ=1%lEZK5kVUO;zE!mPK*>WI6mSkD7 zL0%UZ|z#?&X3&El%F*3|MDOF-g2zxe?9^#@P2|H<7)+aHSMMfpC>s+!1& zG}PE#Es#W!ZU;0C-IfOvk%FG6aQI3UhjY3o)3brdRn4~JXaQ_co;M$jgH~Hn7#L79 zNr@9cD<)$o3eP5WL(f=E$_Iiaouw(Mpb|p&LwNV>M)-i4+vi%g8 zT_Ui0axlnPU82PO!6T{J?~O)-9u@aHL@>b64VOWK@??X8lEy^xs2Lf!*)1ht!0Rg$ zt1Tr8?=hNKk{COc8MZ8CW+HLZyiVHHNx`u$u{5?R!SQY|K#e5YFr*EeL3KZZr_p11 zG~mN%P_D16F1z6ZsPEfsjWO~zpW^L^%LfiKU}EHkV_;|BVXD#Cerm^=sdmEc?-Ro& zL|}G^(B-+M&2PeHB(K3hqxuph@l-nJI}%=l9?R48)%S!IASyzt?R(uR>M2+)TBOuc zW|EkxiLz4J^gt!mW#5TloUX8Oo36HMY1hxVqM}secpViQqR$rFShSgIN@=YW8)Khq zkv<>D^B^C50VIfTZ-&DpELBVtcDoj40d%&PBy@CkfBoKq@>q^iYzBI!*hox@Qgi_( zYyy}hUk56xK}9H1P*3tos+hsq?gR?Xik{+Oo<3n`LKPO$cDc)?6}mC-CT3-Z5)xqR ze6eoz#c`;)ou!n}+YzRHF$>V`Y?zJ$6V($(P+pcxn6uVNSditW&SOL$=hY@am-8|l zCovi0jK7-J7_5##pM{(DkY|T?35K9l_dv0U5JAk1I1pcF=WWFoe0k>EB@gs ziw~f=U%HaU_SD$M_Ug)|SxSy;_*1BB!0gopwhw~OqOM$7VfM-DnkGElJ%yNDsOUhD zj|u|^iQPzHY}1T%hmU-5?plIsP&FBd3&L&twH49n)tZ|rFJhdsT&jgT!v4u&mLt^p461`Z(!$?ahd7 zbwTJPs+cCtmNs>YEu%7Wh+5Qz&nZmJMXN&5GpJ~qkP(Tc?xH0RO`tdf$r*H^Rgy`A z>@ed^kWMgb)Eber$Tfu`E_M=i&}8eXwyrPNe1}A9qo7qOr%5U>IH)I`&7wC5U!t!5 zM;B+ekiWVMPWI|#uTJ*rHP|cUt{wXBWO?!Zlc-KFfv15@|E1xx6myj=NtY=_E$Zjvao11Mks!l{<-7v6jwUvvEZjW}!Rnxx;?w0g2u%B!^WLU!rN6<7;W3H`0Dj zOb*ceK=nLt^yKC;d&CcpjNg+*$WYuCqOR*Uu8h_Bx~vz|alsR3ZJ{#qTNYItuB@g! z^>RjUabc@&(m-SemRiJB61rqSt_w_yXtoWL!WQKk!LBw|alLfAG_kC~?n{u+}fXXpY#=tx@r+AQ^i-W9Y=$o1_z&o}w3Bq{O z=6t4FZ0e5Mpw_y)=~8BQS?4m)w1PPwOLH7n$$G)9ETsw*Xv;9`qhZOwo8oYpb>z-4 zYP6_`p{Y=Vt)0nI$i2zRL$Wkw!9>{Fdld~SYG>cC2MF_U=F$Gq63hcOxp`yv!A3fN z_kl?sP23(FP_&YWQ|NtMDC0$u4A9t*tWva?h@z|ZPayp84$Ih#45DNY&5>ovUs`AO_=$Nrv*MgyzJmeTNs<){>uHo7xv4O>Zd74n!|)8~s-hlLva`pbfhH?Vmp#l5DW;z@BQ z#XSPoZ60!Dv#bK-=(!qvCS`){~!iV?WP-6+e$+)u5#GD}2mv zydGYN>^udA)8?~A%1-bJF{>2xLa$6^eH8FQR0_#1y(SDxOKbCTJ1N_1sSDMF*M)JT zvr=>&t{3z2o9O4I&%QJ~<>y@`oP4aGml@Dtje1K^1l1ij7>*1_NwK&IClz@(-ZXRX z)ysM-Tdq!XKToKY;;xgpyvCA^f;-GaRK}K!K2PTaN1&s+tLdIEOxyMNHT!ud#ckop zYa}Zt#eF8S@@6USy3H%!(B?7Eu+63(c4Mg{s;dH5NEYIBoe_)V#5P}o z5zXPa#9yKPool8lrEg{_jf%&jUqS5;Dd zi1C7tT7(vr{JuiW(f-sEJNN$RFwdh5%(ZTaqKQqVuxIs+2{Lpm0 z&*C=gp=Yvlg)dx6nEX`;h)ClJz<-!tHF-%p;Q4+g{8vOn;Rz9PHgi< znXt38iu|;FBRFvpgL=an2ZCW zAPl@E%lUeX#}zCVJX~#|@-nuGehl06a<-|{qQV5T z60b|4M^QvUf}7#A(oUmMns4~&np#sVWJaR#U879q`++=A_nUMj>GVi^HK7bMZHGF$ z?D@K>Yt1&(>$F+B-I1HMxU9bxn|D&&t8Pa+DNgx;MibsJ#UTiIn?TVhJ_jG%y8rfr z$B!Q$lVC0{!8?cKp7)XW&OV2H{#bEHl*#)Xa(O;L?&V#;p?rS(*ykbmA{9>Uv0;V2 zV{KDyke8hAn1yugbCs5KINu=?2>H`n;0xO%o#|rfuc8?F&MjmL&O25#3*9I6$j@AS z1AOT!-G^Sdy9uLkE1^3jVLE*~9^MScP~%X69T zAh(gXKK*$vz6#C-D<1h14~E_}PpKM32(q2oekiJ|9*d=?i`dh}^3z3pSA5~M g-e_s$OYD$z_M(6HO_t$dNnGSR@W5^G*5UX60X*Tr@&Et; diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml deleted file mode 100644 index a40968a..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/rendered-orderers.yaml +++ /dev/null @@ -1,447 +0,0 @@ ---- -# Source: fabric-orderer/templates/service-orderer.yaml -apiVersion: v1 -kind: Service -metadata: - name: orderer0 - namespace: hyperledger-fabric -spec: - selector: - app: orderer0 - ports: - - name: grpc - port: 7050 - targetPort: 7050 ---- -# Source: fabric-orderer/templates/service-orderer.yaml -apiVersion: v1 -kind: Service -metadata: - name: orderer1 - namespace: hyperledger-fabric -spec: - selector: - app: orderer1 - ports: - - name: grpc - port: 7050 - targetPort: 7050 ---- -# Source: fabric-orderer/templates/service-orderer.yaml -apiVersion: v1 -kind: Service -metadata: - name: orderer2 - namespace: hyperledger-fabric -spec: - selector: - app: orderer2 - ports: - - name: grpc - port: 7050 - targetPort: 7050 ---- -# Source: fabric-orderer/templates/service-orderer.yaml -apiVersion: v1 -kind: Service -metadata: - name: orderer3 - namespace: hyperledger-fabric -spec: - selector: - app: orderer3 - ports: - - name: grpc - port: 7050 - targetPort: 7050 ---- -# Source: fabric-orderer/templates/service-orderer.yaml -apiVersion: v1 -kind: Service -metadata: - name: orderer4 - namespace: hyperledger-fabric -spec: - selector: - app: orderer4 - ports: - - name: grpc - port: 7050 - targetPort: 7050 ---- -# Source: fabric-orderer/templates/statefulset-orderer.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: orderer0 - namespace: hyperledger-fabric -spec: - serviceName: orderer0 - replicas: 1 - selector: - matchLabels: - app: orderer0 - template: - metadata: - labels: - app: orderer0 - spec: - containers: - - name: orderer - image: "hyperledger/fabric-orderer:2.5" - imagePullPolicy: IfNotPresent - command: ["orderer"] - ports: - - containerPort: 7050 - name: grpc - env: - - name: ORDERER_GENERAL_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_LISTENPORT - value: "7050" - - name: ORDERER_GENERAL_LOCALMSPID - value: "OrdererMSP" - - name: ORDERER_GENERAL_TLS_ENABLED - value: "true" - - name: ORDERER_GENERAL_TLS_PRIVATEKEY - value: /var/hyperledger/tls/server.key - - name: ORDERER_GENERAL_TLS_CERTIFICATE - value: /var/hyperledger/tls/server.crt - - name: ORDERER_GENERAL_TLS_ROOTCAS - value: "[/var/hyperledger/tls/ca.crt]" - - name: ORDERER_FILELEDGER_LOCATION - value: /var/hyperledger/production - - name: ORDERER_GENERAL_BOOTSTRAPMETHOD - value: "file" - - name: ORDERER_GENERAL_BOOTSTRAPFILE - value: /var/hyperledger/genesis/genesis.block - volumeMounts: - - name: msp - mountPath: /var/hyperledger/msp - - name: tls - mountPath: /var/hyperledger/tls - - name: genesis - mountPath: /var/hyperledger/genesis - - name: data - mountPath: /var/hyperledger/production - volumes: - - name: msp - secret: - secretName: orderer0-msp - - name: tls - secret: - secretName: orderer0-tls - - name: genesis - secret: - secretName: orderer-genesis-block - items: - - key: genesis.block - path: genesis.block - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 2Gi -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: orderer1 - namespace: hyperledger-fabric -spec: - serviceName: orderer1 - replicas: 1 - selector: - matchLabels: - app: orderer1 - template: - metadata: - labels: - app: orderer1 - spec: - containers: - - name: orderer - image: "hyperledger/fabric-orderer:2.5" - imagePullPolicy: IfNotPresent - command: ["orderer"] - ports: - - containerPort: 7050 - name: grpc - env: - - name: ORDERER_GENERAL_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_LISTENPORT - value: "7050" - - name: ORDERER_GENERAL_LOCALMSPID - value: "OrdererMSP" - - name: ORDERER_GENERAL_TLS_ENABLED - value: "true" - - name: ORDERER_GENERAL_TLS_PRIVATEKEY - value: /var/hyperledger/tls/server.key - - name: ORDERER_GENERAL_TLS_CERTIFICATE - value: /var/hyperledger/tls/server.crt - - name: ORDERER_GENERAL_TLS_ROOTCAS - value: "[/var/hyperledger/tls/ca.crt]" - - name: ORDERER_FILELEDGER_LOCATION - value: /var/hyperledger/production - - name: ORDERER_GENERAL_BOOTSTRAPMETHOD - value: "file" - - name: ORDERER_GENERAL_BOOTSTRAPFILE - value: /var/hyperledger/genesis/genesis.block - volumeMounts: - - name: msp - mountPath: /var/hyperledger/msp - - name: tls - mountPath: /var/hyperledger/tls - - name: genesis - mountPath: /var/hyperledger/genesis - - name: data - mountPath: /var/hyperledger/production - volumes: - - name: msp - secret: - secretName: orderer1-msp - - name: tls - secret: - secretName: orderer1-tls - - name: genesis - secret: - secretName: orderer-genesis-block - items: - - key: genesis.block - path: genesis.block - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 2Gi -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: orderer2 - namespace: hyperledger-fabric -spec: - serviceName: orderer2 - replicas: 1 - selector: - matchLabels: - app: orderer2 - template: - metadata: - labels: - app: orderer2 - spec: - containers: - - name: orderer - image: "hyperledger/fabric-orderer:2.5" - imagePullPolicy: IfNotPresent - command: ["orderer"] - ports: - - containerPort: 7050 - name: grpc - env: - - name: ORDERER_GENERAL_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_LISTENPORT - value: "7050" - - name: ORDERER_GENERAL_LOCALMSPID - value: "OrdererMSP" - - name: ORDERER_GENERAL_TLS_ENABLED - value: "true" - - name: ORDERER_GENERAL_TLS_PRIVATEKEY - value: /var/hyperledger/tls/server.key - - name: ORDERER_GENERAL_TLS_CERTIFICATE - value: /var/hyperledger/tls/server.crt - - name: ORDERER_GENERAL_TLS_ROOTCAS - value: "[/var/hyperledger/tls/ca.crt]" - - name: ORDERER_FILELEDGER_LOCATION - value: /var/hyperledger/production - - name: ORDERER_GENERAL_BOOTSTRAPMETHOD - value: "file" - - name: ORDERER_GENERAL_BOOTSTRAPFILE - value: /var/hyperledger/genesis/genesis.block - volumeMounts: - - name: msp - mountPath: /var/hyperledger/msp - - name: tls - mountPath: /var/hyperledger/tls - - name: genesis - mountPath: /var/hyperledger/genesis - - name: data - mountPath: /var/hyperledger/production - volumes: - - name: msp - secret: - secretName: orderer2-msp - - name: tls - secret: - secretName: orderer2-tls - - name: genesis - secret: - secretName: orderer-genesis-block - items: - - key: genesis.block - path: genesis.block - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 2Gi -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: orderer3 - namespace: hyperledger-fabric -spec: - serviceName: orderer3 - replicas: 1 - selector: - matchLabels: - app: orderer3 - template: - metadata: - labels: - app: orderer3 - spec: - containers: - - name: orderer - image: "hyperledger/fabric-orderer:2.5" - imagePullPolicy: IfNotPresent - command: ["orderer"] - ports: - - containerPort: 7050 - name: grpc - env: - - name: ORDERER_GENERAL_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_LISTENPORT - value: "7050" - - name: ORDERER_GENERAL_LOCALMSPID - value: "OrdererMSP" - - name: ORDERER_GENERAL_TLS_ENABLED - value: "true" - - name: ORDERER_GENERAL_TLS_PRIVATEKEY - value: /var/hyperledger/tls/server.key - - name: ORDERER_GENERAL_TLS_CERTIFICATE - value: /var/hyperledger/tls/server.crt - - name: ORDERER_GENERAL_TLS_ROOTCAS - value: "[/var/hyperledger/tls/ca.crt]" - - name: ORDERER_FILELEDGER_LOCATION - value: /var/hyperledger/production - - name: ORDERER_GENERAL_BOOTSTRAPMETHOD - value: "file" - - name: ORDERER_GENERAL_BOOTSTRAPFILE - value: /var/hyperledger/genesis/genesis.block - volumeMounts: - - name: msp - mountPath: /var/hyperledger/msp - - name: tls - mountPath: /var/hyperledger/tls - - name: genesis - mountPath: /var/hyperledger/genesis - - name: data - mountPath: /var/hyperledger/production - volumes: - - name: msp - secret: - secretName: orderer3-msp - - name: tls - secret: - secretName: orderer3-tls - - name: genesis - secret: - secretName: orderer-genesis-block - items: - - key: genesis.block - path: genesis.block - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 2Gi -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: orderer4 - namespace: hyperledger-fabric -spec: - serviceName: orderer4 - replicas: 1 - selector: - matchLabels: - app: orderer4 - template: - metadata: - labels: - app: orderer4 - spec: - containers: - - name: orderer - image: "hyperledger/fabric-orderer:2.5" - imagePullPolicy: IfNotPresent - command: ["orderer"] - ports: - - containerPort: 7050 - name: grpc - env: - - name: ORDERER_GENERAL_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_LISTENPORT - value: "7050" - - name: ORDERER_GENERAL_LOCALMSPID - value: "OrdererMSP" - - name: ORDERER_GENERAL_TLS_ENABLED - value: "true" - - name: ORDERER_GENERAL_TLS_PRIVATEKEY - value: /var/hyperledger/tls/server.key - - name: ORDERER_GENERAL_TLS_CERTIFICATE - value: /var/hyperledger/tls/server.crt - - name: ORDERER_GENERAL_TLS_ROOTCAS - value: "[/var/hyperledger/tls/ca.crt]" - - name: ORDERER_FILELEDGER_LOCATION - value: /var/hyperledger/production - - name: ORDERER_GENERAL_BOOTSTRAPMETHOD - value: "file" - - name: ORDERER_GENERAL_BOOTSTRAPFILE - value: /var/hyperledger/genesis/genesis.block - volumeMounts: - - name: msp - mountPath: /var/hyperledger/msp - - name: tls - mountPath: /var/hyperledger/tls - - name: genesis - mountPath: /var/hyperledger/genesis - - name: data - mountPath: /var/hyperledger/production - volumes: - - name: msp - secret: - secretName: orderer4-msp - - name: tls - secret: - secretName: orderer4-tls - - name: genesis - secret: - secretName: orderer-genesis-block - items: - - key: genesis.block - path: genesis.block - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 2Gi diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml deleted file mode 100644 index e55814e..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/pvc.yaml +++ /dev/null @@ -1,15 +0,0 @@ -{{- range $i := until (.Values.replicaCount | int) }} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: orderer{{ $i }}-pvc - namespace: {{ $.Values.namespace }} -spec: - accessModes: - - {{ $.Values.storage.accessMode }} - resources: - requests: - storage: {{ $.Values.storage.size }} ---- -{{- end }} - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml deleted file mode 100644 index 954124b..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-msp.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- $domain := .Values.domain -}} -{{- $root := . -}} -{{- range $i := until (.Values.replicaCount | int) }} -{{- $mspPath := printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/msp" $domain $i $domain }} -apiVersion: v1 -kind: Secret -metadata: - name: orderer{{ $i }}-msp - namespace: {{ $root.Values.namespace }} -type: Opaque -data: - {{- range $file, $content := $root.Files.Glob (printf "%s/*" $mspPath) }} - {{ base $file }}: {{ $content | b64enc }} - {{- end }} ---- -{{- end }} - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml deleted file mode 100644 index 649f997..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/secret-tls.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- $domain := .Values.domain -}} -{{- $root := . -}} -{{- range $i := until (.Values.replicaCount | int) }} -apiVersion: v1 -kind: Secret -metadata: - name: orderer{{ $i }}-tls - namespace: {{ $root.Values.namespace }} -type: Opaque -data: - server.crt: {{ $root.Files.Get (printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/tls/server.crt" $domain $i $domain) | b64enc }} - server.key: {{ $root.Files.Get (printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/tls/server.key" $domain $i $domain) | b64enc }} - ca.crt: {{ $root.Files.Get (printf "files/crypto/ordererOrganizations/%s/orderers/orderer%d.%s/tls/ca.crt" $domain $i $domain) | b64enc }} ---- -{{- end }} - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml deleted file mode 100644 index d739205..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/service-orderer.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- range .Values.orderer.nodes }} -apiVersion: v1 -kind: Service -metadata: - name: {{ .name }} - namespace: {{ .namespace }} -spec: - selector: - app: {{ .name }} - ports: - - name: grpc - port: 7050 - targetPort: 7050 ---- -{{- end }} - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml deleted file mode 100644 index ccef110..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/templates/statefulset-orderer.yaml +++ /dev/null @@ -1,78 +0,0 @@ -{{- range .Values.orderer.nodes }} -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ .name }} - namespace: {{ .namespace }} -spec: - serviceName: {{ .name }} - replicas: 1 - selector: - matchLabels: - app: {{ .name }} - template: - metadata: - labels: - app: {{ .name }} - spec: - containers: - - name: orderer - image: "{{ $.Values.image.repository }}:{{ $.Values.image.tag }}" - imagePullPolicy: {{ $.Values.image.pullPolicy }} - command: ["orderer"] - ports: - - containerPort: 7050 - name: grpc - env: - - name: ORDERER_GENERAL_LISTENADDRESS - value: "0.0.0.0" - - name: ORDERER_GENERAL_LISTENPORT - value: "7050" - - name: ORDERER_GENERAL_LOCALMSPID - value: "{{ $.Values.orderer.mspID }}" - - name: ORDERER_GENERAL_TLS_ENABLED - value: "true" - - name: ORDERER_GENERAL_TLS_PRIVATEKEY - value: /var/hyperledger/tls/server.key - - name: ORDERER_GENERAL_TLS_CERTIFICATE - value: /var/hyperledger/tls/server.crt - - name: ORDERER_GENERAL_TLS_ROOTCAS - value: "[/var/hyperledger/tls/ca.crt]" - - name: ORDERER_FILELEDGER_LOCATION - value: /var/hyperledger/production - - name: ORDERER_GENERAL_BOOTSTRAPMETHOD - value: "file" - - name: ORDERER_GENERAL_BOOTSTRAPFILE - value: /var/hyperledger/genesis/genesis.block - volumeMounts: - - name: msp - mountPath: /var/hyperledger/msp - - name: tls - mountPath: /var/hyperledger/tls - - name: genesis - mountPath: /var/hyperledger/genesis - - name: data - mountPath: /var/hyperledger/production - volumes: - - name: msp - secret: - secretName: {{ .mspSecret }} - - name: tls - secret: - secretName: {{ .tlsSecret }} - - name: genesis - secret: - secretName: {{ $.Values.genesis.secretName }} - items: - - key: {{ $.Values.genesis.fileKey }} - path: genesis.block - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: {{ $.Values.persistence.size }} -{{- end }} - diff --git a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml b/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml deleted file mode 100644 index 689eb13..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/fabric-orderer-helm-chart/values.yaml +++ /dev/null @@ -1,38 +0,0 @@ -namespace: hyperledger-fabric - -image: - repository: hyperledger/fabric-orderer - tag: 2.5 - pullPolicy: IfNotPresent - -orderer: - mspID: OrdererMSP - nodes: - - name: orderer0 - namespace: hyperledger-fabric - mspSecret: orderer0-msp - tlsSecret: orderer0-tls - - name: orderer1 - namespace: hyperledger-fabric - mspSecret: orderer1-msp - tlsSecret: orderer1-tls - - name: orderer2 - namespace: hyperledger-fabric - mspSecret: orderer2-msp - tlsSecret: orderer2-tls - - name: orderer3 - namespace: hyperledger-fabric - mspSecret: orderer3-msp - tlsSecret: orderer3-tls - - name: orderer4 - namespace: hyperledger-fabric - mspSecret: orderer4-msp - tlsSecret: orderer4-tls - -genesis: - secretName: orderer-genesis-block - fileKey: genesis.block - -persistence: - size: 2Gi - diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp deleted file mode 100644 index 59d10c5..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/greenstand-values.yaml.bkp +++ /dev/null @@ -1,40 +0,0 @@ -name: greenstand-ca -namespace: hlf-ca - -image: - repository: hyperledger/fabric-ca - tag: 1.5.12 - pullPolicy: IfNotPresent - -port: 7054 - -storage: - accessMode: ReadWriteOnce - size: 2Gi - storageClass: do-block-storage - pvcName: pvc-greenstand-ca - -parentID: greenstand-ca -parentSecret: greenstandcapw -parentHost: root-ca.hlf-ca.svc.cluster.local - -csr: - cn: greenstand-ca - hosts: - - greenstand-ca - - greenstand-ca.hlf-ca.svc.cluster.local - - localhost - -tls: - enabled: true - secretName: greenstand-ca-tls-cert - -msp: - secretName: greenstand-ca-msp - -bootstrapUser: greenstand-ca -bootstrapPassword: greenstandcapw - -service: - port: 7054 - diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint b/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint deleted file mode 100644 index 9d73e63..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-ca/values.yaml.bkp-startingPoint +++ /dev/null @@ -1,41 +0,0 @@ -intermediateCA: - enabled: true - name: greenstand-ca - namespace: hlf-ca - - image: - repository: hyperledger/fabric-ca - tag: 1.5.12 - pullPolicy: IfNotPresent - - port: 7054 - - storage: - accessMode: ReadWriteOnce - size: 2Gi - storageClass: do-block-storage - pvcName: pvc-greenstand-ca # Added from second block - - parentID: greenstand-ca - parentSecret: greenstandcapw - parentHost: root-ca.hlf-ca.svc.cluster.local - - csr: - cn: greenstand-ca # Added from second block - hosts: - - greenstand-ca - - greenstand-ca.hlf-ca.svc.cluster.local - - localhost - - tls: - enabled: true - secretName: greenstand-ca-tls-cert - - msp: - secretName: greenstand-ca-msp - - bootstrapUser: greenstand-ca - bootstrapPassword: greenstandcapw - - service: - port: 7054 diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml deleted file mode 100644 index e8d5d41..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/Chart.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v2 -name: greenstand-peer -description: Hyperledger Fabric Peer Helm chart for Greenstand organization -type: application -version: 0.1.0 -appVersion: "2.5.0" diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl deleted file mode 100644 index a9d308a..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/_helpers.tpl +++ /dev/null @@ -1,3 +0,0 @@ -{{- define "greenstand-peer.fullname" -}} -{{ printf "%s" .Release.Name }} -{{- end }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml deleted file mode 100644 index 811b444..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/deployment.yaml +++ /dev/null @@ -1,145 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ .Values.peer.name }} - namespace: {{ .Values.peer.namespace }} - labels: - app: {{ .Values.peer.name }} -spec: - serviceName: {{ .Values.peer.name }} - replicas: 1 - selector: - matchLabels: - app: {{ .Values.peer.name }} - template: - metadata: - labels: - app: {{ .Values.peer.name }} - spec: - terminationGracePeriodSeconds: 10 - containers: - - name: {{ .Values.peer.name }} - image: "{{ .Values.peer.image.repository }}:{{ .Values.peer.image.tag }}" - imagePullPolicy: {{ .Values.peer.image.pullPolicy }} - ports: - - containerPort: {{ .Values.peer.ports.peer }} - name: peer - - containerPort: {{ .Values.peer.ports.chaincode }} - name: chaincode - - containerPort: {{ .Values.peer.ports.operations }} - name: operations - env: - - name: CORE_PEER_ID - value: {{ .Values.peer.peerID }} - - name: CORE_PEER_LOCALMSPID - value: {{ .Values.peer.mspID }} - - name: CORE_PEER_ADDRESS - value: "{{ .Values.peer.name }}:{{ .Values.peer.ports.peer }}" - - name: CORE_PEER_GOSSIP_EXTERNALENDPOINT - value: {{ .Values.peer.gossip.externalEndpoint }} - - name: CORE_PEER_GOSSIP_BOOTSTRAP - value: {{ .Values.peer.gossip.bootstrap }} - - name: CORE_PEER_MSPCONFIGPATH - value: {{ .Values.peer.msp.configPath }} - - name: CORE_PEER_TLS_ENABLED - value: "{{ .Values.peer.tls.enabled }}" - - name: CORE_PEER_TLS_CERT_FILE - value: {{ printf "%s/%s" .Values.peer.tls.configPath .Values.peer.tls.certFile }} - - name: CORE_PEER_TLS_KEY_FILE - value: {{ printf "%s/%s" .Values.peer.tls.configPath .Values.peer.tls.keyFile }} - - name: CORE_PEER_TLS_ROOTCERT_FILE - value: "/etc/hyperledger/fabric/msp/cacerts/greenstand-ca-hlf-ca-svc-cluster-local-7054-greenstand-ca.pem" - - name: FABRIC_LOGGING_SPEC - value: DEBUG -{{- with .Values.peer.env }} -{{- range . }} - - name: {{ .name }} - value: {{ .value | quote }} -{{- end }} -{{- end }} - volumeMounts: - - name: signcerts - mountPath: /etc/hyperledger/fabric/msp/signcerts - readOnly: true - - name: cacerts - mountPath: /etc/hyperledger/fabric/msp/cacerts - readOnly: true - - name: config - mountPath: /etc/hyperledger/fabric/msp/config.yaml - subPath: config.yaml - readOnly: true - - name: keystore - mountPath: /etc/hyperledger/fabric/msp/keystore - readOnly: false - - name: tls - mountPath: {{ .Values.peer.tls.configPath }} - readOnly: true - - name: admincerts - mountPath: /etc/hyperledger/fabric/msp/admincerts - readOnly: true - - name: tlscacerts - mountPath: /etc/hyperledger/fabric/msp/tlscacerts - readOnly: true - - name: tlsintermediatecerts - mountPath: /etc/hyperledger/fabric/msp/tlsintermediatecerts - readOnly: true - - name: peer-data - mountPath: /var/hyperledger/production - readOnly: false - volumes: - - name: signcerts - secret: - secretName: {{ .Values.peer.msp.secret }} - items: - - key: cert.pem - path: cert.pem - - name: cacerts - secret: - secretName: {{ .Values.peer.msp.secret }} - items: - - key: greenstand-ca-hlf-ca-svc-cluster-local-7054-greenstand-ca.pem - path: greenstand-ca-hlf-ca-svc-cluster-local-7054-greenstand-ca.pem - - name: config - secret: - secretName: {{ .Values.peer.msp.secret }} - items: - - key: config.yaml - path: config.yaml - - name: keystore - secret: - secretName: {{ .Values.peer.msp.secret }} - items: - - key: key.pem - path: key.pem - - name: tls - secret: - secretName: {{ .Values.peer.tls.secret }} - defaultMode: 420 - - name: admincerts - secret: - secretName: {{ .Values.peer.msp.secret }} - items: - - key: cert.pem - path: admincert.pem - - name: tlscacerts - secret: - secretName: {{ .Values.peer.tls.secret }} - items: - - key: ca.crt - path: tlsroot.pem - - name: tlsintermediatecerts - secret: - secretName: {{ .Values.peer.tls.secret }} - items: - - key: ca.crt - path: tlsintermediate.pem - volumeClaimTemplates: - - metadata: - name: peer-data - spec: - accessModes: - - ReadWriteOnce - storageClassName: {{ .Values.peer.storage.storageClass }} - resources: - requests: - storage: {{ .Values.peer.storage.size }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml deleted file mode 100644 index 2ed0018..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/pvc.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: pvc-{{ .Values.peer.name }} - namespace: {{ .Values.peer.namespace }} -spec: - accessModes: - - ReadWriteOnce - storageClassName: {{ .Values.peer.storage.storageClass }} - resources: - requests: - storage: {{ .Values.peer.storage.size }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml deleted file mode 100644 index dd3fab2..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/templates/service.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.peer.name }} - namespace: {{ .Values.peer.namespace }} - labels: - app: {{ .Values.peer.name }} -spec: - type: ClusterIP - ports: - - name: peer - port: {{ .Values.peer.ports.peer }} - targetPort: {{ .Values.peer.ports.peer }} - - name: chaincode - port: {{ .Values.peer.ports.chaincode }} - targetPort: {{ .Values.peer.ports.chaincode }} - - name: operations - port: {{ .Values.peer.ports.operations }} - targetPort: {{ .Values.peer.ports.operations }} - selector: - app: {{ .Values.peer.name }} diff --git a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml b/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml deleted file mode 100644 index 0f106c9..0000000 --- a/hyperledger-fabric-network/ca/helm-charts/greenstand-peer/values.yaml +++ /dev/null @@ -1,53 +0,0 @@ -peer: - name: greenstand-peer0 - peerID: peer0.greenstand.v2 - mspID: GreenstandMSP - org: greenstand - namespace: hlf-greenstand-peer - - image: - repository: hyperledger/fabric-peer - tag: 2.5.7 - pullPolicy: IfNotPresent - - storage: - size: 5Gi - storageClass: do-block-storage - - msp: - secret: peer0-greenstand-v2-msp - configPath: /etc/hyperledger/fabric/msp - certFile: cert.pem - keyFile: key.pem - caCertFile: ca.pem - - tls: - enabled: true - secret: peer0-greenstand-v2-tls - certFile: cert.pem - keyFile: key.pem - caCertFile: ca.crt - configPath: /etc/hyperledger/fabric/tls - - ports: - peer: 7051 - chaincode: 7052 - operations: 9443 - - gossip: - bootstrap: peer0.greenstand.hlf-greenstand-peer.svc.cluster.local:7051 - externalEndpoint: peer0.greenstand.hlf-greenstand-peer.svc.cluster.local:7051 - - env: - - name: CORE_BCCSP_SW_FILEKEYSTORE_KEYSTORE - value: /etc/hyperledger/fabric/msp - - name: CORE_BCCSP_DEFAULT - value: SW - - name: CORE_PEER_MSPCERT_FILE - value: /etc/hyperledger/fabric/msp/cert.pem - - name: CORE_PEER_MSPKEY_FILE - value: /etc/hyperledger/fabric/msp/key.pem - - name: CORE_PEER_MSPCACERT_FILE - value: /etc/hyperledger/fabric/msp/ca.pem - - name: CORE_PEER_CHAINCODELISTENADDRESS - value: "0.0.0.0:7052" From 9bdd962dbe98ded03204f7907a8716ff2a4e99c8 Mon Sep 17 00:00:00 2001 From: Imos Aikoroje <75626230+imos64@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:09:52 -0400 Subject: [PATCH 11/11] Update HLF Enterprise Blockchain Integration with Greenstand Treetracker.md --- ...ckchain Integration with Greenstand Treetracker.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md index 34beff7..53bffec 100644 --- a/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md +++ b/hyperledger-fabric-network/HLF Enterprise Blockchain Integration with Greenstand Treetracker.md @@ -33,7 +33,7 @@ Fabric’s ordering service packages endorsed transactions into blocks, determin --- ## Treetracker Integration Architecture -![alt text]() +HLF TT Arch2 ### Client Applications @@ -65,7 +65,8 @@ Fabric’s ordering service packages endorsed transactions into blocks, determin --- ## Hyperledger Fabric Network Setup -![alt text]() +HLF TT Arch3 + ### Ordering Service A **Raft** ordering service is provisioned with five orderer nodes, distributed across multiple data centres for high availability. Raft is crash-fault-tolerant; it can withstand the loss of up to two nodes in a five-node cluster ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Each channel runs its own Raft instance, electing a leader per channel ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Organisations may specify which of their orderer nodes participate in each channel ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). @@ -75,7 +76,7 @@ A **Raft** ordering service is provisioned with five orderer nodes, distributed Each organisation runs endorsing and committing peers. Endorsing peers execute chaincode and produce proposal responses; committing peers validate transactions and update their ledgers. Peers use a **gossip** protocol to discover other peers, disseminate blocks and private data, and keep ledgers consistent ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). Gossip also elects leaders within organisations to efficiently pull blocks from the ordering service ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). ### Channels -![alt text]() +HLF TT Arch4 2 Treetracker uses several channels: @@ -90,7 +91,7 @@ Treetracker uses several channels: For each organisation, a root CA issues certificates for one or more intermediate CAs. Intermediate CAs issue X.509 certificates to users, peers and orderers. The Fabric CA server is initialised with a CSR (Certificate Signing Request) specifying fields like Common Name (CN), organisation (O), organisational unit (OU), location (L), state (ST) and country (C) ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The server can generate a self-signed CA certificate or obtain a certificate signed by a parent CA ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). TLS is enabled to secure enrolment and registration ([hyperledger-fabric-ca.readthedocs.io](https://hyperledger-fabric-ca.readthedocs.io)). The Membership Service Provider (MSP) uses these certificates to define valid identities and assign roles ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)). ### Smart Contracts (Chaincode) -![alt text]() +HLF TT Arch5 Chaincode encapsulates the business logic of Treetracker. Four main contracts are envisaged: @@ -107,7 +108,7 @@ Chaincode runs in a Docker container managed by peers. Fabric’s **new chaincod --- ## Transaction Flow Mapping -![alt text]() +HLF TT Arch6 A typical tree registration and token issuance flow maps onto Fabric’s transaction flow ([hyperledger-fabric.readthedocs.io](https://hyperledger-fabric.readthedocs.io)):