aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/bn256
Commit message (Collapse)AuthorAgeFilesLines
* build: enable goimports and varcheck linters (#16446)thomasmodeneis2018-04-181-1/+9
|
* crypto/bn256: full switchover to cloudflare's code (#16301)Péter Szilágyi2018-03-2020-150/+780
| | | | | | | | | | | | * crypto/bn256: full switchover to cloudflare's code * crypto/bn256: only use cloudflare for optimized architectures * crypto/bn256: upstream fallback for non-optimized code * .travis, build: drop support for Go 1.8 (need type aliases) * crypto/bn256/cloudflare: enable curve mul lattice optimization
* core/vm, crypto/bn256: switch over to cloudflare library (#16203)Péter Szilágyi2018-03-0532-33/+2793
| | | | | | | | | | * core/vm, crypto/bn256: switch over to cloudflare library * crypto/bn256: unmarshal constraint + start pure go impl * crypto/bn256: combo cloudflare and google lib * travis: drop 386 test job
* crypto/bn256: fix generator on G1 (#15591)Matthew Di Ferrante2017-12-011-1/+1
| | | | | | | | | | | | | Generator in the current lib uses -2 as the y point when doing ScalarBaseMult, this makes it so that points/signatures generated from libs like py_ecc don't match/validate as pretty much all other libs (including libsnark) have (1, 2) as the standard generator. This does not affect consensus as the generator is never used in the VM, points are always explicitly defined and there is not ScalarBaseMult op - it only makes it so that doing "import github.com/ethereum/go-ethereum/crypto/bn256" doesn't generate bad points in userland tools.
* core/vm, crypto/bn256: fix bn256 use and pairing corner casePéter Szilágyi2017-08-172-7/+12
|
* crypto/bn256: fix go vet false positiveFelix Lange2017-05-244-19/+19
| | | | Also add the package to the license tool ignore list.
* consensus, core/*, params: metropolis preparation refactorJeffrey Wilcke2017-05-1811-0/+2538
This commit is a preparation for the upcoming metropolis hardfork. It prepares the state, core and vm packages such that integration with metropolis becomes less of a hassle. * Difficulty calculation requires header instead of individual parameters * statedb.StartRecord renamed to statedb.Prepare and added Finalise method required by metropolis, which removes unwanted accounts from the state (i.e. selfdestruct) * State keeps record of destructed objects (in addition to dirty objects) * core/vm pre-compiles may now return errors * core/vm pre-compiles gas check now take the full byte slice as argument instead of just the size * core/vm now keeps several hard-fork instruction tables instead of a single instruction table and removes the need for hard-fork checks in the instructions * core/vm contains a empty restruction function which is added in preparation of metropolis write-only mode operations * Adds the bn256 curve * Adds and sets the metropolis chain config block parameters (2^64-1)