错误 3080006:EOSIO 区块链中的交易时间过长

Posted

技术标签:

【中文标题】错误 3080006:EOSIO 区块链中的交易时间过长【英文标题】:Error 3080006:Transaction took too long in EOSIO blockchain 【发布时间】:2020-03-07 20:23:40 【问题描述】:

EOS 使用以下方法。

nodeos (node + eos = nodeos) - 核心 EOSIO 节点守护进程,可以 配置插件以运行节点。 克莱奥斯 (cli + eos = cleos) - 与命令行交互的界面 区块链和管理钱包。 keosd (key + eos = keosd) - 将 EOSIO 密钥安全地存储在钱包中的组件。

部署系统合约时会抛出错误, 使用 Nodeos 进行调试时,发现以下错误日志。

错误日志

 `Error 3080006: Transaction took too long`.
./cleos set contract eosio ../../unittests/contracts/eosio.system -p eosio  

Reading WASM from /mnt/d/wcc/work/xeniro/snapscale/unittests/contracts/eosio.system/eosio.system.wasm...
Publishing contract...
Error 3080006: Transaction took too long
Error Details:
deadline exceeded

【问题讨论】:

请分享系统合约代码? 合约代码是否满足提供的api功能?以及你使用的是哪个版本的黎明 【参考方案1】:

请在开发者门户下为您正在使用的版本设置 Bios 启动顺序 请查看Here

黎明4.1下,以下成功

nodeos --max-transaction-time=1000 --resync
cleos create key  # for eosio.token 
cleos wallet import ... 
cleos create account eosio eosio.token ... 
cleos set contract eosio.token build/contracts/eosio.token 
cleos push action eosio.token create '[ "eosio", "10000000000.0000 SYS", 0, 0, 0]' -p 
eosio.token 
cleos push action eosio.token issue '[ "eosio", "1000000000.0000 SYS", "memo" ]' -p eosio

cleos set contract eosio build/contracts/eosio.system 
Reading WAST/WASM from build/contracts/eosio.system/eosio.system.wasm... 
Using already assembled WASM... 
Publishing contract... 
executed transaction: 901b98f873d67a084ed8e6ea50453e474935e44865ffcef42289e8878198a9fa  40440 byt

【讨论】:

感谢您的回答,我使用的是eos tag v1.8.2。我的意思是,当我使用 nodeos 二进制文件的发布版本时,我可以部署 eosio.system 合约。但是reset后用debug版本的nodeos二进制部署eosio.system合约,会报上述错误。我猜是因为debug模式,运行这个事务的时间比eos默认的单事务运行时间要大。所以在调试的时候,不适合部署复杂的合约。

以上是关于错误 3080006:EOSIO 区块链中的交易时间过长的主要内容,如果未能解决你的问题,请参考以下文章

如何确保在私有以太坊区块链中交易收取 0 费用?

区块链中的epoch

Solana 链中的打字稿错误。 (测试网中的 Solana 交易)

区块链中的节点是什么?

区块链中的节点是什么

区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)