{"id":18300027,"url":"https://github.com/chorusone/celo-light-client","last_synced_at":"2025-04-05T13:35:37.882Z","repository":{"id":45340522,"uuid":"323749652","full_name":"ChorusOne/celo-light-client","owner":"ChorusOne","description":"Celo Light Client (IBC compatible)","archived":false,"fork":false,"pushed_at":"2022-02-04T15:46:19.000Z","size":15023,"stargazers_count":15,"open_issues_count":1,"forks_count":6,"subscribers_count":19,"default_branch":"main","last_synced_at":"2023-03-03T20:12:58.545Z","etag":null,"topics":[],"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/ChorusOne.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}},"created_at":"2020-12-22T22:50:03.000Z","updated_at":"2023-02-17T06:00:06.000Z","dependencies_parsed_at":"2022-09-04T16:01:01.869Z","dependency_job_id":null,"html_url":"https://github.com/ChorusOne/celo-light-client","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fcelo-light-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fcelo-light-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fcelo-light-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChorusOne%2Fcelo-light-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChorusOne","download_url":"https://codeload.github.com/ChorusOne/celo-light-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223192550,"owners_count":17103564,"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":[],"created_at":"2024-11-05T15:11:09.182Z","updated_at":"2024-11-05T15:11:09.938Z","avatar_url":"https://github.com/ChorusOne.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status][travis-badge]][travis]\n\n[travis-badge]: https://travis-ci.org/ChorusOne/celo-light-client.svg?branch=main\n[travis]: https://travis-ci.org/ChorusOne/celo-light-client/\n\n# Celo Light Client\nThe library provides a [lightest-sync](https://docs.celo.org/celo-codebase/protocol/consensus/ultralight-sync) mode, that enables a quick, secure, and cheap way to synchronize IBFT consensus state with a Celo Blockchain node.\n\nThe codebase is split into two parts:\n* `library` - a subset of Celo Blockchain building blocks, such as data structures (ie. Header, IBFT) or functionalities (ie. serialization, consensus state management)\n* `contract` - an (optional) [IBC](https://docs.cosmos.network/master/ibc/overview.html) compatible light client contract, intended to be run on Cosmos Blockchain as WASM binary\n\n**ultralight-sync explained**\n\nIn the nutshell, the validator set for the current epoch is computed by downloading the last header of each previous epoch and applying the validator set diff. The latest block header is then verified by checking that at least two-thirds of the validator set for the current epoch signed the block header.\nUltralight mode download approximately 30,000 times fewer headers than light nodes in order to sync the latest block (assuming 3-second block periods and 1-day epochs).\n\n### Example\nAn example program that utilizes `lightest-sync` library is placed in the `examples/lightest-sync`. It uses [celo-blockchain node](https://github.com/celo-org/celo-blockchain) to fetch epoch headers, built up the validator set, and verify the latest available header.\n\nYou may spawn up example program via:\n```\n$ docker-compose up --abort-on-container-exit\n```\n\n### Light Client\nThe CosmWasm contract is gated by `wasm-contract` feature:\n```\n$ rustup target add wasm32-unknown-unknown\n$ cargo build --release --features wasm-contract --target wasm32-unknown-unknown\n```\n\nTo compile optimized binary run:\n```\n$ make wasm-optimized\n$ stat target/wasm32-unknown-unknown/release/celo.wasm\n```\n\n### Demo\n[![asciicast](https://asciinema.org/a/411776.svg)](https://asciinema.org/a/411776)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchorusone%2Fcelo-light-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchorusone%2Fcelo-light-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchorusone%2Fcelo-light-client/lists"}