0LNetworkCommunity / libra-framework

9 stars 32 forks source link

[Bug] Error: cannot find a valid VDF proof in files to determine next proof's parameters. Exiting. #150

Closed ghost closed 8 months ago

ghost commented 9 months ago

I'm attempting to use tower, supplying a config file path and private key.

Proof 0 has been mined and exists within account/test/vdf_proofs_{account_address}/proof_0.json

My config file is located at account/test/libra.yaml and specifies node_home: account/test

libra tower -c account/test/libra.yaml -t {account_private_key} start
Error: cannot find a valid VDF proof in files to determine next proof's parameters. Exiting.

Libra: 6.9.3 (release) OS: Ubuntu 22.04.3 LTS

ghost commented 9 months ago

For debug purposes here's example steps to reproduce:

libra wallet keygen -o account/test

0L Account Address: ........................... ef3cbb0515a3cf3f8921cdff046ea464cbb5384d8b5bdfafdde888f3a60cc0fc

Authentication Key (for key rotation): ........................... ef3cbb0515a3cf3f8921cdff046ea464cbb5384d8b5bdfafdde888f3a60cc0fc

0L mnemonic: ........................... sustain clock merge control diesel either motion audit verify law wrap exist slush aerobic wild task canal unfair true quote jump arrow unknown jewel

WRITE THIS DOWN NOW. This is the last time you will see this mnemonic. It is not saved anywhere. Nobody can help you if you lose it.

Created account/test folder

Private key: 192e1ca9efaa90a49e98f225965474bc895dbc5b3375496e307aa0f9f7737e64 Public key: cebe125d27503a1f3baa1c2e6ed711e5a55c32debb45c8078549152b27e1d994 Authentication key: ef3cbb0515a3cf3f8921cdff046ea464cbb5384d8b5bdfafdde888f3a60cc0fc Account address: 0xef3cbb0515a3cf3f8921cdff046ea464cbb5384d8b5bdfafdde888f3a60cc0fc

libra config -f account/test init --test-private-key 192e1ca9efaa90a49e98f225965474bc895dbc5b3375496e307aa0f9f7737e64

INFO: could not find this address or authkey on chain. Maybe it has never been initialized? Have someone send a transaction to it. Success, config saved to account/test/libra.yaml

cat account/test/libra.yaml
---
workspace:
  default_profile: ~
  default_chain_id: mainnet
  node_home: account/test
user_profiles:
  - account: ef3cbb0515a3cf3f8921cdff046ea464cbb5384d8b5bdfafdde888f3a60cc0fc
    auth_key: "0xef3cbb0515a3cf3f8921cdff046ea464cbb5384d8b5bdfafdde888f3a60cc0fc"
    nickname: ef3c
    on_chain: false
    balance:
      unlocked: 0
      total: 0
    locale: ~
    statement: Protests rage across the nation
    upstream_nodes: ~
network_playlist:
  - chain_name: mainnet
    nodes:
      - url: "http://65.109.80.179:8080/"
        note: Bethose | SDL
        version: 0
        is_api: false
        is_sync: false
      - url: "http://222.101.31.242:8080/"
        note: Alan Yoon
        version: 14058094
        is_api: true
        is_sync: true
      - url: "http://70.15.242.6:8080/"
        note: sirouk
        version: 14058096
        is_api: true
        is_sync: true
      - url: "https://rpc.openlibra.space:8080/"
        note: mainnet-rpc
        version: 14058100
        is_api: true
        is_sync: true
tx_configs:
  baseline_cost:
    max_gas_unit_for_tx: 40000
    coin_price_per_unit: 200
    user_tx_timeout: 5000
  critical_txs_cost:
    max_gas_unit_for_tx: 333333
    coin_price_per_unit: 500
    user_tx_timeout: 5000
  management_txs_cost:
    max_gas_unit_for_tx: 166666
    coin_price_per_unit: 400
    user_tx_timeout: 5000
  miner_txs_cost:
    max_gas_unit_for_tx: 80000
    coin_price_per_unit: 300
    user_tx_timeout: 5000
  cheap_txs_cost:
    max_gas_unit_for_tx: 20000
    coin_price_per_unit: 100
    user_tx_timeout: 5000
libra tower -c account/test/libra.yaml -t 192e1ca9efaa90a49e98f225965474bc895dbc5b3375496e307aa0f9f7737e64 zero

Mining Genesis Proof Delay: 3418 seconds proof zero mined, file saved to: "account/test/vdf_proofs_ef3cbb0515a3cf3f8921cdff046ea464cbb5384d8b5bdfafdde888f3a60cc0fc/proof_0.json"

libra tower -c account/test/libra.yaml -t 192e1ca9efaa90a49e98f225965474bc895dbc5b3375496e307aa0f9f7737e64 start

Error: cannot find a valid VDF proof in files to determine next proof's parameters. Exiting.

ghost commented 8 months ago

Solved: insufficient gas to submit genesis proof

0xzoz commented 8 months ago

Sorry for the delay on this @siliconbits. Was going to take a look tonight. Glad you got it working. It was be awesome if you wanted to create your first addressing the issue. Perhaps we could add better error logging to identify as well.

ghost commented 8 months ago

Seems this isn't actually solved. My guess is when submitting proofs with tower CLI (whether genesis or otherwise) the custom config file path is ignored.

Bit of a muck-around but I used another desktop to run carpe, imported a private key (generated with libra keygen CLI on my server). This was to confirm whether the genesis proof mined with carpe GUI and tower CLI were the same - they were.

In the example debug above I had not onboarded the account. So I onboarded this new account (sent 1 coin) and attempted to submit the genesis proof (via carpe backlog). This resulted in an error about insufficient gas, I sent another 10 coins to the address and then carpe backlog was successful - although it only used 0.2 coins, so unsure why the 1 balance wasn't sufficient originally?

Next, instead of mining proof # 1 with carpe on my desktop I attempted with tower CLI on my server, this worked - I no longer got the original error and saw Mining VDF Proof # 1 instead.

I had thought success, the issue was seemingly not onboarding/insufficient gas for the genesis proof (and just some lacking helpful error notices lol).

However I came back to see the following (similar) loop:

libra tower -c account/test2/libra.yaml -t XXX start

Mining VDF Proof # 1 difficulty: 120000198, security: 512 Delay: 1759 seconds Proof mined: proof_1.json created. ERROR: Failed processing backlog, message: cannot find a valid VDF proof in files to determine next proof's parameters. Exiting. Mining VDF Proof # 1 difficulty: 120000198, security: 512 Delay: 1758 seconds Proof mined: proof_1.json created. ERROR: Failed processing backlog, message: cannot find a valid VDF proof in files to determine next proof's parameters. Exiting. Mining VDF Proof # 1 difficulty: 120000198, security: 512 [00:06:33] living is waiting ···

Additionally, if I attempt backlog:

libra tower -c account/test2/libra.yaml -t XXX backlog

backlog Error: cannot find a valid VDF proof in files to determine next proof's parameters. Exiting.

ghost commented 8 months ago

@0xzoz not sure if you noticed I reopened this issue last week, sorry to ping.

ghost commented 8 months ago

Ahh I feel stupid, absolute paths are expected in libra.yaml

node_home: /home/user/account/test

Closing this one for good now 🤣