我正在使用运动服开发,测试和部署我的智能合同。它在测试网络上运行得很好,但在直播网络上却像蜗牛一样慢。
例如,这笔交易 -它只是迁移合同(从松露基础设施)部署,估计确认时间与价格40 GWei约2小时。总体部署大约有18个事务(在每个成功确认的事务之后,每个事务都将其存储在自己的migration
合同中,以避免重新部署已经部署的东西)。
40千兆高于整个网络的最高天然气价格,我想知道是否有可能以某种方式加速部署?每笔交易2小时的速度慢得令人无法接受。
发布于 2018-07-02 22:37:59
恩弗拉不太可能成为瓶颈--它们在交易规模和吞吐量方面都进行了相当的优化。
假设您的事务正在广播(这意味着它在etherscan.io中显示为未决),那么这很大程度上取决于天然气价格。
在过去的24小时里,汽油价格一直很高,还有很多备用交易--你能做的就是支付更多的天然气,这对于合同部署来说是痛苦的,因为它消耗了大量的天然气。
您可以尝试将瓦斯限制调低一点(更接近实际使用的范围),因为矿工可能更倾向于包括更小、更灵活的区块交易。
发布于 2018-07-02 10:45:18
您是通过恩弗拉部署还是通过本地节点部署?
我要用以太酸盐来做这个。你可以看看这个:
下面是我的一个deploy.js文件的示例
const etherlime = require('etherlime');
const ProductionFactory = require('./testContracts/ProductionFactory');
const ProductionFactoryProxy = require('./testContracts/ProductionFactoryProxy');
const IProductionFactory = require('./testContracts/IProductionFactory');
const defaultConfigs = {
gasPrice: 20000000000, // Choose your configs wisely
gasLimit: 4700000
}
const deployer = new etherlime.InfuraPrivateKeyDeployer('Your Private Key Here', 'ropsten', 'Your Infura Key', defaultConfigs);
const deploy = async () => {
const productionFactoryWrapper = await deployer.deploy(ProductionFactory);
const proxyWrapper = await deployer.deploy(ProductionFactoryProxy, productionFactoryWrapper.contractAddress);
const upgradeableFactoryWrapper = deployer.wrapDeployedContract(IProductionFactory, proxyWrapper.contractAddress);
const initTransaction = await upgradeableFactoryWrapper.contract.init(randomAddress, defaultConfigs);
const result = await upgradeableFactoryWrapper.verboseWaitForTransaction(initTransaction.hash, 'Init Factory');
}
您可以轻松地从InfuraPrivateKeyDeployer切换到JSONRPCDeployer
https://ethereum.stackexchange.com/questions/52479
复制相似问题