Skip to main content

No project description provided

Project description

Usage

Python package bittensor_commit_reveal has one function.

from bittensor_commit_reveal import get_encrypted_commit

Function docstring

The function could be considered like this:

def get_encrypted_commit(
        uids: Union[NDArray[np.int64], "torch.LongTensor"], 
        weights: Union[NDArray[np.float32], "torch.FloatTensor"], 
        version_key: int, 
        tempo: int, 
        current_block: int, 
        netuid: int, 
        subnet_reveal_period_epochs: int, 
        block_time: int = 12
) -> tuple[bytes, int]:
"""Returns encrypted commit and target round for `commit_crv3_weights` extrinsic.

    Arguments:
        uids: The uids to commit.
        weights: The weights associated with the uids.
        version_key: The version key to use for committing and revealing. Default is `bittensor.core.settings.version_as_int`.
        tempo: Number of blocks in one epoch.
        current_block: The current block number in the network.
        netuid: The network unique identifier (NetUID) for the subnet.
        subnet_reveal_period_epochs: Number of epochs after which the reveal will be performed. Corresponds to the hyperparameter `commit_reveal_weights_interval` of the subnet. In epochs.
        block_time: Amount of time in seconds for one block. Defaults to 12 seconds.

    Returns:
        commit (bytes): Raw bytes of the encrypted, and compressed uids & weights values for setting weights.
        target_round (int): Drand round number when weights have to be revealed. Based on Drand Quicknet network.
    """
# function logic
return commit, target_round

To test the function in your terminal:

  1. Spin up a local subtensor branch which includes CR3
  2. Create a subnet with netuid 1 (or replace the netuid with the one you create)
mkdir test
cd test
python3 -m venv venv
. venv/bin/activate
pip install maturin bittensor ipython
cd ..

maturin develop
ipython

then copy-past to ipython

import numpy as np
import bittensor_commit_reveal as crv3
from bittensor.utils.weight_utils import convert_weights_and_uids_for_emit
import bittensor as bt

uids = [1, 3]
weights = [0.3, 0.7]
version_key = 843000
netuid = 1

subtensor = bt.Subtensor("local")

subnet_reveal_period_epochs = subtensor.get_subnet_reveal_period_epochs(
        netuid=netuid
    )
tempo = subtensor.get_subnet_hyperparameters(netuid).tempo
current_block = subtensor.get_current_block()

if isinstance(uids, list):
    uids = np.array(uids, dtype=np.int64)
if isinstance(weights, list):
    weights = np.array(weights, dtype=np.float32)

uids, weights = convert_weights_and_uids_for_emit(uids, weights)

print(crv3.get_encrypted_commit(uids, weights, version_key, tempo, current_block, netuid, subnet_reveal_period_epochs))

expected result

(b'\xb9\x96\xe4\xd1\xfd\xabm\x8cc\xeb\xe3W\r\xc7J\xb4\xea\xa9\xd5u}OG~\xae\xcc\x9a@\xdf\xee\x16\xa9\x0c\x8d7\xd6\xea_c\xc2<\xcb\xa6\xbe^K\x97|\x16\xc6|;\xb5Z\x97\xc9\xb4\x8em\xf1hv\x16\xcf\xea\x1e7\xbe-Z\xe7e\x1f$\n\xf8\x08\xcb\x18.\x94V\xa3\xd7\xcd\xc9\x04F::\t)Z\xc6\xbey \x00\x00\x00\x00\x00\x00\x00\xaaN\xe8\xe97\x8f\x99\xbb"\xdf\xad\xf6\\#%\xca:\xc2\xce\xf9\x96\x9d\x8f\x9d\xa2\xad\xfd\xc73j\x16\xda \x00\x00\x00\x00\x00\x00\x00\x84*\xb0\rw\xad\xdc\x02o\xf7i)\xbb^\x99e\xe2\\\xee\x02NR+-Q\xcd \xf7\x02\x83\xffV>\x00\x00\x00\x00\x00\x00\x00"\x00\x00\x00\x00\x00\x00\x00*\x13wXb\x93\xc5"F\x17F\x05\xcd\x15\xb0=\xe2d\xfco3\x16\xfd\xe9\xc6\xbc\xd1\xb3Y\x97\xf9\xb9!\x01\x0c\x00\x00\x00\x00\x00\x00\x00X\xa2\x8c\x18Wkq\xe5\xe6\x1c2\x86\x08\x00\x00\x00\x00\x00\x00\x00AES_GCM_', 13300875)

To test this in a local subnet:

  1. Spin up a local node based on the subtensor branch spiigot/add-pallet-drand using command ./scripts/localnet.sh False
  2. Create a subnet
  3. Change the following hyperparameters:
    • commit_reveal_weights_enabled -> True
    • tempo -> 10 (keep in mind that you need to provide this as tempo argument to get_encrypted_commit function. Use polkadot website for this action.)
    • weights_rate_limit -> 0 (Reduces the limit when you can set weights.)
  4. Register 1 or more wallets to the subnet
  5. Create and activate python virtual environment (python3 -m venv venv && . venv/bin/activate)
  6. Checkout bittensor feat/roman/cr-v-3 branch.
  7. Install bittensor pip install -e .
  8. Cd to directory you cloned https://github.com/opentensor/bittensor-commit-reveal/tree/staging (FFI for CRv3).
  9. Install the maturin python package and build/install bittensor-commit-reveal package to your env using the command pip install maturin && maturin develop
  10. Run the following script within your python environment:
