Skip to content

Latest commit

 

History

History
91 lines (72 loc) · 2.51 KB

PRODUCTION.adoc

File metadata and controls

91 lines (72 loc) · 2.51 KB

Chainalytic production deployment

Steps to run Chainalytic via docker-compose

Zone public-icon

1. Choose a directory for storing Chainalytic data

This folder contains config files and new data generated by Chainalytic

2. In that directory, create a docker-compose.yml file, like below

version: '3'
services:
  chainalytic:
    image: duyyudus/chainalytic
    container_name: chainalytic
    restart: "always"
    network_mode: host
    volumes:
        - <PATH_ON_YOUR_HOST_TO_CITIZEN_NODE>/data/mainnet/.storage:/mainnet/.storage
        - <PATH_ON_YOUR_HOST_TO_CITIZEN_NODE>/data/mainnet/.score_data:/mainnet/.score_data
        - ./cfg:/chainalytic/.chainalytic/cfg
        - ./chainalytic_warehouse:/chainalytic/.chainalytic/chainalytic_warehouse
        - ./log:/chainalytic/.chainalytic/log
    ports:
        - 5530:5530
    command: --zone-id public-icon

3. Create config files

cfg/chain_registry.yml
cfg/setting.yml
chain_registry.yml, need to edit
zones:
  - zone_id: 'public-icon'
    zone_name: 'Public ICON mainnet'

    # Citizen node endpoint, should be on the same localhost
    client_endpoint: 'localhost:9000'

    # Replace HOST_IP by the real value in ../data/mainnet/.storage... on your host
    chain_db_dir: '/mainnet/.storage/db_<HOST_IP>:7100_icon_dex'
    score_db_icondex_dir: '/mainnet/.score_data/db/icon_dex'

    # Set to 1 for reading data directly from client LevelDB,
    # in case you need to quickly rebuild some kind of data from the starting blocks
    #
    # Set to 0 for requesting data via client JSON-RPC API,
    # slow but would be helpful if you need realtime sync with citizen node.
    #
    direct_db_access: 1

    # Comment/uncomment to choose which transforms to be built
    transforms:
      - stake_history
      - stake_top100
      - recent_stake_wallets
      - abstention_stake
      - funded_wallets
      - passive_stake_wallets
setting.yml, default is good
upstream_endpoint: '0.0.0.0:5500'
aggregator_endpoint: '0.0.0.0:5510'
warehouse_endpoint: '0.0.0.0:5520'
provider_endpoint: '0.0.0.0:5530'

warehouse_dir: '.chainalytic/chainalytic_warehouse'

# E.g. ".chainalytic/chainalytic_warehouse/public-icon_storage"
zone_storage_dir: '{warehouse_dir}/{zone_id}_storage'

# E.g. ".chainalytic/chainalytic_warehouse/public-icon_storage/unstaking_storage"
transform_storage_dir: '{zone_storage_dir}/{transform_id}_storage'

transform_cache_dir: '{zone_storage_dir}/{transform_id}_cache'