我正在构建一个运行锯齿SDK的移动应用程序。我想向我的锯齿网络提交事务,并且出现此错误: getBookbyTitel(query) async{
return await Firestore.instance
.collection("book")
.where("titel", isEqualTo: query).where("author", isEqualTo: query2).where("genre", isEqualTo: query3).
where("code", isEqualTo: query4).getDocuments();
}
我正在将VM与具有桥接网络配置的Ubuntu 16.04一起使用,并且该VM的IP为java.net.SocketTimeoutException: failed to connect to /172.18.0.1 (port 8008) from /192.168.2.5 (port 46198) after 10000ms
。我正在按照here的官方说明使用docker-compose与docker设置锯齿网络。这是yaml文件:
192.168.2.8
我的主机正在使用IP
services:
settings-tp:
image: hyperledger/sawtooth-settings-tp:1.0
container_name: sawtooth-settings-tp-default
depends_on:
- validator
entrypoint: settings-tp -vv -C tcp://validator:4004
intkey-tp-python:
image: hyperledger/sawtooth-intkey-tp-python:1.0
container_name: sawtooth-intkey-tp-python-default
depends_on:
- validator
entrypoint: intkey-tp-python -vv -C tcp://validator:4004
xo-tp-python:
image: hyperledger/sawtooth-xo-tp-python:1.0
container_name: sawtooth-xo-tp-python-default
depends_on:
- validator
entrypoint: xo-tp-python -vv -C tcp://validator:4004
validator:
image: hyperledger/sawtooth-validator:1.0
container_name: sawtooth-validator-default
expose:
- 4004
ports:
- "4004:4004"
# start the validator with an empty genesis batch
entrypoint: "bash -c \"\
sawadm keygen && \
sawtooth keygen my_key && \
sawset genesis -k /root/.sawtooth/keys/my_key.priv && \
sawadm genesis config-genesis.batch && \
sawtooth-validator -vv \
--endpoint tcp://validator:8800 \
--bind component:tcp://eth0:4004 \
--bind network:tcp://eth0:8800 \
\""
rest-api:
image: hyperledger/sawtooth-rest-api:1.0
container_name: sawtooth-rest-api-default
ports:
- "8008:8008"
depends_on:
- validator
entrypoint: sawtooth-rest-api -C tcp://validator:4004 --bind rest-api:8008
shell:
image: hyperledger/sawtooth-all:1.0
container_name: sawtooth-shell-default
depends_on:
- rest-api
entrypoint: "bash -c \"\
sawtooth keygen && \
tail -f /dev/null \
\""
运行Windows 10 Pro
我手机上的IP是192.168.2.6
我的容器具有以下IP:192.168.2.5
。我了解,如果我希望他们进行通信,则它们必须位于同一网络中,并且尝试更改容器IP,但是我没有运气。关于如何解决此问题,有什么建议吗?谢谢。
答案 0 :(得分:0)
使用您配置中的这段代码
rest-api:
...
ports:
- "8008:8008"
Docker将主机的端口8008映射到容器的8008。这意味着容器正在侦听主机的8008。因此,您只需要连接到192.168.2.8:8008,而无需弄乱路由或其他任何事情。