import requests
import time

from bittensor import Subtensor, logging, Wallet

DRAND_API_BASE_URL_Q = "https://api.drand.sh/52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"

logging.set_info()


def get_drand_info(uri):
    """Fetch Drand network information."""
    url = f"{uri}/info"
    response = requests.get(url)
    response.raise_for_status()
    return response.json()


def get_current_round(info):
    """Calculate the current round based on genesis_time and period."""
    current_time = int(time.time())
    genesis_time = info["genesis_time"]
    period = info["period"]
    return (current_time - genesis_time) // period + 1


def main():
    sub = Subtensor("local")

    uids = [0]
    weights = [0.7]

    wallet = Wallet()  # corresponds the subnet owner wallet

    result, message = sub.set_weights(
        wallet=wallet,
        netuid=1,
        uids=uids,
        weights=weights,
        wait_for_inclusion=True,
        wait_for_finalization=True,
    )
    logging.info(f">>> Success, [blue]{result}[/blue], message: [magenta]{message}[/magenta]")

    reveal_round = int(message.split(":")[-1])
    # Fetch Drand network info
    for uri in [DRAND_API_BASE_URL_Q]:
        print(f"Fetching info from {uri}...")
        info = get_drand_info(uri)
        print("Info:", info)

        while True:
            time.sleep(info["period"])
            current_round = get_current_round(info)
            logging.console.info(f"Current round: [yellow]{current_round}[/yellow]")
            if current_round == reveal_round:
                logging.console.warning(f">>> It's time to reveal the target round: [blue]{reveal_round}[/blue]")

                break


if __name__ == "__main__":
    main()
  1. Wait until your target_round comes.

  2. Check your weights with the following code:

import bittensor as bt

sub = bt.Subtensor(network="local")

netuid = 1  # your created subnet's netuid

print(sub.weights(netuid=netuid))
  1. You can now see the same weights which you committed earlier

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

bittensor_commit_reveal-0.4.0.tar.gz (38.8 kB view details)

Uploaded Source

Built Distributions

bittensor_commit_reveal-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

bittensor_commit_reveal-0.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ i686

bittensor_commit_reveal-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

bittensor_commit_reveal-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13 macOS 10.12+ x86-64

bittensor_commit_reveal-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

bittensor_commit_reveal-0.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

bittensor_commit_reveal-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

bittensor_commit_reveal-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

bittensor_commit_reveal-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

bittensor_commit_reveal-0.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

bittensor_commit_reveal-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

bittensor_commit_reveal-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

bittensor_commit_reveal-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

bittensor_commit_reveal-0.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

bittensor_commit_reveal-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

bittensor_commit_reveal-0.4.0-cp310-cp310-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

bittensor_commit_reveal-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

