#python #blockchain #web3 #web3py #bscscan
Вопрос:
Я совершаю транзакцию контракта web3py, используя этот код:
txn = contract.functions.bid(
tokenId,
price
).buildTransaction({
'chainId': 56,
'gas': gasLimit,
'gasPrice': web3.toWei('5', 'gwei'),
'nonce': nonce
})
signed_txn = web3.eth.account.sign_transaction(txn, private_key=privateKey)
web3.eth.sendRawTransaction(web3.toHex(signed_txn.rawTransaction))
Затем я проверяю статус транзакции на Bscscan
Транзакция появилась на Bscscan в 05:54:42, но sendRawTransaction была в 05:54:39 (разница в 3 секунды). Можно ли свести к минимуму эту разницу во времени?
Ответ №1:
КАК УПРАВЛЯТЬ СКОРОСТЬЮ ТРАНЗАКЦИЙ?
Для большей скорости отрегулируйте цену на газ (комиссию за транзакцию) для вашей транзакции. Однако имейте в виду, что Более высокий GWEI = Более Высокая скорость = Более высокие показатели.
Если вы не определите объект транзакции gasPrice, по умолчанию будет значение web3.eth.getGasPrice (), которое часто составляет 5 gwei. [ЧИТАТЬ ДАЛЕЕ]
ИСПОЛЬЗУЙТЕ 5 GWEI ДЛЯ СТАНДАРТНОЙ СКОРОСТИ ТРАНЗАКЦИЙ
.buildTransaction({
'chainId': 56,
'gas': gasLimit,
'nonce': nonce
})
ИСПОЛЬЗУЙТЕ 6 GWEI ДЛЯ БЫСТРОЙ СКОРОСТИ ТРАНЗАКЦИЙ
.buildTransaction({
'chainId': 56,
'gasPrice': web3.toWei('6', 'gwei'),
'gas': gasLimit,
'nonce': nonce
})
ИСПОЛЬЗУЙТЕ 7 GWEI ДЛЯ ОЧЕНЬ БЫСТРОЙ СКОРОСТИ ТРАНЗАКЦИЙ
.buildTransaction({
'chainId': 56,
'gasPrice': web3.toWei('7', 'gwei'),
'gas': gasLimit,
'nonce': nonce
})
ИСПОЛЬЗУЙТЕ 15 GWEI ИЛИ БОЛЕЕ ДЛЯ МГНОВЕННОЙ СКОРОСТИ ТРАНЗАКЦИЙ
.buildTransaction({
'chainId': 56,
'gasPrice': web3.toWei('7', 'gwei'),
'gas': gasLimit,
'nonce': nonce
})
Как правило, 7 GWEI более чем достаточно для большинства случаев, что, возможно, является лучшим соотношением затрат между скоростью и стоимостью в тарифах за газ.
Однако, если вам действительно нужно гарантировать мгновенные транзакции, я рекомендую gasPrice от 15 GWEI или выше.