我遇到了一个烦人的问题,我的容器化应用程序在本地运行良好,但在部署到 azure 时失败,尽管端口已正确公开。
没有 docker:
node app.js
通过https://localhost:443运行良好
使用 docker:
docker build -t myapp:latest .然后
docker run -p 49160:443 -d myapp:latest
通过https://localhost:49160运行良好
在这两种情况下,我都从我的 nodejs 应用程序中获得了预期的输出:
Running …Run Code Online (Sandbox Code Playgroud) 我正在运行连接到自定义区块链(PoA)的奇偶校验对等体,但我无法发送交易,也无法查看我的帐户的交易列表.我收到以下错误(请参阅错误屏幕截图):
这些错误指向CORS问题,但所有的配置我试过CORS( ,"all","null","*","none")"http://example.com:8540"导致了同样的结果.在本地运行对等体和远程运行它从我的电脑上访问GUI时,我得到相同的结果.所有列出的端口都在防火墙中打开.Chrome扩展程序已停用; 也在隐身模式下尝试过.我也尝试添加命令行选项--unsafe-expose无济于事.
这是我在远程机器上的toml(运行Ubuntu):
[parity]
chain = "pcplExternal.json"
base_path = "/home/mike/parity"
[network]
port = 30303
[rpc]
hosts = ["all"]
port = 8545
interface = "0.0.0.0"
cors =["all"]
apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces","rpc", "parity_accounts"]
[ui]
force = true
port = 8540
interface = "0.0.0.0"
path = "/home/mike/parity/signer"
[websockets]
origins = ["all"]
apis = ["web3", "eth", "pubsub", …Run Code Online (Sandbox Code Playgroud) 在可升级的智能合约的背景下,何时应该使用接口和库?我读了几个类似的问题和博客文章,但没有一个给出一个直截了当的答案:
我了解在设计可升级性时要考虑的主要标准(除了安全性)是:
这篇Medium帖子建议使用库来封装逻辑(例如,当与"存储契约"交互时)并使用接口来解耦合同间通信.其他帖子提出了不同的技巧 据我所知,库在部署之前与合同相关联,因此一旦合同发生变化,就需要重新部署库.为什么使用接口与存储合同进行交互并不是更好?
下面我介绍我到目前为止看到的两个解决方案 - 一个是库,另一个是接口.(我想避免使用内联汇编的解决方案......)
StorageWithLib.sol:
contract StorageWithLib {
uint public data;
function getData() public returns(uint) {
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
StorageLib.sol:
import './StorageWithLib.sol';
library StorageLib {
function getData(address _storageContract) public view returns(uint) {
return StorageWithLib(_storageContract).getData();
}
}
Run Code Online (Sandbox Code Playgroud)
ActionWithLib.sol:
import './StorageLib.sol';
contract ActionWithLib {
using StorageLib for address;
address public …Run Code Online (Sandbox Code Playgroud)