bittensor_commit_reveal-0.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (3.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

bittensor_commit_reveal-0.4.0-cp39-cp39-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

bittensor_commit_reveal-0.4.0-cp39-cp39-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9 macOS 10.12+ x86-64

File details

Details for the file bittensor_commit_reveal-0.4.0.tar.gz.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0.tar.gz
Algorithm Hash digest
SHA256 583aa4311b2db9bed293a830f02762e187fba393ceeb0bb7306bb8fddfba1614
MD5 606f4b089e325e838d18a6b82fa9752f
BLAKE2b-256 cd57e7d5458731413f7d1fa00be9ab4acfb9833c375efb67ac175b4c78254f67

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 275543f6d0e98d36a8f60eb8a8a76a97746f6c0bf83acf4f5a6cf3624b45a0bf
MD5 42be03cdad42ded763a8abb0965d9503
BLAKE2b-256 4d45f1c14d88a2fbc722128b4ddb20e78af64d3a5d173dc67cefc77eb4e66bdb

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 672630ac1e2837af3315cbdf1c0b161162df69b69a567603e81a2839816f133c
MD5 2decb72c852efb228d9eb2e84085cab7
BLAKE2b-256 717b0bf879b63ef50cfef7b45b4589f3f52a5e63a3090fa2d1d2ca7563a78112

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c000d2b46c710fd8b7a9760f937a8d0c63683ae253fd8f89f5643943ceea78ef
MD5 ca859f62f2d9b46b12bfdaf742a12d5e
BLAKE2b-256 617d8f0046a80f7ada28c1547fb9404dca940f15089d815ccd293bb49a31fb4f

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eff8c112b56ac661e278374c1e3ba813658144f08be26ee7cbd7ca3eb58b5a5f
MD5 a1078ea0fa246b4b1257cb48982f6408
BLAKE2b-256 34fde2e7dd06065fc9bd38bf97b72b76667bfb2ddc8032756ef174db8bb8124f

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cc6cdaf4efd1c612ff2f1391ffbbdf4b0f1f23836fc1cad5fc1fbcc92b1810d
MD5 01a40cb94b07cb1e7813366eed42e726
BLAKE2b-256 ab68b63fa04a41eabf0b83a20a38f05322dac2e66c6b176e426db5bebbdeb4b7

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0efed917c10bce3fa886535ba38db41e33e1776685db0f63788330dded83706a
MD5 f89be866c4ce7f2b792630a5e1d666ba
BLAKE2b-256 39f3fd40de0bb3b654c9f3fcfdc672ddeb7057771f7d95a92c8848f4228f4f6a

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94640d6f2b9c634f74370a0f83002160382e0671cca60d31deb946f36d1831a8
MD5 7639ed43e29f34f0275ec501368a7389
BLAKE2b-256 9e7cfa51563504de64487567e81bc4ea657c7fd0bcafb7e0f7e62537595ed4eb

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8b2aaa3545932adcf944d5fe5da93f4b5fe98779a96d46b014b428d559d47d40
MD5 9a5c11793dfa672a6c1a523724fec63e
BLAKE2b-256 8dc92778a776389d610adacef11a6ddb1e16403604da9a0c5ada3ad0a8aaa3ef

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d62141687ac5a79cbc812e257a8427657c390345aca143f3cc623b313f601177
MD5 864ef278661d1f2545d5029e24aad6f8
BLAKE2b-256 e65a6cf53b644cebbef1857c68de65a7dafb4bcd4f68871b0860592fa27b4116

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 30ded9d0a2a92cde517e440b791530a4d941862f9047f68cf8f08e54c248be4a
MD5 cf1b41527dee1b96a5f5a3989a6c3948
BLAKE2b-256 f172c44bdf1b1b306a371308e17f8e161ce1eb385d7840016a23d2196faf7919

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94dafa82822232854b923e8a874a4e78fbf9b74541b55f1329b403b6d58fbe6b
MD5 fb05b0102ae5d0285712f675ba4284b3
BLAKE2b-256 279cb8112336d732940c81c0773f375da2acb5ce99eb7d3ecdddcb1610820784

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9d90a85743bd89881ca36f1ba15aa082cf4760619e9cc131bc5b419e68602749
MD5 38dc51457dd46bf21d224fa9700d7b20
BLAKE2b-256 059070de9b6f482fbb461529848af9e4ae2696a146c3547227b0edc241c89658

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e5439be6ab2cbb1ddef50811d8f22b1f534a3f9a018b76f7753ad6fdd48bbd3
MD5 f9f5f88d82e5df5b742bf31467371444
BLAKE2b-256 5ab38550638b1272bb3359cc6eacf07232d054785795be2d6fd0bb3660792d57

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ed349d46fa9c3f81c26d22aaa77451bebf1dcb697b214ab91226f6ab0b1853b6
MD5 e1f012167f9a18653b3ff8b0b314bcb1
BLAKE2b-256 d5d12a9d5dd4c04c7e5496d06a2bacb12867ceae221aac95ade4996522523e0c

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e7b2c02c99dbb7b4cb4072f946645767d2c39057c657f4a6e9ea2652a6179dd
MD5 7e4bc9a9d98558dd77bf3203b59d9446
BLAKE2b-256 577ac491fa94176651f63da4d7c8c6361a31ccc7cea9df78fbc98b32cb4de9bf

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 322e85ad158456089c76393a791e07ba2cd2cc8cbe333054c46e9fe0b4f9650b
MD5 0bd317d5cb6918f052c82d7692465dfb
BLAKE2b-256 ef013fd40d7122eb305678ee1110804e5eff23b65ccbe33ca953694c1ab5acaf

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3dfd6fd422e71a14cc71d31311806211ac79a0bb1e4cb0e8b77408bfec7ac147
MD5 1bc99b44fb66a6f1c8647f60b291b599
BLAKE2b-256 84754ad0a57925ff2ec112a5e4986f51c51d9c414e2c4a569c31a5f031da7d61

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ab4ca024b51b68259bfcb06b8541c6c3692bba96f3e91c5b6dc32fdef36fe658
MD5 f0ba5ab7d601da69c5eb6746aa397f94
BLAKE2b-256 fd71ecaa15174c7c8ecda7d34fdf659d841e5ec2d4e07f2338e4f0027655890b

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e71523a59e93eb7e6b03fdadf2284418b063ad21b00710d87fc72cc882666143
MD5 a25a7af36da60379a6b3cc0887d6a675
BLAKE2b-256 a2a83443b037bd6b544954e972830c6936fa167b929f91665d79af4255921a7d

See more details on using hashes here.

File details

Details for the file bittensor_commit_reveal-0.4.0-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bittensor_commit_reveal-0.4.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6a00d02edbe91e25dc6bf6dbe74d1b885d7d9b2b053147806608619b1a5a7ebf
MD5 b881901da18ba9f432ad4fecbba7a942
BLAKE2b-256 11e27823f65703c56f5d5c6ba6bbf827b82f196fecb8333b3b3d6efeec117a75

See more details on using hashes here.

Supported by

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