小编Mik*_*ike的帖子

用于容器的 Azure Web 应用程序 - 启动期间失败 - 未响应 HTTP ping

我遇到了一个烦人的问题,我的容器化应用程序在本地运行良好,但在部署到 azure 时失败,尽管端口已正确公开。

细节:

  • 用于在基本 B1 机器上使用 Linux 操作系统的容器的 azure Web 应用程序。
  • nodejs v12 LTS 带有快速服务器侦听 HTTPS 端口 443。包括一个 HTTP 404(未找到)错误处理程序。
  • 数据库 db Mongodb Atlas on M0 Sandbox(免费层)。本地和 Azure IP 已列入白名单。
  • 使用 Dockerfile 的 docker 容器。没有 Kubernetes,没有 yml 配置文件。
  • 托管在私有 Docker Hub 存储库上的 docker 镜像,在构建时由 azure 拉取

在 Windows 10 x64 上本地运行:

在这两种情况下,我都从我的 nodejs 应用程序中获得了预期的输出:

Running …
Run Code Online (Sandbox Code Playgroud)

https azure node.js express docker

9
推荐指数
1
解决办法
4694
查看次数

奇偶校验GUI错误(getTransactions TypeError:无法获取)

我正在运行连接到自定义区块链(PoA)的奇偶校验对等体,但我无法发送交易,也无法查看我的帐户的交易列表.我收到以下错误(请参阅错误屏幕截图):

  • 请求的资源上不存在"Access-Control-Allow-Origin"标头.
  • 406
  • getTransactions TypeError:无法获取

这些错误指向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)

user-interface parity cors ethereum

6
推荐指数
1
解决办法
182
查看次数

具有Solidity的可升级智能合约:界面与库?

在可升级的智能合约的背景下,何时应该使用接口和库?我读了几个类似的问题和博客文章,但没有一个给出一个直截了当的答案:

我了解在设计可升级性时要考虑的主要标准(除了安全性)是:

  • 模块化 - 可重用性和易于维护
  • 天然气限制 - 拆分巨额合同,以便他们可以部署在几个交易中,以免达到天然气限制
  • 升级费用 - 每份合同升级费用多少.在一个合同中(小)改变之后,需要重新部署哪些其他合同?
  • 执行成本 - 单独的合同可能导致每次通话的天然气费用.尽量保持低开销.

这篇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)

interface ethereum solidity smartcontracts

6
推荐指数
2
解决办法
875
查看次数