go-ethereum/eth
Piotr Dyraga 2890f060b7
core/vm, crypto/blake2b: add BLAKE2b compression func at 0x09
The precompile at 0x09 wraps the BLAKE2b F compression function:
https://tools.ietf.org/html/rfc7693#section-3.2

The precompile requires 6 inputs tightly encoded, taking exactly 213
bytes, as explained below.

- `rounds` - the number of rounds - 32-bit unsigned big-endian word
- `h` - the state vector - 8 unsigned 64-bit little-endian words
- `m` - the message block vector - 16 unsigned 64-bit little-endian words
- `t_0, t_1` - offset counters - 2 unsigned 64-bit little-endian words
- `f` - the final block indicator flag - 8-bit word

[4 bytes for rounds][64 bytes for h][128 bytes for m][8 bytes for t_0]
[8 bytes for t_1][1 byte for f]

The boolean `f` parameter is considered as `true` if set to `1`.
The boolean `f` parameter is considered as `false` if set to `0`.
All other values yield an invalid encoding of `f` error.

The precompile should compute the F function as specified in the RFC
(https://tools.ietf.org/html/rfc7693#section-3.2) and return the updated
state vector `h` with unchanged encoding (little-endian).

See EIP-152 for details.
2019-08-21 13:09:15 +03:00
..
downloader cmd, contracts, eth, p2p, signer, whisper: fixed ineffectual assignments (#19869) 2019-07-22 13:34:41 +03:00
fetcher eth, les: add sanity checks for unbounded block fields (#19573) 2019-07-08 11:42:22 +02:00
filters all: replace fmt.Print* calls with t.Log* in tests (#19670) 2019-07-17 13:20:24 +02:00
gasprice cmd, core, eth, miner, params: configurable gas floor and ceil 2018-08-29 12:40:12 +03:00
tracers core/vm, crypto/blake2b: add BLAKE2b compression func at 0x09 2019-08-21 13:09:15 +03:00
api_backend.go eth, graphql, internal/ethapi, les: polish and improve graphql (#19886) 2019-07-25 09:29:53 +03:00
api_test.go eth: add debug_accountRange (#17438) 2019-07-13 15:48:55 +02:00
api_tracer.go eth: fix storageRangeAt for empty blocks (#18076) 2019-07-12 17:43:07 +02:00
api.go eth: add debug_accountRange (#17438) 2019-07-13 15:48:55 +02:00
backend.go core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
bloombits.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
config.go cmd, eth: fix dump config issue (#19825) 2019-07-11 14:37:08 +03:00
enr_entry.go core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
gen_config.go cmd, eth: fix dump config issue (#19825) 2019-07-11 14:37:08 +03:00
handler_test.go core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
handler.go core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
helper_test.go all: on-chain oracle checkpoint syncing (#19543) 2019-06-28 10:34:02 +03:00
metrics.go metrics: pull library and introduce ResettingTimer and InfluxDB reporter (#15910) 2018-02-23 11:56:08 +02:00
peer.go core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
protocol_test.go eth: check for DefaultConfig.NetworkId in test (#17599) 2019-06-06 10:49:35 +02:00
protocol.go core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
sync_test.go all: new p2p node representation (#17643) 2018-09-25 00:59:00 +02:00
sync.go eth: fix sync bloom panic (#19757) 2019-06-26 11:00:21 +03:00