{"id":15448643,"url":"https://github.com/polkadot-js/client","last_synced_at":"2025-08-21T03:32:18.290Z","repository":{"id":57137540,"uuid":"112240425","full_name":"polkadot-js/client","owner":"polkadot-js","description":"An alternative Polkadot Runtime Environment implementation acting as a full-node (excluding block production for validators) for syncing with Substrate-based chains. ","archived":false,"fork":false,"pushed_at":"2020-05-23T12:42:35.000Z","size":33352,"stargazers_count":83,"open_issues_count":19,"forks_count":12,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-12-10T19:19:57.101Z","etag":null,"topics":["p2p","rpc","runtime","wasm"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/polkadot-js.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-27T19:42:15.000Z","updated_at":"2024-09-03T21:46:28.000Z","dependencies_parsed_at":"2022-08-22T21:30:44.374Z","dependency_job_id":null,"html_url":"https://github.com/polkadot-js/client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polkadot-js%2Fclient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polkadot-js%2Fclient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polkadot-js%2Fclient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polkadot-js%2Fclient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polkadot-js","download_url":"https://codeload.github.com/polkadot-js/client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230487843,"owners_count":18233865,"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":["p2p","rpc","runtime","wasm"],"created_at":"2024-10-01T20:29:12.533Z","updated_at":"2024-12-19T19:07:28.340Z","avatar_url":"https://github.com/polkadot-js.png","language":"TypeScript","funding_links":[],"categories":["Repositories","TypeScript"],"sub_categories":[],"readme":"[![polkadotjs](https://img.shields.io/badge/polkadot-js-orange?style=flat-square)](https://polkadot.js.org)\n![license](https://img.shields.io/badge/License-Apache%202.0-blue?logo=apache\u0026style=flat-square)\n[![npm](https://img.shields.io/npm/v/@polkadot/client?logo=npm\u0026style=flat-square)](https://www.npmjs.com/package/@polkadot/client)\n[![beta](https://img.shields.io/npm/v/@polkadot/client/beta?label=beta\u0026logo=npm\u0026style=flat-square)](https://www.npmjs.com/package/@polkadot/client)\n[![maintainability](https://img.shields.io/codeclimate/maintainability-percentage/polkadot-js/client?logo=code-climate\u0026style=flat-square)](https://codeclimate.com/github/polkadot-js/client/maintainability)\n[![coverage](https://img.shields.io/coveralls/polkadot-js/client?logo=code-climate\u0026style=flat-square)](https://coveralls.io/github/polkadot-js/client?branch=master)\n\n# @polkadot/client\n\nA JavaScript version of a Polkadot/Substrate network client. It allows operation in full and light nodes fullfilling all functions of chain operation, however does not include the ability to author blocks (i.e. run as a validator on the network).\n\n## Current status\n\nThis is the current status of the client -\n\n- It can sync and operate on Polkadot POC-3 networks, and has been tested against Alexander (Polkadot), Dried Danta (Substrate) as well as Edgeware networks.\n- It currently does not include much (if any) of the RPC interfaces - so it is not (currently) able to support eg. the apps UI connecting to it\n- It does not (currently) do any state and trie pruning, so the resulting backing database growth is not controlled\n- As of 0.19.1 the backing database has been swapped to LmDB, this interface is much faster than the previous implementation, however uses more disk space (follow-up from the previous point). Investigations are still ongoing as to the best fit for the backend DB engine.\n\n## Development overview\n\nIt is split up into a number of internal packages -\n\n- [client](packages/client/) The main JavaScript client\n- [client-chains](packages/client-chains/) Chain definitions\n- [client-db](packages/client-db/) Database interface\n- [client-p2p](packages/client-p2p/) Peer-to-peer server\n- [client-rpc](packages/client-rpc/) RPC server\n- [client-runtime](packages/client-runtime/) Basic Wasm runtime wrapper\n- [client-telemetry](packages/client-telemetry/) Substrate telemetry interface\n- [client-types](packages/client-types/) Specific codec types for client interfaces\n- [client-wasm](packages/client-wasm/) Wasm interface wrapper\n\n## Local development node\n\nStart the node with `yarn run start \u003coptions\u003e`, e.g. `yarn run start --chain dried-danta`. You can use `--help` to get a list of the available options.\n\n## Running via docker\n\nA docker image is built from the supplied `Dockerfile`, which includes the latest version as supported and deployed to the registry. To run via docker, the following commands can be used. (Split into lines for readability) -\n\n```\ndocker run -d \\\n  --name dd \\\n  -p 60666:60666 \\\n  -v ~/db:/data \\\n  jacogr/polkadot-js-client:latest \\\n    --chain alexander \\\n    --db-path /data \\\n    --db-type file \\\n    --telemetry-name \"some-cool-name-here\"\n```\n\nSome additional expansion to the above -\n\n- docker `-d` runs the container as a daemon (skip as required)\n- docker `--name` specifies the name of the container in `docker container ls`\n- docker `-p` maps the p2p port externally (ensure the firewall is open on this)\n- docker `-v` uses the local host path `~/db` as the data path, mapping it to the container itself.\n- For `--chain` either `alexander` or `dried-danta` are built-in options.\n- `--db-type` can be either `file` (default, experimental) or `lmdb` (experimental, more memory intensive).\n- Images are deployed to [dockerhub](https://cloud.docker.com/u/jacogr/repository/docker/jacogr/polkadot-js-client), and we try to keep them current.\n\nYou can build your own container via the `./docker.sh` script included which will use the latest available repo version to base an image on.\n\n## Contributing\n\n- Bootstrap the dependencies, `yarn`\n- Make any changes in the relevant package, on master merges new versions will be published automatically\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolkadot-js%2Fclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolkadot-js%2Fclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolkadot-js%2Fclient/lists"}