Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hyperledger-labs/fabric-operations-console
A UI for managing Fabric peers, orderers, and CAs
https://github.com/hyperledger-labs/fabric-operations-console
Last synced: 3 days ago
JSON representation
A UI for managing Fabric peers, orderers, and CAs
- Host: GitHub
- URL: https://github.com/hyperledger-labs/fabric-operations-console
- Owner: hyperledger-labs
- License: apache-2.0
- Created: 2021-06-05T16:36:05.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T08:37:02.000Z (6 months ago)
- Last Synced: 2024-05-22T11:36:26.066Z (6 months ago)
- Language: JavaScript
- Homepage:
- Size: 20.2 MB
- Stars: 107
- Watchers: 13
- Forks: 60
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Fabric Operations Console
The console provides the following high level function:
- Ability to import and manage all Hyperledger Fabric Components from a single web console, no matter where they are located.
- Maintain complete control over identities, channels, and smart contracts.
- Join Peers to Channels and view channel membership as well as individual transactions and channel details.
- Register, view, delete, and re-enroll CA Users.
- View Ordering cluster and node information as well as view and modify consortium and channel membership.
- View and modify channel capabilities and ordering service parameters.
- Install and Instantiate chaincode. Supports both 1.x and 2.x Lifecycle.
- View, Create, Import and Export Organizations and Identities.
- Role Based Access Control in UI to tightly control which Console users can perform which operations.The console relies on [GRPC web](https://grpc.io/docs/platforms/web/) to allow GRPC based communication with Orderers and Peers via Node.js. Management of Certificate Authorities is done via REST API and does not require a GRPC Web Instance.
For more Information see the [documentation for the current IBM production offerings](https://cloud.ibm.com/docs/blockchain-sw-252?topic=blockchain-sw-252-ibp-console-govern) which are driven by the code in this Lab proposal.
# High level architecture
![High level architecture](/docs/images/architecture_hl.png)# Meetup Recordings
[Console Overview](https://youtu.be/ndrWBoBlTDM)[AMA](https://youtu.be/HGThtz5A6S8)
[Manage orderers without system channel](https://youtu.be/qlR_56I3E7U)
# Running Fabric Operations Console
You can use the following steps to provision a network using Fabric test-network, add grpc-web proxy on that of that and import components into Console so that you can manage the test network.
## Prerequisites
* zip
* jq
* docker
* docker-compose (V2)
* Node.js v18 or higher
* _[WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10) (Windows only)_## Setup
Clone console`git clone https://github.com/hyperledger-labs/fabric-operations-console`
`cd fabric-operations-console`
## Bring up a Fabric 2.2.3 network
You can find more information on the test network setup from here
https://hyperledger-fabric.readthedocs.io/en/latest/test_network.html`./scripts/setupNetwork.sh up`
## Bring up console
`./scripts/setupConsole.sh up`## Create zip file
Run the following command to create a zip of the console JSONs to match the network setup above`./scripts/createAssets.sh`
## Console setup
* Open browser to URL http://localhost:3000/
* Login with admin/password
* Change password### Import components into console
* Switch to "Settings" page
* Click "Import"
* Select zip file ./workarea/console_assets.zip### Create Identities
* Switch to Nodes page and perform the following steps#### ordererca
* Select CA "ordererca-local"
* Associate Identity
* Enter admin/adminpw for enroll id and secret
* Select the overflow menu (3 dots) against "ordererAdmin"
* Select "Enroll identity"
* Enter "ordererAdminpw" for Enroll secret
* Next
* Enter identity display name as "OrdererMSP Admin"
* Click "Add Identity to wallet"#### org1ca
* Select CA "org1ca-local"
* Associate Identity
* Enter admin/adminpw for enroll id and secret
* Select the overflow menu (3 dots) against "org1admin"
* Select "Enroll identity"
* Enter "org1adminpw" for Enroll secret
* Next
* Enter identity display name as "Org1MSP Admin"
* Click "Add Identity to wallet"#### org2ca
* Select CA "org2ca-local"
* Associate Identity
* Enter admin/adminpw for enroll id and secret
* Select the overflow menu (3 dots) against "org2admin"
* Select "Enroll identity"
* Enter "org2adminpw" for Enroll secret
* Next
* Enter identity display name as "Org2MSP Admin"
* Click "Add Identity to wallet"### Associate Identity
* Switch to Nodes page and perform the following steps
* Select peer "org1_peer1 - local"
* Associate Identity
* Select "Org1MSP Admin"* Select peer "org2_peer1 - local"
* Associate Identity
* Select "Org2MSP Admin"* Select orderer "orderer_local"
* Associate Identity
* Select "OrdererMSP Admin"## Enjoy!
You should be able to manage channels, Using 2.0 lifecycle to install, approve, commit smart contracts following the guide## Bring down network
`./scripts/setupConsole.sh down`
`./scripts/setupNetwork.sh down`
## couchdb credentials (for console)
* URL - http://127.0.0.1:5985/_utils/
* Login - admin/password# Developing Fabric Operations Console
This repository is managed using [Lerna](https://github.com/lerna/lerna).It contains the following applications:
- **packages/apollo**: Frontend React.js for the console
- **packages/athena**: Backend server for the console
- **packages/stitch**:To run commands in this repository, install lerna:
```sh
npm install -g lerna
```For more information, see the documentation at: https://lerna.js.org/
## Install
```sh
lerna bootstrap
```_Note: You can use `lerna clean && lerna bootstrap` to delete existing `node_modules` before lerna runs `npm install`._
## Usage
### Developing Athena
Builds Apollo and starts the file watcher for Athena.
Before running, ensure that you have the necessary local env files in the `packages/athena/env` directory. See the [athena readme](https://github.com/hyperledger-labs/fabric-operations-console/tree/main/packages/athena#acquiring-a-deployer-backend) for all the details on what these files should contain.
```sh
lerna run dev:athena
```### Developing Apollo
Starts Apollo and Athena in dev mode. Apollo proxies its backend requests to Athena.
```sh
lerna run build_all
lerna run dev:apollo
```_Note: even though this command is for running Apollo in dev mode, Athena still needs a production build of Apollo to start. If this command fails, it's likely because there is no Apollo build present._
## Run tests
```sh
lerna run test
```## Build your own docker images (for console and grpc-web proxy)
Ensure that the `docker` has enough resources to be able to build the images. We recommend 2 CPUs and 4 GB RAM available to build.`./scripts/buildImages.sh`
If you do not have enough memory allocated to docker, the following command will fail with out of memory error similar to the below.
```
#16 109.5 The build failed because the process exited too early.
This probably means the system ran out of memory or someone called `kill -9` on the process.
```
___## FAQ / Need Help?
Check out common error messages, fixes, and other questions in our [FAQ](./FAQ.md).## APIs
Check out our [api doc](./docs/apis.md) for APIs offered by the Console.