paritytech / secret-store

Parity Secret Store implementation
GNU General Public License v3.0
23 stars 11 forks source link

Ethereum SS nodes service contract response tx have incorrect gas settings #52

Open ngyam opened 4 years ago

ngyam commented 4 years ago

Problem: When SS nodes receive requests through the Ethereum service contract, they run the requested session correctly, but the response transaction have incorrect gas settings so it never gets sent. see gas_price: 0, gas: 8000000 in the logs.

SS setup:

On Volta validators have the following gas settings:

gas_cap = "8000000"
gas_floor_target = "8000000"
tx_gas_limit = "8000000"

and they accept 1 wei minimum gas price and gas limit is always slightly below 8M in reality

After a ServerKeyGenerationSession service contract request, all nodes have similar log messages appearing:

2020-06-09 10:04:23 UTC tokio-runtime-worker-1 TRACE secretstore_net  0x824b…d392: received message Generation.SessionCompleted from 0x46bf…c964
2020-06-09 10:04:23 UTC tokio-runtime-worker-1 TRACE secretstore_net  0x824b…d392: sent message Generation.SessionCompleted to 0x46bf…c964
2020-06-09 10:04:23 UTC tokio-runtime-worker-1 INFO secretstore_net  0x824b…d392: generation session completed
2020-06-09 10:04:23 UTC tokio-runtime-worker-1 TRACE own_tx  Importing transaction: PendingTransaction { transaction: SignedTransaction { transaction: UnverifiedTransaction { unsigned: Transaction { nonce: 0, gas_price: 0, gas: 8000000, action: Call(0x32ae9426496caee99746fcaa9a5141d4a7b9c77b), value: 0, data: [235, 188, 194, 225, 104, 87, 22, 132, 75, 117, 33, 239, 218, 20, 2, 175, 67, 76, 211, 215, 36, 28, 36, 86, 92, 250, 53, 95, 104, 129, 234, 147, 7, 131, 196, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 249, 86, 55, 100, 28, 215, 7, 113, 150, 66, 46, 203, 59, 114, 72, 76, 120, 118, 166, 29, 5, 160, 60, 227, 13, 168, 174, 75, 93, 82, 80, 237, 39, 69, 224, 146, 181, 245, 171, 2, 102, 135, 33, 42, 37, 66, 7, 175, 72, 109, 4, 18, 205, 196, 132, 21, 166, 241, 209, 147, 3, 87, 9, 217] }, v: 147634, r: 114083276892472480690529758263402050306240048643939452781433599396306213729524, s: 32135100881500564038831410281668913473131421183307959546104423217879612906252, hash: 0x5b43361c4eb2cb1ffecad44a128e00464f6841bfe6cfcf8327b7062df15c284f }, sender: 0x71f9267d86bcabff4ac77236d87681fe97382b63, public: Some(0x824bed471b698353f06315b009f4f06ad5ad8dcdc9801a0ab4e85dfa51ee8f47945611abb22d424198ceaff971ef53b33a1cdbf46daf1d158b3531d59e78d392) }, condition: None }

Sometimes after restarting the node you can see this:

2020-06-09 09:00:35 UTC main WARN parity_ethereum::run  Error importing saved transaction: Transaction error (Gas limit exceeded. Limit=7992189, Given=8000000)

Desired outcome: Would be nice if e.g. you could set the gasprice/gas params in the config file/cli for the secretstore module of the node.