{"id":13625104,"url":"https://github.com/LayerXcom/confidential-computing-modules","last_synced_at":"2025-04-16T06:31:44.820Z","repository":{"id":38330810,"uuid":"218683339","full_name":"LayerXcom/confidential-computing-modules","owner":"LayerXcom","description":"A Module for Privacy-preserving State Transitions with Verifiability","archived":false,"fork":false,"pushed_at":"2023-03-25T00:39:11.000Z","size":4952,"stargazers_count":90,"open_issues_count":143,"forks_count":10,"subscribers_count":24,"default_branch":"main","last_synced_at":"2024-05-22T07:51:05.996Z","etag":null,"topics":["blockchain","rust","sgx"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LayerXcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-31T04:19:15.000Z","updated_at":"2024-06-11T17:05:54.811Z","dependencies_parsed_at":"2024-06-12T21:02:11.314Z","dependency_job_id":null,"html_url":"https://github.com/LayerXcom/confidential-computing-modules","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LayerXcom%2Fconfidential-computing-modules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LayerXcom%2Fconfidential-computing-modules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LayerXcom%2Fconfidential-computing-modules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LayerXcom%2Fconfidential-computing-modules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LayerXcom","download_url":"https://codeload.github.com/LayerXcom/confidential-computing-modules/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223502362,"owners_count":17155938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["blockchain","rust","sgx"],"created_at":"2024-08-01T21:01:50.908Z","updated_at":"2024-11-08T14:30:27.921Z","avatar_url":"https://github.com/LayerXcom.png","language":"Rust","readme":"CCMs (Confidential Computing Modules) is a blockchain-agnostic execution environment with privacy and auditability based on TEE (Trusted Execution Environment). CCMs enables flexible execution of business logic while protecting a shared state that is not desired to be revealed to the others. CCMs also provides auditability, i.e., only an auditor can read a specific part of the state. The current implementation of CCMs only supports Ethereum-based blockchains such as [Quorum](https://github.com/jpmorganchase/quorum) as the backend.\n\nPlease refer to [White Paper (JP)](https://layerx.co.jp/wp-content/uploads/2020/06/anonify.pdf), [CCMs Book(EN)](https://layerxcom.github.io/anonify-book-en/) / [CCMs Book(JP)](https://layerxcom.github.io/anonify-book/) for more information.\n\n*Note: This is a prototype implementation and has not been tested for production.*\n\n## Setup\nCopy environment variables and set your `SPID` and `SUB_KEY`.\n```\n$ cp .env.sample .env\n```\n\n## Running CCMs nodes\n\n### docker\n[The ERC20-like application](example/erc20/state-transition/src/lib.rs) is implemented as the initial state transition functions. (Assumed your hardware supports Intel SGX.)\n\nYou can build a latest docker image and then run the container:\n```\n$ docker build -t anonify-server:latest -f docker/server.Dockerfile ./\n$ docker run -v /var/run/aesmd:/var/run/aesmd --device /dev/sgx/enclave --env-file ./.env --name anonify -d --rm -it anonify-server:latest\n```\n\n### shell scripts\n\nRunning nodes\n```\n$ ./scripts/start-docker.sh\n$ cd anonify\n$ ./scripts/env-anonify.sh // Change env vars depending on your environment\n$ ./scripts/run-server.sh\n```\n\n## Using CLI\nYou can use ccms-cli to communicate with a whole CCMs system. See the [transfer tutorial section](https://layerxcom.github.io/anonify-book-en/Tutorials/ERC20/transfer/) for usage.\n\nBuild CCMs's command line utilities.\n```\n$ ./scripts/build-cli.sh\n```\n\nIf you want to build artifacts in release mode, pass a `--release` argument.\n```\n$ ./scripts/build-cli.sh --release\n```\n\n## Developing\n\nYou can try to build the codebase on your local machine or test it in sgx-enabled environment.\n\n###  Building in simulation mode\n\nCCMs assumes your hardware supports Intel SGX. Without such hardware, you can build it in simulation mode, which allows you to build on macOS.\n\n```\n$ docker run -v `pwd`:/root/anonify --rm -it osuketh/anonify:20210310-1804-1.1.3\n```\n\n### Testing (ERC20 app)\n\nAssumed your hardware supports Intel SGX or run it on [Azure Confidential Computing](https://azure.microsoft.com/ja-jp/solutions/confidential-compute/), you can test the core component you built works correctly.\n\nThe very first thing you need to do is starting aesm service in a SGX-enabled environment. For more details, see: https://github.com/apache/incubator-teaclave-sgx-sdk/blob/master/documents/sgx_in_mesalock_linux.md#solution-overview\n```\nLD_LIBRARY_PATH=/opt/intel/sgx-aesm-service/aesm /opt/intel/sgx-aesm-service/aesm/aesm_service\n```\n\nRunning intel SGX environment, and then, you can build in HW mode.\n```\n$ cd anonify\n$ UID=`id -u` GID=`id -g` docker-compose up -d\n$ docker-compose exec sgx_machine bash\n$ ./scripts/test.sh\n```\n\n### Implementation Tips\n\nSee [docs/](docs/) to understand code-level architecture.\n\n## Documentations\nCurrently, documents are only available in Japanese.\n\n- [White Paper](https://layerx.co.jp/wp-content/uploads/2020/06/anonify.pdf)\n- [Slides](https://speakerdeck.com/layerx/anonify)\n- [CCMs Book(EN)](https://layerxcom.github.io/anonify-book-en/) / [CCMs Book(JP)](https://layerxcom.github.io/anonify-book/)\n\n## License\n\nCCMs is primarily distributed under the terms of the [Apache License (Version 2.0)], see [LICENSE](https://github.com/LayerXcom/confidential-computing-modules/blob/main/LICENSE) for details.\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLayerXcom%2Fconfidential-computing-modules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLayerXcom%2Fconfidential-computing-modules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLayerXcom%2Fconfidential-computing-modules/lists"}