Skip to main content

Self-describing content-addressed identifiers for distributed systems

Project description

CID (Content IDentifier)

https://img.shields.io/pypi/v/py-cid.svg https://img.shields.io/travis/ipld/py-cid.svg?branch=master https://codecov.io/gh/ipld/py-cid/branch/master/graph/badge.svg Documentation Status

What is CID ?

CID is a format for referencing content in distributed information systems, like IPFS. It leverages content addressing, cryptographic hashing, and self-describing formats.

It is the core identifier used by IPFS and IPLD.

CID is a self-describing content-addressed identifier.

It uses cryptographic hashes to achieve content addressing.

It uses several multiformats to achieve flexible self-description, namely multihash for hashes, multicodec for data content types, and multibase to encode the CID itself into strings.

Sample Usage

>>> from cid import make_cid
>>> make_cid('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4')
CIDv0(version=0, codec=dag-pb, multihash=b"\x12 \xb9M'\xb9\x93M>\x08\xa5.R\xd7\xda}\xab\xfa\xc4\x84..")

>>> cid = make_cid('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4')
>>> print(cid.version, cid.codec, cid.multihash)

>>> print(cid.encode())
QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4

>>> str(cid)
'QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4'

Installation

Stable release

To install CID, run this command in your terminal:

$ pip install py-cid

This is the preferred method to install CID, as it will always install the most recent stable release.

If you don’t have pip installed, this Python installation guide can guide you through the process.

From sources

The sources for CID can be downloaded from the Github repo.

You can either clone the public repository:

$ git clone git://github.com/ipld/py-cid

Or download the tarball:

$ curl  -OL https://github.com/ipld/py-cid/tarball/master

Once you have a copy of the source, you can install it with:

$ python setup.py install

Other info

History

0.4.1 (2022-09-08, forked master)

  • made the package deployable increased version number and blackified the files

0.4.0 (forked master)

  • remove crazy version range limits for dependencies which cause major headaches for downstream projects with multiple confluent indirect dependencies on this library

0.2.1 (2018-10-20)

  • Fix edge cases with multibase and multihash decoding

  • Added hypothesis tests while verifying CIDs

0.1.5 (2018-10-12)

  • Handle the case where an incorrect base58 encoded value is provided to make_cid

0.1.0 (2017-09-05)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

planetmint-py-cid-0.4.2.tar.gz (19.6 kB view details)

Uploaded Source

File details

Details for the file planetmint-py-cid-0.4.2.tar.gz.

File metadata

  • Download URL: planetmint-py-cid-0.4.2.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for planetmint-py-cid-0.4.2.tar.gz
Algorithm Hash digest
SHA256 336f5eb738a9f4830147a0ca4f24692f245c639118d534ccb8dd71855c434a0b
MD5 50af756788de5b7ae7e2570bef194189
BLAKE2b-256 4b3ee59244c4642dcde68be887da8e47b10a6bc22b6f6d9a95435a4e2552b4d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page