{"id":21983920,"url":"https://github.com/linera-io/linera-protocol","last_synced_at":"2026-01-22T01:04:08.080Z","repository":{"id":155778582,"uuid":"439772085","full_name":"linera-io/linera-protocol","owner":"linera-io","description":"Main repository for the Linera protocol","archived":false,"fork":false,"pushed_at":"2025-05-12T13:49:16.000Z","size":183524,"stargazers_count":26480,"open_issues_count":529,"forks_count":1710,"subscribers_count":155,"default_branch":"main","last_synced_at":"2025-05-12T14:49:24.764Z","etag":null,"topics":["blockchain","rust","wasm"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/linera-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2021-12-19T04:09:21.000Z","updated_at":"2025-05-12T14:41:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c802118-4ec2-482e-9764-6aa6e6736286","html_url":"https://github.com/linera-io/linera-protocol","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linera-io%2Flinera-protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linera-io%2Flinera-protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linera-io%2Flinera-protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linera-io%2Flinera-protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linera-io","download_url":"https://codeload.github.com/linera-io/linera-protocol/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253761013,"owners_count":21960052,"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","wasm"],"created_at":"2024-11-29T18:02:08.246Z","updated_at":"2026-01-22T01:04:08.075Z","avatar_url":"https://github.com/linera-io.png","language":"Rust","funding_links":[],"categories":["Rust","Applications","区块链_智能合约","Repos"],"sub_categories":["Blockchain","管理面板"],"readme":"# \u003cimg src=\"https://github.com/linera-io/linera-protocol/assets/1105398/fe08c941-93af-4114-bb83-bcc0eaec95f9\" width=\"250\" height=\"85\" /\u003e\n\n[![License](https://img.shields.io/github/license/linera-io/linera-protocol)](LICENSE)\n[![Build Status for Docker](https://github.com/linera-io/linera-protocol/actions/workflows/docker-compose.yml/badge.svg)](https://github.com/linera-io/linera-protocol/actions/workflows/docker-compose.yml)\n[![Build Status for Rust](https://github.com/linera-io/linera-protocol/actions/workflows/rust.yml/badge.svg)](https://github.com/linera-io/linera-protocol/actions/workflows/rust.yml)\n[![Build Status for Documentation](https://github.com/linera-io/linera-protocol/actions/workflows/documentation.yml/badge.svg)](https://github.com/linera-io/linera-protocol/actions/workflows/documentation.yml)\n[![Twitter](https://img.shields.io/twitter/follow/linera_io)](https://x.com/linera_io)\n[![Discord](https://img.shields.io/discord/984941796272521226)](https://discord.com/invite/linera)\n\n\u003c!-- [![Build Status for Kubernetes](https://github.com/linera-io/linera-protocol/actions/workflows/kubernetes.yml/badge.svg)](https://github.com/linera-io/linera-protocol/actions/workflows/kubernetes.yml) --\u003e\n\n[Linera](https://linera.io) is a decentralized blockchain infrastructure designed for highly scalable,\nsecure, low-latency Web3 applications.\n\n## Documentation\n\nVisit our [developer page](https://linera.dev) and read our\n[whitepaper](https://linera.io/whitepaper) to learn more about the Linera protocol.\n\n## Repository Structure\n\nThe main crates and directories of this repository can be summarized as follows: (listed\nfrom low to high levels in the dependency graph)\n\n* [`linera-base`](https://linera-io.github.io/linera-protocol/linera_base/index.html) Base\n  definitions, including cryptography.\n\n* [`linera-version`](https://linera-io.github.io/linera-protocol/linera_version/index.html)\n  A library to manage version info in binaries and services.\n\n* [`linera-views`](https://linera-io.github.io/linera-protocol/linera_views/index.html) A\n  library mapping complex data structures onto a key-value store. The corresponding\n  procedural macros are implemented in `linera-views-derive`.\n\n* [`linera-execution`](https://linera-io.github.io/linera-protocol/linera_execution/index.html)\n  Persistent data and the corresponding logic for runtime and execution of Linera\n  applications.\n\n* [`linera-chain`](https://linera-io.github.io/linera-protocol/linera_chain/index.html)\n  Persistent data and the corresponding logic for chains of blocks, certificates, and\n  cross-chain messaging.\n\n* [`linera-storage`](https://linera-io.github.io/linera-protocol/linera_storage/index.html)\n  Defines the storage abstractions for the protocol on top of `linera-chain`.\n\n* [`linera-core`](https://linera-io.github.io/linera-protocol/linera_core/index.html) The\n  core Linera protocol, including client and server logic, node synchronization, etc.\n\n* [`linera-rpc`](https://linera-io.github.io/linera-protocol/linera_rpc/index.html)\n  Defines the data-type for RPC messages (currently all client \u0026#x2194; proxy \u0026#x2194;\n  chain \u0026#x2194; chain interactions), and track the corresponding data schemas.\n\n* [`linera-client`](https://linera-io.github.io/linera-protocol/linera_client/index.html)\n  Library for writing Linera clients.  Used for the command-line\n  client and the node service in `linera-service`, as well as the Web\n  client in [`linera-web`](https://github.com/linera-io/linera-web/).\n\n* [`linera-service`](https://linera-io.github.io/linera-protocol/linera_service/index.html)\n  Executable for clients (aka CLI wallets), proxy (aka validator frontend) and servers.\n\n* [`linera-sdk`](https://linera-io.github.io/linera-protocol/linera_sdk/index.html) The\n  library to develop Linera applications written in Rust for the Wasm virtual machine. The\n  corresponding procedural macros are implemented in `linera-sdk-derive`.\n\n* [`examples`](./examples) Examples of Linera applications written in Rust.\n\n## Prerequisites\n\nSee [`INSTALL.md`](./INSTALL.md) for software requirements to develop in this repo.\n\n## Quickstart with the Linera CLI tool\n\nThe following commands set up a local test network and run some transfers between the\nmicrochains owned by a single wallet.\n\n```bash\n# Make sure to compile the Linera binaries and add them in the $PATH.\n# cargo build -p linera-storage-service -p linera-service --bins\nexport PATH=\"$PWD/target/debug:$PATH\"\n\n# Import the optional helper function `linera_spawn`.\nsource /dev/stdin \u003c\u003c\u003c\"$(linera net helper 2\u003e/dev/null)\"\n\n# Run a local test network with the default parameters and a number of microchains\n# owned by the default wallet. This also defines `LINERA_TMP_DIR`.\nlinera_spawn \\\nlinera net up --with-faucet --faucet-port 8080\n\n# Remember the URL of the faucet.\nFAUCET_URL=http://localhost:8080\n\n# If you're using a testnet, start here and run this instead:\n#   LINERA_TMP_DIR=$(mktemp -d)\n#   FAUCET_URL=https://faucet.testnet-XXX.linera.net  # for some value XXX\n```\n\nEnable logs for user applications:\n\n```bash\nexport LINERA_APPLICATION_LOGS=true\n```\n\nSet the path of the future wallet:\n\n```bash\nexport LINERA_WALLET=\"$LINERA_TMP_DIR/wallet.json\"\nexport LINERA_KEYSTORE=\"$LINERA_TMP_DIR/keystore.json\"\nexport LINERA_STORAGE=\"rocksdb:$LINERA_TMP_DIR/client.db\"\n\n# Initialize a new user wallet.\nlinera wallet init --faucet $FAUCET_URL\n\n# Request chains.\nINFO1=($(linera wallet request-chain --faucet $FAUCET_URL))\nINFO2=($(linera wallet request-chain --faucet $FAUCET_URL))\nCHAIN1=\"${INFO1[0]}\"\nACCOUNT1=\"${INFO1[1]}\"\nCHAIN2=\"${INFO2[0]}\"\nACCOUNT2=\"${INFO2[1]}\"\n\n# Show the different chains tracked by the wallet.\nlinera wallet show\n\n# Query the chain balance of some of the chains.\nlinera query-balance \"$CHAIN1\"\nlinera query-balance \"$CHAIN2\"\n\n# Transfer 10 units then 5 back.\nlinera transfer 10 --from \"$CHAIN1\" --to \"$CHAIN2\"\nlinera transfer 5 --from \"$CHAIN2\" --to \"$CHAIN1\"\n\n# Query balances again.\nlinera query-balance \"$CHAIN1\"\nlinera query-balance \"$CHAIN2\"\n\n# Now let's fund the user balances.\nlinera transfer 5 --from \"$CHAIN1\" --to \"$CHAIN1:$ACCOUNT1\"\nlinera transfer 2 --from \"$CHAIN1:$ACCOUNT1\" --to \"$CHAIN2:$ACCOUNT2\"\n\n# Query user balances again.\nlinera query-balance \"$CHAIN1:$ACCOUNT1\"\nlinera query-balance \"$CHAIN2:$ACCOUNT2\"\n```\n\nMore complex examples may be found in our [developer manual](https://linera.dev) as well\nas the [example applications](./examples) in this repository.\n\n## Contributing\n\nWe welcome contributions from the community! If you'd like to contribute to the Linera protocol:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nFor detailed guidelines, see our [contribution guide](./CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinera-io%2Flinera-protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinera-io%2Flinera-protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinera-io%2Flinera-protocol/lists"}