{"id":39573198,"url":"https://github.com/cita-cloud/operator-proxy","last_synced_at":"2026-01-18T07:20:12.509Z","repository":{"id":41749107,"uuid":"441037945","full_name":"cita-cloud/operator-proxy","owner":"cita-cloud","description":"A proxy server and command line interface for cita-cloud-operator","archived":false,"fork":false,"pushed_at":"2022-05-13T10:16:02.000Z","size":250,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-21T02:17:28.873Z","etag":null,"topics":["cita-cloud","grpc","operator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cita-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-23T02:19:43.000Z","updated_at":"2024-06-21T02:17:28.876Z","dependencies_parsed_at":"2022-08-11T15:11:47.290Z","dependency_job_id":null,"html_url":"https://github.com/cita-cloud/operator-proxy","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/cita-cloud/operator-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cita-cloud%2Foperator-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cita-cloud%2Foperator-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cita-cloud%2Foperator-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cita-cloud%2Foperator-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cita-cloud","download_url":"https://codeload.github.com/cita-cloud/operator-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cita-cloud%2Foperator-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28533049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cita-cloud","grpc","operator"],"created_at":"2026-01-18T07:20:10.963Z","updated_at":"2026-01-18T07:20:12.500Z","avatar_url":"https://github.com/cita-cloud.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"简介\n----\n本项目包括`cita-cloud-operator`的代理服务端`operator-proxy`和客户端`cco-cli`( cita-cloud-operator command-line interface ) 两部分\n- `cita-cloud-operator`: 一个管理`cita cloud`链的生命周期的自定义控制器\n- `operator-proxy`: `cita-cloud-operator` 的服务端代理程序，通过RPC暴露接口 \n- `cco-cli`: 连接`operator-proxy`的客户端工具，可通过命令的方式快速创建链和节点\n\n安装\n----\n### `cita-cloud-operator`的安装\n`cita-cloud-operator`的`Helm`安装方式建该链接: \u003chttps://github.com/cita-cloud/cita-cloud-operator\u003e\n\n### `operator-proxy`的安装\n- 添加Chart仓库\n```shell\nhelm repo add cita-cloud-operator-proxy https://cita-cloud.github.io/operator-proxy\n```\n- 创建安装`operator-proxy`的命名空间\n```shell\nkubectl create ns cita\n```\n- 执行安装\n```shell\nhelm install cita-cloud-operator-proxy cita-cloud-operator-proxy/cita-cloud-operator-proxy -n=cita\n```\n- 验证安装\n```\nkubectl get pod -ncita | grep cita-cloud-operator-proxy\n```\n如果实际输出的`STATUS`状态是`Running`, 表示`operator-proxy`已经成功安装。\n\n### `cco-cli`的安装\n- 最新版本安装\n```shell\ncurl -sLS https://raw.githubusercontent.com/cita-cloud/operator-proxy/master/install-cli.sh | bash\n```\n- 手动安装指定版本\n可根据运行平台下载对应版本的二进制至可执行目录下：\u003chttps://github.com/cita-cloud/operator-proxy/releases\u003e\n\n- 设置环境变量(以`Linux`为例)\n获得`operator-proxy`暴露的`NodePort`端口(示例中为30194)\n```shell\nkubectl describe service cita-cloud-operator-proxy -ncita | grep NodePort\n```\n设置环境变量，以`Kubernetes`集群的任意一个节点`IP`和`NodePort`端口作为`endpoint`\n```shell\nexport OPERATOR_PROXY_ENDPOINT=192.168.10.120:30194\n```\n\n- 执行帮助命令\n```shell\ncco-cli -h\nThe cita-cloud operator command line interface lets you create and manage CITA-CLOUD chain.\n\nUsage:\n  cco-cli [command]\n```\n\n示例\n----\n\n### 创建一条名为`test-chain`的链(默认3节点，并创建在名为`cita`的环境变量中)\n该命令是多个子命令的集合\n```shell\ncco-cli all-in-one create test-chain\n```\n可以看到有3个`Pod`被创建出来\n```shell\nkubectl get pod -ncita\nNAME                                          READY   STATUS    RESTARTS   AGE\ntest-chain-9ba8b85938c7-0                     6/6     Running   0          18h\ntest-chain-af41db9a3064-0                     6/6     Running   0          18h\ntest-chain-efe071517f54-0                     6/6     Running   0          18h\n```\n\n### chain command\n```shell\n$ cco-cli chain -h\nChain related commands\n\nUsage:\n  cco-cli chain [command]\n\nAvailable Commands:\n  delete      Delete a chain in the k8s cluster\n  describe    Show chain detail in the k8s cluster\n  init        Initialize a chain into the k8s cluster\n  list        List chain in the k8s cluster\n  online      Online a chain into the k8s cluster\n```\n\n- 初始化一条名为`test-chain`的链\n```shell\n$ cco-cli chain init test-chain\ninit chain [cita/test-chain] success\n```\n- 此时，这条链的状态为`Publicizing`，代表该链的信息需要向各参与方公示，可以通过`describe`命令查看详情\n```shell\n$ cco-cli chain describe test-chain\nChain Base Info:\n+-----------------+--------------------------------------------------------------------+\n|      FIELD      |                               VALUE                                |\n+-----------------+--------------------------------------------------------------------+\n| Name            | test-chain                                                         |\n| Namespace       | cita                                                               |\n| Id              | 63586a3c0255f337c77a777ff54f0040b8c388da04f23ecee6bfd4953a6512b4   |\n| Timestamp       | 1644466132459760                                                   |\n| PrevHash        | 0x0000000000000000000000000000000000000000000000000000000000000000 |\n| BlockInterval   | 3                                                                  |\n| BlockLimit      | 100                                                                |\n| EnableTls       | false                                                              |\n| ConsensusType   | Raft                                                               |\n| NetworkImage    | citacloud/network_p2p:v6.3.0                                       |\n| ConsensusImage  | citacloud/consensus_raft:v6.3.0                                    |\n| ExecutorImage   | citacloud/executor_evm:v6.3.0                                      |\n| StorageImage    | citacloud/storage_rocksdb:v6.3.0                                   |\n| ControllerImage | citacloud/controller:v6.3.0                                        |\n| KmsImage        | citacloud/kms_sm:v6.3.0                                            |\n| Status          | Publicizing                                                             |\n+-----------------+--------------------------------------------------------------------+\nAdmin Account:\n+-------+-----------+------------+-------+--------+\n| NAME  | NAMESPACE |   CHAIN    | ROLE  | DOMAIN |\n+-------+-----------+------------+-------+--------+\n| admin |   cita    | test-chain | Admin |        |\n+-------+-----------+------------+-------+--------+\nNode Info:\n+--------+-----------+------------+---------+------+---------+\n|  NAME  | NAMESPACE |   CHAIN    | ACCOUNT | SIZE | STATUS  |\n+--------+-----------+------------+---------+------+---------+\n| node-1 |   cita    | test-chain |  alice  | 10Gi | Running |\n| node-2 |   cita    | test-chain |   bob   | 10Gi | Running |\n| node-3 |   cita    | test-chain | carlos  | 10Gi | Running |\n+--------+-----------+------------+---------+------+---------+\n```\n- 经各方确认通过后，上线这条链，上线前需要创建好`Admin`账户和共识节点账户，参考[account command](#account command)\n```shell\n$ cco-cli chain online test-chain\nonline chain [cita/test-chain] success\n```\n- 查看一条链的详情\n```shell\n$ cco-cli chain describe test-chain\nChain Base Info:\n+-----------------+--------------------------------------------------------------------+\n|      FIELD      |                               VALUE                                |\n+-----------------+--------------------------------------------------------------------+\n| Name            | test-chain                                                         |\n| Namespace       | cita                                                               |\n| Id              | 63586a3c0255f337c77a777ff54f0040b8c388da04f23ecee6bfd4953a6512b4   |\n| Timestamp       | 1644466132459760                                                   |\n| PrevHash        | 0x0000000000000000000000000000000000000000000000000000000000000000 |\n| BlockInterval   | 3                                                                  |\n| BlockLimit      | 100                                                                |\n| EnableTls       | false                                                              |\n| ConsensusType   | Raft                                                               |\n| NetworkImage    | citacloud/network_p2p:v6.3.0                                       |\n| ConsensusImage  | citacloud/consensus_raft:v6.3.0                                    |\n| ExecutorImage   | citacloud/executor_evm:v6.3.0                                      |\n| StorageImage    | citacloud/storage_rocksdb:v6.3.0                                   |\n| ControllerImage | citacloud/controller:v6.3.0                                        |\n| KmsImage        | citacloud/kms_sm:v6.3.0                                            |\n| Status          | Online                                                             |\n+-----------------+--------------------------------------------------------------------+\nAdmin Account:\n+-------+-----------+------------+-------+--------+\n| NAME  | NAMESPACE |   CHAIN    | ROLE  | DOMAIN |\n+-------+-----------+------------+-------+--------+\n| admin |   cita    | test-chain | Admin |        |\n+-------+-----------+------------+-------+--------+\nNode Info:\n+--------+-----------+------------+---------+------+---------+\n|  NAME  | NAMESPACE |   CHAIN    | ACCOUNT | SIZE | STATUS  |\n+--------+-----------+------------+---------+------+---------+\n| node-1 |   cita    | test-chain |  alice  | 10Gi | Running |\n| node-2 |   cita    | test-chain |   bob   | 10Gi | Running |\n| node-3 |   cita    | test-chain | carlos  | 10Gi | Running |\n+--------+-----------+------------+---------+------+---------+\n```\n- 列出命名空间下的所有链\n```shell\n$ cco-cli chain list -n cita\n+------------+-----------+--------+\n|    NAME    | NAMESPACE | STATUS |\n+------------+-----------+--------+\n| test-chain |   cita    | Online |\n+------------+-----------+--------+\n```\n- 删除一条链\n```shell\n$ cco-cli chain delete test-chain -n cita\ndelete chain [cita/test-chain] success\n```\n\n### account command\n```shell\n$ cco-cli account -h\nAccount related commands\n\nUsage:\n  cco-cli account [command]\n\nAvailable Commands:\n  create      Create a node account for chain\n  list        List node account in the k8s cluster\n```\n- 创建`Admin`账户: `admin`\n```shell\n$ cco-cli account create admin --chain test-chain --kmsPassword 123456 --role Admin\ncreate account [cita/admin] success\n```\n若创建时指定`address`字段，则不会生成新的`admin`账户地址，链的配置会将此地址作为`admin`账户的地址\n- 创建共识账户: `alice`，若链的网络选择`tls`，则必须加上`domain`参数\n```shell\n$ cco-cli account create alice --chain test-chain --kmsPassword 123456 --role Consensus --domain alice.cita.com\ncreate account [cita/alice] success\n```\n- 创建普通账户: `davis`，若链的网络选择`tls`，则必须加上`domain`参数\n```shell\n$ cco-cli account create davis --chain test-chain --kmsPassword 123456 --role Ordinary --domain davis.cita.com\ncreate account [cita/davis] success\n```\n- 查看命名空间下所有用户\n```shell\n$ cco-cli account list -n cita\n+--------+-----------+------------+-----------+-----------------+\n|  NAME  | NAMESPACE |   CHAIN    |   ROLE    |   DOMAIN        |\n+--------+-----------+------------+-----------+-----------------+\n| admin  |   cita    | test-chain |   Admin   |                 |\n| alice  |   cita    | test-chain | Consensus | alice.cita.com  |\n|  bob   |   cita    | test-chain | Consensus |  bob.cita.com   |\n| carlos |   cita    | test-chain | Consensus | carlos.cita.com |\n| davis  |   cita    | test-chain | Ordinary  | davis.cita.com  |\n+--------+-----------+------------+-----------+-----------------+\n```\n\n### node command\n```shell\n$ cco-cli node -h\nNode related commands\n\nUsage:\n  cco-cli node [command]\n\nAvailable Commands:\n  delete      Delete a node\n  init        Init a node for chain\n  list        List node in the k8s cluster\n  reload      Reload the node config, usually used to add or delete nodes in a chain\n  start       Start a node\n  stop        Stop a node\n```\n- 初始化链下的一个节点：`node1`，需匹配对应的链名和账户\n可初始化与共识账户对应的节点数量\n```shell\n$ cco-cli node init node-1 --account alice --chain test-chain --storageClassName nas-client-provisioner --storageSize 10737418240\ninit node [cita/node-1] success\n```\n- 启动对应的各个节点\n```shell\n$ cco-cli node start node-1\nstart node [cita/node-1] success\n```\n其他共识节点同上\n- 列出对应链下的所有节点\n```shell\n$ cco-cli node list --chain test-chain\n+--------+-----------+------------+---------+------+---------+\n|  NAME  | NAMESPACE |   CHAIN    | ACCOUNT | SIZE | STATUS  |\n+--------+-----------+------------+---------+------+---------+\n| node-2 |   cita    | test-chain |   bob   | 10Gi | Running |\n| node-3 |   cita    | test-chain | carlos  | 10Gi | Running |\n| node-1 |   cita    | test-chain |  alice  | 10Gi | Running |\n+--------+-----------+------------+---------+------+---------+\n```\n- 新增普通节点`node-4`，对应账户为`davis`\n```shell\n# 初始化\ncco-cli node init node-4 --account davis --chain test-chain\n# 启动\ncco-cli node start node-4\n```\n新增节点后，原有节点均需要执行`reload`操作，以便能与新节点进行网络交互\n```shell\n$ cco-cli node reload node-1\nreload node [cita/node-1] success\n$ cco-cli node reload node-2\nreload node [cita/node-2] success\n$ cco-cli node reload node-3\nreload node [cita/node-3] success\n$ cco-cli node reload node-4\nreload node [cita/node-4] success\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcita-cloud%2Foperator-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcita-cloud%2Foperator-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcita-cloud%2Foperator-proxy/lists"}