# Status of implementation
In this document you'll find a list of methods available on fabric. A full list can be found [here](https://hyperledger.github.io/fabric-protos/protos.html).
Most of the respond or request structs are available through the proto files of fabric. For this crate we need to implement every request and respond handling and therefore you'll find every request in this list.
This list ist sorted by relevance. Gateway and Chaincode gives basic functionallity of processing chaincode calls.
If you find yourself missing a method or for any features please open an issue.
## Legend
| ✅ | Done |
| ❌ | Missing |
| 🏻 | Partially |
| 🖉 | In Progress/Planned |
## [Gateway](https://hyperledger.github.io/fabric-protos/protos.html#gateway-Gateway)
| Endorse | ✅ | 🏻 | 🏻 |
| Submit | ✅ | 🏻 | 🏻 |
| CommitStatus | ✅ | ❌ | 🏻 |
| Evaluate | ✅ | ❌ | 🏻 |
| ChaincodeEvents | ✅ | ❌ | 🖉 |
## [Chaincode](https://hyperledger.github.io/fabric-protos/protos.html#protos-Chaincode)
| Connect | ✅ | 🏻 | ❌ |
### Chaincode Stream Methods
| DelState | ✅ | 🏻 | 🏻 |
| GetHistoryForKey | ✅ | ❌ | 🏻 |
| GetState | ✅ | 🏻 | 🏻 |
| GetStateByRange | ✅ | 🏻 | 🏻 |
| GetStateMetadata | ✅ | ❌ | 🏻 |
| GetStateMultiple | ✅ | ❌ | 🏻 |
| PurgePrivateState | ✅ | ❌ | 🏻 |
| PutState | ✅ | 🏻 | 🏻 |
| PutStateMetadata | ✅ | ❌ | 🏻 |
## [ChaincodeSupport](https://hyperledger.github.io/fabric-protos/protos.html#protos-ChaincodeSupport)
| Connect | ✅ | ❌ | 🏻 |
## [Snapshot](https://hyperledger.github.io/fabric-protos/protos.html#protos-Snapshot)
| Generate | ✅ | ❌ | 🏻 |
| Cancel | ✅ | ❌ | 🏻 |
| QueryPendings | ✅ | ❌ | 🏻 |
### Snapshot Methods
| SignedSnapshotRequest | ✅ | ❌ | 🏻 |
| SnapshotRequest | ✅ | ❌ | 🏻 |
## [Gossip](https://hyperledger.github.io/fabric-protos/protos.html#gossip-Gossip)
| GossipStream | ❌ | ❌ | ❌ |
| Ping | ❌ | ❌ | ❌ |
### Gossip Stream Methods
| Data | ❌ | ❌ | ❌ |
| Membership | ❌ | ❌ | ❌ |
| RemotePvtData | ❌ | ❌ | ❌ |
| RemoteState | ❌ | ❌ | ❌ |
## [Discovery](https://hyperledger.github.io/fabric-protos/protos.html#discovery-Discovery)
| Discover | ❌ | ❌ | ❌ |
## [AtomicBroadcast](https://hyperledger.github.io/fabric-protos/protos.html#orderer-AtomicBroadcast)
| Broadcast | ❌ | ❌ | ❌ |
| Deliver | ❌ | ❌ | ❌ |
### AtomicBroadcast Stream Methods
| SeekInfo | ❌ | ❌ | ❌ |
| SeekNewest | ❌ | ❌ | ❌ |
| SeekNextCommit | ❌ | ❌ | ❌ |
| SeekOldest | ❌ | ❌ | ❌ |
| SeekPosition | ❌ | ❌ | ❌ |
| SeekSpecified | ❌ | ❌ | ❌ |
## [Cluster](https://hyperledger.github.io/fabric-protos/protos.html#orderer-Cluster)
| Step | ❌ | ❌ | ❌ |
### Cluster Stream Methods
| Consensus | ❌ | ❌ | ❌ |
| Step | ❌ | ❌ | ❌ |
| Submit | ❌ | ❌ | ❌ |
| ClusterNodeServiceStep | ❌ | ❌ | ❌ |
| NodeAuth | ❌ | ❌ | ❌ |
| NodeConsensus | ❌ | ❌ | ❌ |
| NodeTransactionOrder | ❌ | ❌ | ❌ |
## [ClusterNodeService](https://hyperledger.github.io/fabric-protos/protos.html#orderer-ClusterNodeService)
| Step | ❌ | ❌ | ❌ |
### ClusterNodeService Stream Methods
| ClusterNodeServiceStep | ❌ | ❌ | ❌ |
| NodeAuth | ❌ | ❌ | ❌ |
| NodeConsensus | ❌ | ❌ | ❌ |
| NodeTransactionOrder | ❌ | ❌ | ❌ |
## [Deliver](https://hyperledger.github.io/fabric-protos/protos.html#protos-Deliver)
| Deliver | ❌ | ❌ | ❌ |
| DeliverFiltered | ❌ | ❌ | ❌ |
| DeliverWithPrivateData | ❌ | ❌ | ❌ |
## [Endorser](https://hyperledger.github.io/fabric-protos/protos.html#protos-Endorser)
| ProcessProposal | ❌ | ❌ | ❌ |
## [Fabric CA](https://hyperledger-fabric-ca.readthedocs.io/en/latest/)
The Fabric CA is a separate service from the peer gateway and exposes a REST API (not gRPC).
It manages user and service identities (X.509 certificates) for each organization.
| GetCAInfo | ✅ | ✅ | ✅ |
| ListIdentities | ✅ | ✅ | ✅ |
| GetIdentity | ✅ | ✅ | ✅ |
| RegisterIdentity | ✅ | ✅ | ✅ |
| ModifyIdentity | ✅ | ✅ | ✅ |
| RemoveIdentity | ✅ | ✅ | ✅ |
| ListAffiliations | ✅ | ✅ | ✅ |
| GetAffiliation | ✅ | ✅ | ✅ |
| Revoke | ✅ | ✅ | ✅ |
| Enroll | ❌ | ❌ | ❌ |
| Reenroll | ❌ | ❌ | ❌ |
Required environment variables for Fabric CA integration tests:
- `FABRIC_CA_URL` — base URL of the CA server, e.g. `https://localhost:7054` (tests are skipped if not set)
- `PEER1_ADMIN_CERT_PATH` — reused from lifecycle tests (admin enrollment certificate)
- `PEER1_ADMIN_KEY_PATH` — reused from lifecycle tests (admin private key)
- `PEER1_TLS_CERT_PATH` — reused from gateway/lifecycle tests (shared TLS root CA certificate)