Justinchellisvia treechat·6mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "27b6399d79e105f17d9d28b33e9fab0c18f9c9a1a3d15547e25fe6ed1de1a1b4",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "post",
  "map_content": "Teranode test network windows",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "Justinchellis",
  "channel": null,
  "parent_txid": null,
  "ref_txid": null,
  "tags": null,
  "reply_count": 1,
  "like_count": 0,
  "timestamp": "2025-09-26T08:31:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "attachments": [],
  "ui_name": "Justinchellis",
  "ui_display_name": "Justinchellis",
  "ui_handle": "Justinchellis",
  "ui_display_raw": "Justinchellis",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
⬇️
Justinchellisvia treechat·6mo
❤️ 0 Likes · ⚡ 0 Tips
{
  "txid": "a1efb97afe2e988dbc052e7f127e6595dc3e3e72b04a975b7c41bc88d18eaae8",
  "block_height": 0,
  "time": null,
  "app": "treechat",
  "type": "reply",
  "map_content": "Docker-Compose. Yml. File\r\n\r\n\r\n\r\nx-teranode-settings:\r\n\u00a0 &teranode-settings\r\n\u00a0 environment:\r\n\u00a0 \u00a0 network: \"teratestnet\"\r\n\u00a0 \u00a0 p2p_bootstrapAddresses: \"/dns4/teranode-bootstrap-stage.bsvb.tech/tcp/9901/p2p/12D3KooWJ6kQHAR65xkA34NABsNVAJyVxPWh8JUSo1vtZsTyw4GD\"\r\n\u00a0 \u00a0 # logLevel: \"DEBUG\"\r\n\u00a0 \u00a0 # enable this when using your laptop or a server without a public ip\r\n\u00a0 \u00a0 # someOtherSetting: \"value\"\r\n\r\n\r\nnetworks:\r\n\u00a0 teranode-network:\r\n\u00a0 \u00a0 name: my-teranode-network\r\n\u00a0 \u00a0 # if your docker setup supports IPv6, you can enable it here\r\n\u00a0 \u00a0 # enable_ipv6: true\r\n\r\n\r\nvolumes:\r\n\u00a0 nginx-cache:\r\n\u00a0 postgres-data:\r\n\r\n\r\nservices:\r\n\u00a0 # Initialize directories with correct ownership\r\n\u00a0 # Note: Runs as root to create directories and set ownership before other services start\r\n\u00a0 data-init:\r\n\u00a0 \u00a0 image: alpine:latest\r\n\u00a0 \u00a0 volumes:\r\n\u00a0 \u00a0 \u00a0 - ${DATA_PATH}:/data\r\n\u00a0 \u00a0 \u00a0 - ./scripts/init-data.sh:/init-data.sh:ro\r\n\u00a0 \u00a0 environment:\r\n\u00a0 \u00a0 \u00a0 - USER_ID=${USER_ID}\r\n\u00a0 \u00a0 \u00a0 - GROUP_ID=${GROUP_ID}\r\n\u00a0 \u00a0 command: sh /init-data.sh\r\n\u00a0 \u00a0 user: \"0:0\" \u00a0# Required for chown operations\r\n\r\n\r\n\u00a0 # Teranode micro-services\r\n\u00a0 blockchain:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-teranode.yml\r\n\u00a0 \u00a0 \u00a0 service: blockchain\r\n\u00a0 \u00a0 <<: *teranode-settings\r\n\u00a0 \u00a0 depends_on:\r\n\u00a0 \u00a0 \u00a0 - data-init\r\n\r\n\r\n\u00a0 asset:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-teranode.yml\r\n\u00a0 \u00a0 \u00a0 service: asset\r\n\u00a0 \u00a0 <<: *teranode-settings\r\n\r\n\r\n\u00a0 asset-cache:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-services.yml\r\n\u00a0 \u00a0 \u00a0 service: asset-cache\r\n\r\n\r\n\u00a0 rpc:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-teranode.yml\r\n\u00a0 \u00a0 \u00a0 service: rpc\r\n\u00a0 \u00a0 <<: *teranode-settings\r\n\r\n\r\n\u00a0 subtreevalidation:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-teranode.yml\r\n\u00a0 \u00a0 \u00a0 service: subtreevalidation\r\n\u00a0 \u00a0 <<: *teranode-settings\r\n\r\n\r\n\u00a0 blockvalidation:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-teranode.yml\r\n\u00a0 \u00a0 \u00a0 service: blockvalidation\r\n\u00a0 \u00a0 <<: *teranode-settings\r\n\r\n\r\n\u00a0 blockassembly:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-teranode.yml\r\n\u00a0 \u00a0 \u00a0 service: blockassembly\r\n\u00a0 \u00a0 <<: *teranode-settings\r\n\r\n\r\n\u00a0 peer:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-teranode.yml\r\n\u00a0 \u00a0 \u00a0 service: peer\r\n\u00a0 \u00a0 <<: *teranode-settings\r\n\r\n\r\n\u00a0 # uses lots of disk space\r\n\u00a0 # \u00a0blockpersister:\r\n\u00a0 # \u00a0 \u00a0extends:\r\n\u00a0 # \u00a0 \u00a0 \u00a0file: ../base/docker-teranode.yml\r\n\u00a0 # \u00a0 \u00a0 \u00a0service: blockpersister\r\n\u00a0 # \u00a0 \u00a0<<: *teranode-settings\r\n\r\n\r\n\u00a0 # shared services\r\n\u00a0 postgres:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-services.yml\r\n\u00a0 \u00a0 \u00a0 service: postgres\r\n\u00a0 \u00a0 volumes:\r\n\u00a0 \u00a0 \u00a0 - postgres-data:/var/lib/postgresql/data\r\n\r\n\r\n\u00a0 kafka-shared:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-services.yml\r\n\u00a0 \u00a0 \u00a0 service: kafka-shared\r\n\r\n\r\n# \u00a0kafka-console-shared:\r\n# \u00a0 \u00a0extends:\r\n# \u00a0 \u00a0 \u00a0file: ./base/docker-services.yml\r\n# \u00a0 \u00a0 \u00a0service: kafka-console-shared\r\n\r\n\r\n\u00a0 aerospike:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-services.yml\r\n\u00a0 \u00a0 \u00a0 # Community Edition\r\n\u00a0 \u00a0 \u00a0 service: aerospike\r\n\u00a0 \u00a0 \u00a0 # Enterprise Edition, evaluation mode, single node\r\n\u00a0 \u00a0 \u00a0 # service: aerospike-ee\r\n\r\n\r\n\u00a0 aerospike-exporter:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-services.yml\r\n\u00a0 \u00a0 \u00a0 service: aerospike-exporter\r\n\r\n\r\n\u00a0 prometheus:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-services.yml\r\n\u00a0 \u00a0 \u00a0 service: prometheus\r\n\r\n\r\n\u00a0 grafana:\r\n\u00a0 \u00a0 extends:\r\n\u00a0 \u00a0 \u00a0 file: ./base/docker-services.yml\r\n\u00a0 \u00a0 \u00a0 service: grafana\r\n\r\n\r\n\u00a0 # CPU Miner (optional - configured via startup script)\r\n\u00a0 cpuminer:\r\n\u00a0 \u00a0 image: ghcr.io/bitcoin-sv/cpuminer:latest\r\n\u00a0 \u00a0 container_name: cpuminer\r\n\u00a0 \u00a0 networks:\r\n\u00a0 \u00a0 \u00a0 - teranode-network\r\n\u00a0 \u00a0 environment:\r\n\u00a0 \u00a0 \u00a0 MINING_ENABLED: \"${MINING_ENABLED:-false}\"\r\n\u00a0 \u00a0 \u00a0 MINING_ADDRESS: \"${MINING_ADDRESS:-}\"\r\n\u00a0 \u00a0 \u00a0 MINING_SIG: \"${MINING_SIG:-}\"\r\n\u00a0 \u00a0 \u00a0 RPC_USER: \"${RPC_USER:-bitcoin}\"\r\n\u00a0 \u00a0 \u00a0 RPC_PASS: \"${RPC_PASS:-bitcoin}\"\r\n\u00a0 \u00a0 entrypoint: [\"/bin/sh\", \"-c\"]\r\n\u00a0 \u00a0 command: >\r\n\u00a0 \u00a0 \u00a0 \"\r\n\u00a0 \u00a0 \u00a0 if [ \\\"$$MINING_ENABLED\\\" = \\\"true\\\" ] && [ -n \\\"$$MINING_ADDRESS\\\" ]; then\r\n\u00a0 \u00a0 \u00a0 \u00a0 echo 'Starting CPU miner...';\r\n\u00a0 \u00a0 \u00a0 \u00a0 echo 'Mining address: '$$MINING_ADDRESS;\r\n\u00a0 \u00a0 \u00a0 \u00a0 echo 'Miner ID: '$$MINING_SIG;\r\n\u00a0 \u00a0 \u00a0 \u00a0 exec ./minerd --url=http://rpc:9292 --userpass=$$RPC_USER:$$RPC_PASS --coinbase-addr=$$MINING_ADDRESS --coinbase-sig=\\\"$$MINING_SIG\\\" --threads=2;\r\n\u00a0 \u00a0 \u00a0 else\r\n\u00a0 \u00a0 \u00a0 \u00a0 echo 'Mining disabled or not configured. Container will exit.';\r\n\u00a0 \u00a0 \u00a0 \u00a0 exit 0;\r\n\u00a0 \u00a0 \u00a0 fi\r\n\u00a0 \u00a0 \u00a0 \"\r\n\u00a0 \u00a0 profiles:\r\n\u00a0 \u00a0 \u00a0 - mining\r\n\u00a0 \u00a0 restart: unless-stopped\r\n\u00a0 \u00a0 depends_on:\r\n\u00a0 \u00a0 \u00a0 rpc:\r\n\u00a0 \u00a0 \u00a0 \u00a0 condition: service_healthy",
  "media_type": "text/markdown",
  "filename": "|",
  "author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "display_name": "Justinchellis",
  "channel": null,
  "parent_txid": "27b6399d79e105f17d9d28b33e9fab0c18f9c9a1a3d15547e25fe6ed1de1a1b4",
  "ref_txid": null,
  "tags": null,
  "reply_count": 0,
  "like_count": 0,
  "timestamp": "2025-09-26T08:31:57.000Z",
  "media_url": null,
  "aip_verified": true,
  "has_access": true,
  "attachments": [],
  "ui_name": "Justinchellis",
  "ui_display_name": "Justinchellis",
  "ui_handle": "Justinchellis",
  "ui_display_raw": "Justinchellis",
  "ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
  "ref_ui_name": "unknown",
  "ref_ui_signer": "unknown"
}
Signed by14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGKAIP!