bsc/core
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
..
asm asm: remove unused parameter for function Lex (#18058) 2019-03-14 10:35:55 +01:00
bloombits core/bloombits, light: fix typos (#17235) 2018-07-24 11:24:27 +03:00
forkid core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
rawdb all: update author list and licenses 2019-07-22 12:17:27 +03:00
state core, trie: decode the value for storage dump (#19943) 2019-08-12 17:14:40 +03:00
types all: replace t.Log(); t.FailNow() with t.Fatal() (#19849) 2019-07-18 15:21:24 +03:00
vm core/vm, crypto/blake2b: add BLAKE2b compression func at 0x09 2019-08-21 13:09:15 +03:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core, light, params: implement eip2028 (#19931) 2019-08-14 15:53:21 +03:00
block_validator_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
block_validator.go core: use headers only where blocks are unnecessary 2019-03-13 12:32:47 +02:00
blockchain_insert.go all: simplify timestamps to uint64 (#19372) 2019-04-02 23:28:48 +03:00
blockchain_test.go les, les/flowcontrol: implement LES/3 (#19329) 2019-05-30 20:51:13 +02:00
blockchain.go core/forkid: implement the forkid EIP, announce via ENR (#19738) 2019-07-08 18:53:47 +03:00
blocks.go core: typos and comments improve 2017-05-25 17:14:33 +03:00
chain_indexer_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
chain_indexer.go core: fix chain indexer (#19786) 2019-07-03 11:18:48 +03:00
chain_makers_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
chain_makers.go core: fix import errors on clique crashes + empty blocks (#19544) 2019-05-10 17:04:10 +03:00
dao_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
error.go core: move error variable to error.go (#19560) 2019-05-13 13:23:32 +03:00
events.go miner: regenerate mining work every 3 seconds (#17413) 2018-08-16 14:14:33 +03:00
evm.go all: simplify timestamps to uint64 (#19372) 2019-04-02 23:28:48 +03:00
gaspool.go miner: avoid unnecessary work (#15883) 2018-01-15 12:57:06 +02:00
gen_genesis_account.go all: regenerate codecs with gencodec commit 90983d99de (#15830) 2018-01-08 15:13:22 +02:00
gen_genesis.go all: regenerate codecs with gencodec commit 90983d99de (#15830) 2018-01-08 15:13:22 +02:00
genesis_alloc.go cmd, core, params: add support for Goerli 2019-02-04 14:53:12 +02:00
genesis_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
genesis.go core: check error before accessing potentially nil block 2019-07-18 15:26:22 +03:00
headerchain.go core, ethdb, metrics, p2p: expose various counter metrics for grafana 2019-06-11 09:49:13 +03:00
helper_test.go all: clean up and proerly abstract database access 2019-03-06 13:35:03 +02:00
mkalloc.go core/vm: 64 bit memory and gas calculations (#19210) 2019-03-12 11:40:05 +02:00
state_prefetcher.go core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00
state_processor.go consensus,core,miner: avoid overhead of creating a new block (#19301) 2019-04-30 16:42:36 +03:00
state_transition.go core, light, params: implement eip2028 (#19931) 2019-08-14 15:53:21 +03:00
tx_cacher.go Comment error (#18303) 2018-12-14 11:15:31 +01:00
tx_journal.go core: fix typos in comment (#17531) 2018-08-28 10:04:33 +03:00
tx_list_test.go all: switch gas limits from big.Int to uint64 2018-01-03 14:45:35 +02:00
tx_list.go core, ethdb, metrics, p2p: expose various counter metrics for grafana 2019-06-11 09:49:13 +03:00
tx_noncer.go core: fix write concurrency in txpool (#19835) 2019-07-17 13:39:41 +03:00
tx_pool_test.go core, les: fix les unit tests (#19823) 2019-07-22 15:45:40 +03:00
tx_pool.go core, light, params: implement eip2028 (#19931) 2019-08-14 15:53:21 +03:00
types.go core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00