使用Docker来设置招标公告测试网并在Abci和招标公告核心之间建立通信

我正在尝试将自己的ABCI应用程序与localnet集成。 docker-compose外观为

version: '3'

services:
  node0:
    container_name: node0
    image: "tendermint/localnode"
    ports:
      - "26656-26657:26656-26657"
    environment:
      - ID=0
      - LOG=${LOG:-tendermint.log}
    volumes:
      - ./build:/tendermint:Z
    command: node --proxy_app=tcp://abci0:26658
    networks:
      localnet:
        ipv4_address: 192.167.10.2

 abci0:
    container_name: abci0
    image: "abci-image"
    volumes:
      - $GOPATH/src/samplePOC:/go/src/samplePOC
    ports:
      - "26658:26658"
    build:
      context: .
      dockerfile: $GOPATH/src/samplePOC/Dockerfile
    command:  /go/src/samplePOC/samplePOC
    networks:
      localnet:
        ipv4_address: 192.167.10.6

节点和抽象容器都已成功构建。 ABCI服务器已成功启动,并且节点正在尝试建立连接。但是主要的问题是我看到两者无法互相通信。

我收到以下错误:

  

node0 | E [2019-10-29 | 15:14:28.525] abci.socketClient无法连接   到tcp:// abci0:26658。正在重试... module = abci-client connection = query   err =“ dial tcp 192.167.10.6:26658:connect:连接被拒绝”

有人可以在这里帮助我吗?

xhf5211314 回答:使用Docker来设置招标公告测试网并在Abci和招标公告核心之间建立通信

我的第一个想法是,您可能需要向depends_on: ["abci0"]添加node0,因为ABCI应用程序必须在侦听Tendermint尝试连接之前。

当然,TM应该继续重试,因此这可能不是问题。

您可以尝试的另一种方法是在主机上运行bidmint,然后尝试连接到abci0(26658)上的ABCI端口的公开端口,以将问题隔离到docker配置中。

如果您无法运行tendermint node --proxy_app=tcp://localhost:26658,则问题可能出在您的ABCI应用程序中。

我假设您已经在装入node0的卷中初始化了目录?

,

我使用了Tendermint的kvstore example

version: "3.4"

services:
  kvstore-app:
    image: alpine
    expose:
      - "26658"
    volumes:
      - ./kvstore-example:/home/dev/kvstore-example
    command: "/home/dev/kvstore-example --socket-addr tcp://kvstore-app:26658"
  tendermint-node:
    image: tendermint/tendermint
    depends_on: 
      - kvstore-app
    ports:
      - "26657:26657"
    environment:
      - TMHOME=/tmp/tendermint
    volumes:
      - ./tmp/tendermint:/tmp/tendermint
    command: node --proxy_app=tcp://kvstore-app:26658

我不确定您的docker-compose.yml为何无法正常工作,但是很可能您没有以该节点可访问的方式绑定Abci应用程序的套接字。我明确地告诉abci应用程序使用参数--socket-addr tcp://kvstore-app:26658"。另外,我只是在docker网络上公开abci应用程序的端口,但是我认为映射端口应该隐式地做到这一点。

我也将摆脱所有网络内容。就个人而言,只有在考虑到一些非常具体的网络目标时,我才使用网络配置。

本文链接:https://www.f2er.com/3158508.html

大家都在问