go-ethereum/core/vm
Marius van der Wijden 0c82928981
core/vm: fix incorrect computation of BLS discount (#21253)
* core/vm: fix incorrect computation of discount

During testing on Yolov1 we found that the way geth calculates the discount
is not in line with the specification. Basically what we did is calculate
128 * Bls12381GXMulGas * discount / 1000 whenever we received more than 128 pairs
of values. Correct would be to calculate k * Bls12381... for k > 128.

* core/vm: better logic for discount calculation

* core/vm: better calculation logic, added worstcase benchmarks

* core/vm: better benchmarking logic
2020-06-24 21:58:28 +02:00
..
runtime core/vm: EIP-2315, JUMPSUB for the EVM (#20619) 2020-06-02 13:30:16 +03:00
testdata core/vm, crypto/bls12381, params: add bls12-381 elliptic curve precompiles (#21018) 2020-06-03 09:44:32 +03:00
analysis.go core/vm: faster create/create2 (#17806) 2018-10-04 18:15:37 +03:00
analysis_test.go core/vm: faster create/create2 (#17806) 2018-10-04 18:15:37 +03:00
common.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
contract.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
contracts.go core/vm: fix incorrect computation of BLS discount (#21253) 2020-06-24 21:58:28 +02:00
contracts_test.go core/vm: fix incorrect computation of BLS discount (#21253) 2020-06-24 21:58:28 +02:00
doc.go core/vm: remove JIT VM codes (#16362) 2018-03-26 13:48:04 +03:00
eips.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
errors.go core/vm: EIP-2315, JUMPSUB for the EVM (#20619) 2020-06-02 13:30:16 +03:00
evm.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
gas.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
gas_table.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
gas_table_test.go all: seperate consensus error and evm internal error (#20830) 2020-04-22 11:25:36 +03:00
gen_structlog.go core/vm: EIP-2315, JUMPSUB for the EVM (#20619) 2020-06-02 13:30:16 +03:00
instructions.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
instructions_test.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
interface.go core/state: fix state iterator (#19127) 2019-04-05 09:44:02 +03:00
interpreter.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
jump_table.go cmd, core, params: inital support for yolo-v1 testnet (#21154) 2020-06-03 12:05:15 +03:00
logger.go core, eth, internal: include read storage entries in structlog output (#21204) 2020-06-10 11:46:13 +02:00
logger_json.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
logger_test.go core, eth, internal: include read storage entries in structlog output (#21204) 2020-06-10 11:46:13 +02:00
memory.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
memory_table.go core/vm: 64 bit memory and gas calculations (#19210) 2019-03-12 11:40:05 +02:00
opcodes.go core/vm: EIP-2315, JUMPSUB for the EVM (#20619) 2020-06-02 13:30:16 +03:00
stack.go core/vm: use uint256 in EVM implementation (#20787) 2020-06-08 15:24:40 +03:00
stack_table.go core/vm: 64 bit memory and gas calculations (#19210) 2019-03-12 11:40:05 +02:00