Skip to content

ISCC - Meta Registry - Ethereum Virtual Machine Observer

License

Notifications You must be signed in to change notification settings

iscc/iscc-observer-evm

Repository files navigation

ISCC - Ethereum Virtual Machine Observer

Tests

About iscc-observer-evm

iscc-observer-evm is a Python service for registering declarations of International Standard Content Codes (ISCC) coming from Web3/EVM compatible blockchains. Instances of this service can observe events from a single ISCC-HUB contract and register them on an ISCC Registry.

Configuration

The service is configured via environment variables:

  • CHAIN_ID - ID of blockchain to be observed. Supported values for EVM chains are ETHEREUM, POLYGON
  • WEB3_PROVIDER_URI - Web3 Websocket URI used for connecting to blockchain events.
  • HUB_CONTRACT - The address of the ISCC-HUB contract
  • REGISTRY_URL - URL to OpenAPI REST service of an ISCC-REGISTRY for event publishing
  • OBSERVER_TOKEN - Bearer secret for authentication with ISCC-REGISTRY API service
  • UPDATE_INTERVAL - Seconds to wait betweenn synchronization of chain-events and the registry
  • READ_TIMEOUT - Timeout for Web3 websocket and REST API https connections in seconds
  • SENTRY_DSN - Optional URI for error notifications via Sentry

See example at .env.dev

Development

Requirements Python 3.9 with Poetry Get started with

$ git clone https://github.com/iscc/iscc-observer-evm.git
$ cd iscc-observer-evm
$ poetry install

Start an observer instance with poetry run iscc-observer-evm .env.dev. You may provide your own .env file configured according to your local development setup.

Deployment

Docker images for deployment are available via https://ghcr.io/iscc/iscc-observer-evm. See docker-compose.yml for an example of how to deploy multiple observers.

Maintainers

@titusz

Contributing

Pull requests are welcome. For significant changes, please open an issue first to discuss your plans. Please make sure to update tests as appropriate.

You may also want join our developer chat on Telegram at https://t.me/iscc_dev.