Skip to main content

XBR smart contracts and ABIs

Project description

wamp-xbr

PyPI Python CI Docs License Downloads


XBR enables secure decentralized application messaging, peer-to-peer data-trading and -service microtransactions in open data markets between multiple independent entities or operators.

XBR as a protocol sits on top of WAMP, an open messaging middleware and service mesh technology, and enables secure integration, trusted sharing and monetization of data and data-driven microservices between different parties and users.

The XBR Protocol specification is openly developed and freely usable.

The protocol is implemented in smart contracts written in Solidity and open-source licensed (Apache 2.0). Smart contracts are designed to run on the Ethereum blockchain. All source code for the XBR smart contracts is developed and hosted in the project main GitHub repository.

The XBR Protocol and reference documentation can be found here.

Contract addresses

Contract addresses for local development on Ganache, using the

export XBR_HDWALLET_SEED="myth like bonus scare over problem client lizard pioneer submit female collect"

which result in the following contract addresses (when the deployment is the very first transactions on Ganache):

export XBR_DEBUG_TOKEN_ADDR=0xCfEB869F69431e42cdB54A4F4f105C19C080A601
export XBR_DEBUG_NETWORK_ADDR=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550
export XBR_DEBUG_MARKET_ADDR=0x9561C133DD8580860B6b7E504bC5Aa500f0f06a7
export XBR_DEBUG_CATALOG_ADDR=0xD833215cBcc3f914bD1C9ece3EE7BF8B14f841bb
export XBR_DEBUG_CHANNEL_ADDR=0xe982E462b094850F12AF94d21D470e21bE9D0E9C

Application development

The XBR smart contracts primary build artifacts are the contract ABIs JSON files. The ABI files are built during compiling the contract sources. Technically, the ABI files are all you need to interact and talk to the XBR smart contracts deployed to a blockchain from any (client side) language or run-time that supports Ethereum, such as web3.js or web3.py.

However, this approach (using the raw XBR ABI files directly from a "generic" Ethereum client library) can be cumbersome and error prone to maintain. An alternative way is using a client library with built-in XBR support.

The XBR project currently maintains the following XBR-enabled client libraries:

XBR support can be added to any WAMP client library with a language run-time that has packages for Ethereum application development.

Build and Release

Ethereum

To build and release the XBR contracts on Ethereum (Rinkeby), set your XBR_HDWALLET_SEED and run:

export XBR_HDWALLET_SEED="uncover current ...
make clean compile deploy_rinkeby

Documentation

To build and publish the XBR contracts documentation:

pip install -r requirements-dev.txt
make clean docs publish_docs

Docker

The following is for building our development blockchain Docker image, which contains Ganache with the XBR smart contracts already deployed into, and with initial balances for testaccounts (both ETH and XBR).

The deploying user account 0 becomes contracts owner, and the user is derived from a seedphrase read from an env var:

export XBR_HDWALLET_SEED="myth like bonus scare over problem client lizard pioneer submit female collect"

The resulting contract addresses, which must be used by XBR clients:

export XBR_DEBUG_TOKEN_ADDR=0x254dffcd3277C0b1660F6d42EFbB754edaBAbC2B
export XBR_DEBUG_NETWORK_ADDR=0xC89Ce4735882C9F0f0FE26686c53074E09B0D550

The Docker images are published to:

Building the Docker Image

Clean file staging area to create blockchain docker image and run a blockchain from the empty staging area:

make clean_ganache run_ganache

Compile XBR contracts, deploy to the blockchain and initialize blockchain data

make compile deploy_ganache init_ganache

Now stop the blockchina, and build the Docker image using the initialized data from the staging area, and publish the image:

make build_ganache_docker publish_ganache_docker:

Python

To build and release the XBR contract ABIs Python package xbr:

make clean compile build_python publish_python

::: note ::: title Note :::

In general, the Python package should have the same version as the XBR contracts tagged and deployed. Also the ABI bundle archives (ZIP files) should be in-sync to the former as well. :::

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

xbr-25.12.2.tar.gz (9.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xbr-25.12.2-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file xbr-25.12.2.tar.gz.

File metadata

  • Download URL: xbr-25.12.2.tar.gz
  • Upload date:
  • Size: 9.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xbr-25.12.2.tar.gz
Algorithm Hash digest
SHA256 9e2d0d5b53ee23ad084f1b4288215e54fc3e10c9df03e2c4ac64e2ebe564d387
MD5 0d16590a736f4a5c3b61dfcf21e8f319
BLAKE2b-256 669ad97568920f4f9b315e1adb72d38eeb7df9937bf1b49939765c5529e936c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for xbr-25.12.2.tar.gz:

Publisher: release.yml on wamp-proto/wamp-xbr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xbr-25.12.2-py3-none-any.whl.

File metadata

  • Download URL: xbr-25.12.2-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xbr-25.12.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5569def3ac976605880ac1fc5262c315eb43be936ac02c8040d8582a7aa6cce9
MD5 eaf610f0a7cb6123f0b07c179d06c5c2
BLAKE2b-256 2b9cd3a78dac9d5bdd293cd0d90aebf52be4f97135670584a6370853f8a714d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for xbr-25.12.2-py3-none-any.whl:

Publisher: release.yml on wamp-proto/wamp-xbr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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