Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | core: rebase dev and fix lint | Jhih-Ming Huang | 2019-02-19 | 11 | -4427/+39 |
| | |||||
* | core: vm: sqlvm: types support data range | Meng-Ying Yang | 2019-02-19 | 2 | -0/+82 |
| | | | | | The data range is deterministic for specific type, `GetMinMax` is helper function to generate min, max value for clients. | ||||
* | core: vm: sqlvm: export instruction's member (#197) | JM | 2019-02-19 | 2 | -6/+6 |
| | |||||
* | core: vm: sqlvm: revert Tuple structure (#193) | JM | 2019-02-19 | 1 | -4/+5 |
| | |||||
* | core: vm: sqlvm: modify Tuple.Data.Value type | Jhih-Ming Huang | 2019-02-19 | 1 | -7/+3 |
| | | | | | Modify Tuple.Data.Value type from *big.Int to interface{} and remove Max, Min. | ||||
* | core: vm: sqlvm: shared interfaces and params | Jhih-Ming Huang | 2019-02-19 | 6 | -0/+245 |
| | | | | | | | After reconstructing commits, we move shared interfaces and params as first runtime implementation. In this commit we define OP codes, runtime flow and entrypoint, and basic operand structs and minor helper components. | ||||
* | core: vm: sqlvm: add schema define and implement rlp serialization | wmin0 | 2019-02-19 | 4 | -42/+310 |
| | | | | Implement schema struct and handle its rlp serialization. | ||||
* | core: vm: sqlvm: ast: add encoder/decoder for decimal to bytes | wmin0 | 2019-02-19 | 2 | -11/+196 |
| | | | | | | | | Add encoder/decoder to convert between decimal and bytes. Also handle issues below. * Signed & Unsigned * Padding * Floating point of fixed | ||||
* | core: vm: sqlvm: ast: data type encoder and decoder | wmin0 | 2019-02-19 | 2 | -0/+244 |
| | | | | | Implement encode & decode function to convert between type node and 2-bytes type described on spec. | ||||
* | core: vm: sqlvm: ast: don't hardcode output and indent in PrintAST | Ting-Wei Lan | 2019-02-19 | 2 | -26/+35 |
| | | | | | It is now possible to write AST dump to a writer other than stdout and use indent string other than 2 spaces. | ||||
* | core: vm: sqlvm: process non-UTF-8 input and escape sequences | Ting-Wei Lan | 2019-02-19 | 8 | -337/+579 |
| | | | | | | | | | | | | | | | Our parser is able to process queries with invalid UTF-8, provided that it is compatible with ASCII. Since doing so requires encoding the input before passing to pigeon, Parse* functions generated by pigeon are unexported because they should not be used directly. Escape sequences in string literals and identifiers are now recognized. In addition to escape sequences supported by solidity, we support \U similar to the one supported by Go to allow users to specify non-BMP Unicode code point without using multiple \x escapes. AST printer is modified to quote non-printable characters in strings to prevent control characters from messing up the terminal. | ||||
* | core: vm: sqlvm: parser: properly handle errors | Ting-Wei Lan | 2019-02-19 | 6 | -1242/+1637 |
| | | | | | | Instead of ignoring errors, errors returned from external functions are normalized and reported to users. Errors which should be impossible to occur are converted to panic calls. | ||||
* | core: vm: sqlvm: remove optional interface and add print tag for detail | wmin0 | 2019-02-19 | 3 | -99/+49 |
| | | | | | | | There are some changes in print ast utility. 1. instead of using optional interface to get detail, use reflect 2. implement a `print` field tag for printer switching detail mode or not | ||||
* | core: vm: sqlvm: move AST and parser to their own packages | Ting-Wei Lan | 2019-02-19 | 8 | -1837/+2010 |
| | | | | | | | | In order to avoid putting too many different things in single package and allow other projects to reuse the syntax tree and the parser, these two components are moved to different packages and all nodes used in AST are now exported. A lot of comments are added in this commit to pass golint checks. | ||||
* | core: vm: sqlvm: add a tool to run gofmt on pigeon sources | Ting-Wei Lan | 2019-02-19 | 1 | -0/+253 |
| | | | | | | This tool is good enough to format our sqlvm grammar file. It is not guaranteed to work for all valid pigeon files, and it only process multi-line Go code blocks. | ||||
* | core: vm: sqlvm: add sql language parser prototyping | wmin0 | 2019-02-19 | 13 | -0/+11043 |
| | | | | | | | | | Add sql language parser prototyping along with 1. grammar file implemented with github.com/mna/pigeon 2. ast node struct definition 3. simple parser test which only test if error existed 4. ast printer utility for visualizing parsing result | ||||
* | core: vm: vm interface (#164) | JM | 2019-02-19 | 23 | -85/+806 |
| | |||||
* | core: vm: extract stateDB and contract out | jm | 2019-02-19 | 31 | -438/+506 |
| | | | | | Extract stateDB and contract out from core/vm/evm to core/vm, such that other vm type can use the common modules. | ||||
* | core: vm: refactor file structure | jm | 2019-02-19 | 96 | -885/+5297 |
| | | | | | For support other vm types, this pr modified the core/vm file structures. | ||||
* | vm: reset DKG (#190)dexon-classic | Jimmy Hu | 2019-02-15 | 4 | -70/+562 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vm: Update gov abi * vm: Add DKGResetCount to state helper * vm: add getter * vm: Add DKGReset event * vm: Add resetDKG method * vm: check resetDKG criteria * vm: Add new CRS * vm: add helper pop2DByteArray * vm: emit event * vm: Add CoreMock to GovernanceContract * vm: bug fix * add test for resetDKG * vm: Add test * fix test * Modify mock interface | ||||
* | dex: some minor improvements (#195) | Sonic | 2019-02-14 | 3 | -144/+117 |
| | | | | | | | | | | * dex: improve some msg propagation * dex: support send a batch of lattice blocks, votes, randomnesses To reduce msgs number of PullBlocks, PullVotes, PullRandomness * dex: minor improvement | ||||
* | dex: Add a flag to GetBlockHeadersMsg and GetBlockBodiesMsg (#188) | Sonic | 2019-02-12 | 7 | -63/+95 |
| | | | | | | | | | * dex: Add a flag to GetBlockHeadersMsg and GetBlockBodiesMsg So that we can dispatch the response msg to fetcher or downloader easily. * fixup! dex: Add a flag to GetBlockHeadersMsg and GetBlockBodiesMsg | ||||
* | travis: Add notification to slack | Jimmy Hu | 2019-02-12 | 1 | -0/+3 |
| | |||||
* | p2p, dex: some fixes (#189) | Sonic | 2019-02-11 | 2 | -1/+4 |
| | | | | | * p2p: try resolving direct dial when dial fail * dex: avoid concurrent map read and map write | ||||
* | p2p, dex: rework connection management (#183) | Sonic | 2019-01-31 | 11 | -1084/+424 |
| | | | | | | * p2p, dex: rework connection management * dex: refresh our node record periodically * dex: don't send new record event if no new record | ||||
* | transaction: use all transaction gas to reduce attack intention (#180) | bojie | 2019-01-31 | 2 | -1/+43 |
| | | | The ci test in /tests will use origin evm logic. | ||||
* | vendor, param: sync to latest core and update dmoment (#182) | Jimmy Hu | 2019-01-29 | 3 | -25/+29 |
| | | | | | | * vendor: sync to latest core * params: update dmoment | ||||
* | app: prepare/verify block limit in correct round (#181) | bojie | 2019-01-29 | 1 | -2/+2 |
| | |||||
* | core/vm: modify Withdrawn event and add NodeRemoved event (#179) | Jimmy Hu | 2019-01-28 | 2 | -4/+31 |
| | | | | | | * core/vm: add delegatorAddr to withdrawn event * core/vm: update gov abi * core/vm: add NodeRemoved event | ||||
* | vendor, param: sync to latest core and update testnet config (#178) | Jimmy Hu | 2019-01-28 | 3 | -24/+25 |
| | | | | | * param: update testnet config * vendor: sync to latest core | ||||
* | params: Update taipei config | Jimmy Hu | 2019-01-27 | 1 | -4/+4 |
| | |||||
* | param: update testnet config (#177) | Jimmy Hu | 2019-01-27 | 5 | -96/+164 |
| | | | | | * vendor:sync to latest core * params: Update config for testnet | ||||
* | core: vm: refactor governance and add node info oracle (#174) | Wei-Ning Huang | 2019-01-25 | 6 | -683/+954 |
| | |||||
* | core: vm: Add amount to undelegate event (#176) | Jimmy Hu | 2019-01-25 | 2 | -4/+9 |
| | |||||
* | core: vm: more change to the randomness calculation (#175) | Wei-Ning Huang | 2019-01-25 | 1 | -5/+5 |
| | | | | To prevent attacker from sending TX through a intermediate contract. Always use the original tx sender's adddress and nonce. | ||||
* | params: update dmoment | Jimmy Hu | 2019-01-25 | 1 | -1/+1 |
| | |||||
* | core: vm: modify randomness calculation algorithm (#173) | Wei-Ning Huang | 2019-01-24 | 2 | -3/+7 |
| | | | | | | | | | | | | | | | | | | | | | | | | The original algorithm used for calculating algorithm is vulnerable to cross context re-entry attack. Example as follows: contract B { event Value(uint256 value); uint256 public value; function call() public { value = rand; emit Value(value); } } contract A { function randTwice(address bAddr) public { B b = B(bAddr); b.call.gas(100000)(); b.call.gas(100000)(); } } The two `b.call` will result in the same randomness value. This commit fix the issue by recording a called index used to store how many times opRand is called, and use it as argument to the Keccak call. | ||||
* | Update dmoment | Jimmy Hu | 2019-01-24 | 1 | -1/+1 |
| | |||||
* | consensus: dexcon: snapshot round height when finalizing block (#170) | Wei-Ning Huang | 2019-01-24 | 17 | -279/+332 |
| | | | | Instead of having BP to send a tx to register the round height, just modify the state when finalizing block. | ||||
* | dex: reduce pullVote (#172) | Jimmy Hu | 2019-01-24 | 1 | -2/+3 |
| | |||||
* | ci: move smoke-test to PR test | Wei-Ning Huang | 2019-01-24 | 1 | -17/+17 |
| | |||||
* | ci: Only build on dev and master (#171) | Jimmy Hu | 2019-01-24 | 1 | -0/+4 |
| | |||||
* | dex: Add rate limit for pullVote (#169) | Jimmy Hu | 2019-01-24 | 1 | -7/+21 |
| | |||||
* | core, dex/downloader: polish headers verification and blocks insertion ↵ | Sonic | 2019-01-24 | 14 | -625/+1143 |
| | | | | | | | logic (#168) Refactor GenerateDexonChain function, move governance tx logic to the user of GenerateDexonChain (testchain_test.go) and move fake node set code to FakeDexcon. | ||||
* | param: Update dmoment | Jimmy Hu | 2019-01-23 | 2 | -2/+2 |
| | |||||
* | params: Update testnet dmoment | Jimmy Hu | 2019-01-23 | 1 | -1/+1 |
| | |||||
* | params: Update testnet config (#167) | Jimmy Hu | 2019-01-23 | 13 | -79/+122 |
| | | | | | | | | * vendor: sync to latest core * param: update testnet config * params: update dmoment | ||||
* | param: Update testnet dmoment (#166) | Jimmy Hu | 2019-01-20 | 1 | -1/+1 |
| | |||||
* | travis: re-encrypt GCP credential file (#165) | bojie | 2019-01-20 | 3 | -3/+3 |
| | |||||
* | params: update testnet dMoment | Wei-Ning Huang | 2019-01-19 | 1 | -1/+1 |
| | |||||
* | params: update testnet genesis and dMoment | Wei-Ning Huang | 2019-01-18 | 2 | -7/+5 |
| | |||||
* | p2p: report latency and relative latency to datadog (#162) | Wei-Ning Huang | 2019-01-18 | 2 | -3/+14 |
| | |||||
* | travis: add new CI test to test fullnode (#138) | bojie | 2019-01-18 | 10 | -39/+366 |
| | |||||
* | dex: add block number gauge (#140) | haoping-ku | 2019-01-18 | 1 | -18/+25 |
| | |||||
* | core, dex: use block hash as witness data (#160) | Sonic | 2019-01-18 | 7 | -74/+30 |
| | | | | | | | | | | Using only state root and receipt root as witness data can not protect other fields in block header, ex: bloom, difficulty, gas limit, gas used... So that everyone can manipulate these fields to create as many valid blocks at the same height as he want. Although this will not effect the state, one can spam us when syncing. Using block hash as witness data can solve this. | ||||
* | blockchain: add mutex lock to prevent fork (#159) | bojie | 2019-01-17 | 1 | -1/+6 |
| | |||||
* | Revert "core: do not panic on fork (#146)" | Wei-Ning Huang | 2019-01-17 | 1 | -8/+4 |
| | | | | This reverts commit bdde6109ffa6fa4d295708a2a75271186a12c761. | ||||
* | common: fix big scan from bytes (#157) | johnliu-dexon | 2019-01-17 | 2 | -2/+6 |
| | | | | | | We store string of number, not bytes value into database 10 is stored as 0x3130, not 0x0a Use UnmarshalText instead of SetBytes | ||||
* | core: sync to latest core (#158) | Jimmy Hu | 2019-01-17 | 7 | -47/+63 |
| | | | | | | * vendor: sync to latest core * param: Update config * core: update genesis alloc | ||||
* | Revert "core: vm: refactor file structure (#151)" | Wei-Ning Huang | 2019-01-17 | 96 | -911/+889 |
| | | | | This reverts commit 020c8a477578cef3764b54f33d9ca0cf6caf7631. | ||||
* | params: update testnet dMoment | Wei-Ning Huang | 2019-01-16 | 1 | -1/+1 |
| | |||||
* | Fix the usage of sync.Map (#156) | Mission Liao | 2019-01-16 | 1 | -4/+2 |
| | |||||
* | app: fix reward bug with empty block (#155) | bojie | 2019-01-16 | 2 | -12/+15 |
| | | | | | | | | * app: fix reward bug with empty block * make block generation consistent * revert change to dmoment in genesis.json | ||||
* | vendor: sync to latest core (#154) | Jimmy Hu | 2019-01-16 | 21 | -344/+891 |
| | | | | | | * vendor: sync to latest core with BA3.0 * params: Update dmoment | ||||
* | test: update dmoment with python script (#153) | Wei-Ning Huang | 2019-01-16 | 1 | -2/+11 |
| | |||||
* | core: vm: refactor file structure (#151) | JM | 2019-01-15 | 96 | -889/+911 |
| | | | | For support other vm types, this pr modified the core/vm file structures. | ||||
* | core: do not panic on fork (#146) | Wei-Ning Huang | 2019-01-15 | 1 | -4/+8 |
| | | | | | | It is possible for someone on the network to send a block with correct tx and tSig but wrong state root. When this happens, a fork block will be inserted as side chain. Do not panic on this case or all nodes will be down. | ||||
* | fixup! params: write dMoment into ChainConfig (#150) | Wei-Ning Huang | 2019-01-14 | 2 | -2/+2 |
| | |||||
* | params: update testnet dMoment | Wei-Ning Huang | 2019-01-14 | 1 | -1/+1 |
| | |||||
* | app: remove pending block logic (#149) | bojie | 2019-01-14 | 10 | -442/+320 |
| | |||||
* | params: write dMoment into ChainConfig (#150) | Wei-Ning Huang | 2019-01-14 | 10 | -37/+40 |
| | |||||
* | core: update taipei alloc | Jimmy Hu | 2019-01-14 | 1 | -1/+1 |
| | |||||
* | params: update genesis config | Wei-Ning Huang | 2019-01-14 | 4 | -25/+30 |
| | |||||
* | test: Update bootnode path | Jimmy Hu | 2019-01-14 | 1 | -1/+1 |
| | |||||
* | params: update bootnode IP | Wei-Ning Huang | 2019-01-14 | 1 | -8/+3 |
| | |||||
* | consensus: implement DEXON cryptoeconomics v4.0 (#145) | Wei-Ning Huang | 2019-01-14 | 17 | -237/+493 |
| | |||||
* | core: vm: add totalSupply and totalStaked in the governance contract (#144) | Wei-Ning Huang | 2019-01-14 | 5 | -37/+146 |
| | | | | | | | Add totalSupply and totalStaked in the governance contract for the preperation of DEXON cryptoeconomics 4.0. Also removed the unstaked variable in node info and improve tests for delegate/undeleate. | ||||
* | core: vm: move governance abi to a separate file (#143) | Wei-Ning Huang | 2019-01-14 | 3 | -1055/+1076 |
| | |||||
* | core: vm: emit events for more governance actions (#142) | Wei-Ning Huang | 2019-01-14 | 1 | -0/+145 |
| | |||||
* | misc: Fix makefile | Jimmy Hu | 2019-01-14 | 1 | -2/+2 |
| | |||||
* | core: update testnet genesis_alloc | Jimmy Hu | 2019-01-14 | 2 | -3/+3 |
| | |||||
* | core: update taipei network genesis alloc | Wei-Ning Huang | 2019-01-14 | 1 | -1/+1 |
| | |||||
* | indexer: pass network-related params through config (#133) | Meng-Ying Yang | 2019-01-14 | 2 | -0/+14 |
| | | | | | | | | Pass following network related params: * Genesis block * Network ID And sync mode for indexer configuration. | ||||
* | dex: remove unused log (#136) | Sonic | 2019-01-14 | 1 | -4/+0 |
| | | | | | | * fixup! app: use gcp storage instead of azure for builds (#81) * dex: remove unused log | ||||
* | core: fix corner case when initializing round height (#134) | Sonic | 2019-01-14 | 1 | -1/+1 |
| | |||||
* | app: implement logic for prepare/verify correctly when chain number change ↵ | bojie | 2019-01-14 | 8 | -25/+383 |
| | | | | (#118) | ||||
* | dex: replace NodeMeta with ENR (#132) | Sonic | 2019-01-14 | 9 | -255/+236 |
| | |||||
* | travis-ci: fix gcp-linux build (#131) | Wei-Ning Huang | 2019-01-14 | 1 | -3/+0 |
| | |||||
* | core: vm: implement byzantine reporting mechanism (#128) | Wei-Ning Huang | 2019-01-14 | 8 | -100/+719 |
| | |||||
* | params: update taipei genesis config (#130) | Wei-Ning Huang | 2019-01-14 | 2 | -4/+4 |
| | |||||
* | dex: fix test due to consensus-core change | Wei-Ning Huang | 2019-01-14 | 1 | -9/+9 |
| | |||||
* | vendor: sync to latest core and fix conflict | Jimmy Hu | 2019-01-14 | 4 | -23/+37 |
| | |||||
* | vendor: sync to latest core (#129) | Wei-Ning Huang | 2019-01-14 | 11 | -90/+90 |
| | |||||
* | vendor: update bls package (#127) | Meng-Ying Yang | 2019-01-14 | 2 | -3/+6 |
| | | | | * Add missing cpp file * Align root and sub folder hash | ||||
* | dex: fix cache error (#126) | Jimmy Hu | 2019-01-14 | 1 | -0/+1 |
| | |||||
* | vendor: sync to latest core (#125) | Jimmy Hu | 2019-01-14 | 10 | -86/+288 |
| | |||||
* | core, indexer, dex: fix DexconApp block deliver after synced (#122) | Sonic | 2019-01-14 | 3 | -15/+16 |
| | | | | | | | When starts a bp node to sync with the network, bc.chainLastHeight map may not be initialized yet. Just return error if we can not get chain last height when preparing payload and verify block. | ||||
* | core: fix vm wrong round height context (#124) | Sonic | 2019-01-14 | 1 | -0/+45 |
| | | | | Let roundHeightMap be corret whenever we starting a bp node. | ||||
* | core: update taipei testnet genesis config and alloc (#119) | Wei-Ning Huang | 2019-01-14 | 2 | -3/+3 |
| | |||||
* | test: update run_test.sh with dmoment | Jimmy Hu | 2019-01-14 | 1 | -0/+4 |
| | |||||
* | vendor: sync to latest core (#121) | Wei-Ning Huang | 2019-01-14 | 2 | -27/+30 |
| | |||||
* | node: increase default max number of peers (#120) | Wei-Ning Huang | 2019-01-14 | 2 | -2/+2 |
| | |||||
* | Indexer plugin extension and custom flags support (#117) | Meng-Ying Yang | 2019-01-14 | 5 | -0/+13 |
| | | | | | | * indexer: ReadOnlyBlockchain returns underlying engine * indexer: plugin configs support custom flags | ||||
* | core: vm: add missing unittests for nodes/delegators (#116) | Wei-Ning Huang | 2019-01-14 | 2 | -3/+13 |
| | |||||
* | travis-ci: fix gcp-linux build (#114) | Wei-Ning Huang | 2019-01-14 | 1 | -1/+1 |
| | | | | The ubuntu trusty distribution binutils-aarch64-linux-gnu package does not contain the gold linker. Use the xenial distribution instead. | ||||
* | params: update taipei testnet genesis and config (#113) | Wei-Ning Huang | 2019-01-14 | 4 | -9/+11 |
| | |||||
* | indexer: ReadOnlyBlockChain returns related configs (#110) | Meng-Ying Yang | 2019-01-14 | 1 | -0/+4 |
| | | | | For restoring mock componenets (such as: VM, Backend, ...etc), blockchain related configs should be exposed. | ||||
* | Sync latest DEXON core (#111) | Mission Liao | 2019-01-14 | 3 | -66/+112 |
| | |||||
* | travis-ci: fix osx build (#112) | Wei-Ning Huang | 2019-01-14 | 1 | -2/+13 |
| | |||||
* | app: use gcp storage instead of azure for builds (#81) | bojie | 2019-01-14 | 566 | -13621/+196842 |
| | | | | | * vendor: add dependencies for using GCP storage * app: use gcp storage instead of azure for builds | ||||
* | core/vm: Add fine to governance. (#107) | Jimmy Hu | 2018-12-28 | 4 | -135/+295 |
| | | | | | | | | * core/vm: Add Fined field to nodeInfo. * core/vm: Add PayFine to Governance * Not qualify if staked-fine < minStake() * Add test for fine * Update genesis hash | ||||
* | Dockerfile: clean bls before build (#109) | Wei-Ning Huang | 2018-12-28 | 2 | -3/+5 |
| | |||||
* | indexer: support data exporting/forwarding (#103) | Meng-Ying Yang | 2018-12-28 | 8 | -0/+190 |
| | | | | | | | | | To support more effective and flexible blockchain info exploring, we add `indexer` package, defines the flow of indexer dameon, and integrate into dex.Dexon fullnode. For more export options, we use Golang built-in `plugin` package to support mulitple implementations. | ||||
* | vendor: sync dexon-foundation/bls to latest dev (#108) | Wei-Ning Huang | 2018-12-28 | 4 | -32/+10 |
| | |||||
* | dex/downloader: fix bug when syncing (#106) | Sonic | 2018-12-28 | 1 | -2/+13 |
| | | | | | Since blocks will interleave around round change, we will probably need to verify blocks at previous round. | ||||
* | cmd/monkey: change feeder gas limit | Jimmy Hu | 2018-12-28 | 1 | -2/+2 |
| | |||||
* | dex: add pull randomness (#105) | Jimmy Hu | 2018-12-28 | 16 | -167/+361 |
| | | | | | * vendor: sync to latest core * dex: Add PullRandomness | ||||
* | common: add utilities for Big type (#104) | Meng-Ying Yang | 2018-12-28 | 1 | -0/+6 |
| | | | | | - Add String() for common usage which call original `big.Int`'s `String()` - Add ToBigInt() for type convertion | ||||
* | core: add database/sql support for more types (#102) | Meng-Ying Yang | 2018-12-28 | 4 | -9/+243 |
| | | | | | | | | | * core: types: add database/sql support for BlockNonce * common: add database/sql support with Big New Big type is declared to let big.Int support database/sql by implementing Scan() and Value() on new type. | ||||
* | vendor: sync DEXON core and fix conflicts/missings (#101) | Mission Liao | 2018-12-28 | 15 | -311/+366 |
| | | | | | | | Merging these commits in DEXON consensus core: - https://github.com/dexon-foundation/dexon-consensus/commit/dce509a13ef5873b9cae3c1cabdb97e219b6fb7d - https://github.com/dexon-foundation/dexon-consensus/commit/6d1c1aeea0d3e75d10cbb2712c68b4c422ba8ba6 - https://github.com/dexon-foundation/dexon-consensus/commit/c1ed57c4abaf1f4758e52f082bb7114ad00c8b39 | ||||
* | params: enable constantinople fork for testnets | Wei-Ning Huang | 2018-12-25 | 1 | -2/+2 |
| | |||||
* | monkey: add ERC20 token transfer (#99) | johnliu-dexon | 2018-12-23 | 4 | -4/+125 |
| | | | | Add ERC20 token (Banana) and feeder Fix call contract parameters | ||||
* | README.md: clarify licensing terms (#100) | Wei-Ning Huang | 2018-12-23 | 1 | -0/+2 |
| | |||||
* | core/types: SigCache with a limited size (#98) | Jimmy Hu | 2018-12-21 | 2 | -21/+33 |
| | | | | | | * core/types: SigCache with a limited size * minor tweaks | ||||
* | core, dex, internal: block proposer syncing (first iteration) (#96) | Sonic | 2018-12-21 | 12 | -100/+1199 |
| | | | | | | | | | | | | | | | | | | | | | | * dex, internal: block proposer syncing (first iteration) * core: find block from db if not in memory This fix handles stopping proposing and then restarting * core: no need to reorg when reset Dexon will not fork. This commit also fix when a block confirm but its parent is not in db yet, during restarting proposing. * dex: always accept NewBlockMsg, NewBlockHashesMsg We need to accept NewBlockMsg, NewBlockHashesMsg to sync current block with other peers in block proposer mode when syncing lattice data. It's a waste when the node is synced and start proposing. Todo: control msg processing on/off more granular, accept NewBlockMsg, NewBlockHashesMsg when syncing, but stop when synced. | ||||
* | core: vm: Add `MPKReady` to governance (#97) | Jimmy Hu | 2018-12-21 | 19 | -88/+481 |
| | | | | | | * core/vm: Add DKGMPKReady * param: update GenesisHash * vendor: sync to latest core | ||||
* | core/vm: fix nodes method in governance | Jimmy Hu | 2018-12-20 | 1 | -1/+1 |
| | |||||
* | tests/testdata: update for constantinople | Wei-Ning Huang | 2018-12-19 | 1 | -0/+0 |
| | |||||
* | dex: remove duplicate declaration of WitnessData (#92) | Wei-Ning Huang | 2018-12-19 | 4 | -21/+3 |
| | | | | Remove duplicate declaration of WitnessData and remove the TxHash field in witness data since it does not need to be witnessed. | ||||
* | cmd/monkey: decrease Distribute amount to 100 DXN | Jimmy Hu | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | core: vm: add undelegate fund lockup mechanism (#94) | Wei-Ning Huang | 2018-12-19 | 6 | -45/+251 |
| | | | | | Only allow a user to withdraw funds after a certain lockup period. This way, the fund of a bad actor could be confiscated before he could escape. | ||||
* | core: update genesis alloc | Jimmy Hu | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | dex: stop consensus core (#93) | Jimmy Hu | 2018-12-19 | 1 | -0/+1 |
| | |||||
* | vendor: sync to latest core (#91) | Mission Liao | 2018-12-19 | 15 | -117/+563 |
| | | | | | | - Implement new methods in db to cache DKG private key. - Implement new methods in db to cache compaction chain tip. | ||||
* | vendor: sync to latest core and fix conflict | Jimmy Hu | 2018-12-19 | 17 | -234/+359 |
| | |||||
* | params: add TODO | Jimmy Hu | 2018-12-19 | 1 | -0/+1 |
| | |||||
* | dex, cmd: Add DMoment to command line (#87) | Jimmy Hu | 2018-12-19 | 4 | -6/+20 |
| | |||||
* | cache: prune cache correctly (#88) | bojie | 2018-12-19 | 1 | -2/+1 |
| | |||||
* | ci: auto retry test (#89) | Jimmy Hu | 2018-12-19 | 1 | -3/+3 |
| | |||||
* | app: remove unnecessary code (#86) | bojie | 2018-12-19 | 2 | -15/+3 |
| | |||||
* | core: governance interface should return correct DKG master public keys (#85) | Wei-Ning Huang | 2018-12-19 | 2 | -24/+21 |
| | |||||
* | dex: Pull blocks from blockdb if cache miss (#84) | Jimmy Hu | 2018-12-19 | 3 | -4/+40 |
| | |||||
* | Update README.md (#83) | Jimmy Hu | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | ci: migrate to travis-ci.org (#82) | Jimmy Hu | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | Dockerfile: fix path and dependency (#80) | s60912frank | 2018-12-19 | 1 | -2/+2 |
| | | | | | | | | * Dockerfile: fix path and dependency * Update Dockerfile Co-Authored-By: s60912frank <s60912frank@gmail.com> | ||||
* | vendor: sync to latest core and fix conflict (#79) | Jimmy Hu | 2018-12-19 | 6 | -99/+272 |
| | |||||
* | app: return retry later instead of retry with sleep time (#78) | bojie | 2018-12-19 | 1 | -31/+22 |
| | |||||
* | core, dex: polish sync (#75) | Sonic | 2018-12-19 | 7 | -8/+82 |
| | | | | | | | | | | | | | | | - Broadcasting blocks at chain head event is not correct when the full node is not running in block proposer mode. Introduce NewFinalizedBlockEvent, this event is post by the full node which runs in block proposer mode when a block is witnessed and resulting in some blocks are considered finalized. - Non block proposer node will still broadcast blocks at the following moment (same as ethereum): 1. a sync with a peer is terminated successfully 2. a block passes the fetcher's header check during inserting blocks 3. a block is successfully inserted by fetcher - Don't trigger a sync when we are not behind other peers more than acceptable distance. Fetcher is able to cover this. | ||||
* | README.md: add gitter.im badges (#77) | Wei-Ning Huang | 2018-12-19 | 1 | -2/+3 |
| | | | | | * README.md: add gitter.im badges * Update README.md | ||||
* | app: misc fixes (#76) | bojie | 2018-12-19 | 1 | -50/+30 |
| | | | | Use sync map to prevent concurrent read write. Use last pending state to prepare/verify transactions. | ||||
* | dex: replace total difficulty with block number (#73) | Sonic | 2018-12-19 | 10 | -177/+143 |
| | | | | | | | In dexon, we don't "mine" and the blockchain won't and shouldn't fork, so there is no difficulty concept, just replace it with block number. Note: this commit only replace total difficulty related logic and code in dex, dex/downloader package. | ||||
* | core, dex: Timeout for prepare payload (#72) | Jimmy Hu | 2018-12-19 | 3 | -8/+68 |
| | | | | | | * Timeout on prepare payload * Leave 2 CPU for others * Add hardLimit and softLimit to PreparePayload | ||||
* | dex: use whole id to query peer info (#74) | Sonic | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | app: add app test case and benchmark (#66) | bojie | 2018-12-19 | 6 | -32/+991 |
| | |||||
* | monkey: increase amount and send random amount (#70) | Jimmy Hu | 2018-12-19 | 1 | -2/+4 |
| | |||||
* | vendor: update to latest core (#71) | Jimmy Hu | 2018-12-19 | 10 | -248/+138 |
| | |||||
* | dex: verify header that imported from fetcher (#68) | Sonic | 2018-12-19 | 2 | -1/+5 |
| | |||||
* | README.md: update CI badge (#67) | Wei-Ning Huang | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | core: fix tests (#65) | Wei-Ning Huang | 2018-12-19 | 4 | -15/+12 |
| | |||||
* | travis-ci: disable builders (#64) | Wei-Ning Huang | 2018-12-19 | 1 | -156/+156 |
| | | | | Disable automatic builds for now until we come up with a better solution. | ||||
* | Fix lint | Wei-Ning Huang | 2018-12-19 | 14 | -115/+120 |
| | |||||
* | test: improve keygen.go (#62) | Wei-Ning Huang | 2018-12-19 | 9 | -13/+67 |
| | |||||
* | core: Update genesis alloc. (#63) | Jimmy Hu | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | core: panic if fork found when inserting header chain (#61) | Wei-Ning Huang | 2018-12-19 | 1 | -1/+6 |
| | |||||
* | p2p/discover: increase IP address limits (#60) | Sonic | 2018-12-19 | 1 | -2/+3 |
| | |||||
* | internal/ethapi: add transactionHash in blockreceipts (#58) | johnliu-dexon | 2018-12-19 | 1 | -0/+1 |
| | |||||
* | dex: add metrics (#54) | Sonic | 2018-12-19 | 1 | -32/+84 |
| | |||||
* | Makefile: add libbls to test target dependencies (#57) | Wei-Ning Huang | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | cmd: fix tests (#55) | bojie | 2018-12-19 | 4 | -15/+19 |
| | |||||
* | internal/ethapi: add getBlockReceiptsByHash (#56) | johnliu-dexon | 2018-12-19 | 2 | -0/+55 |
| | | | | | | | | | | * dex: add getBlockReceiptsByHash add rpc method for performance acceleration * Update internal/ethapi/api.go Co-Authored-By: johnliu-dexon <42129254+johnliu-dexon@users.noreply.github.com> | ||||
* | test: add local bootnode (#53) | Jimmy Hu | 2018-12-19 | 1 | -0/+6 |
| | | | | | | * test: add local bootnode * Update run_test.sh | ||||
* | tests: updates testadata | Wei-Ning Huang | 2018-12-19 | 5 | -8/+38 |
| | |||||
* | tests: fix tests | Wei-Ning Huang | 2018-12-19 | 3 | -4/+13 |
| | |||||
* | node: fix tests | Wei-Ning Huang | 2018-12-19 | 1 | -2/+2 |
| | |||||
* | miner: fix test | Wei-Ning Huang | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | dex/downloader: fix tests | Sonic | 2018-12-19 | 2 | -242/+114 |
| | |||||
* | les: fix tests | Wei-Ning Huang | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | dex: fix tests | Wei-Ning Huang | 2018-12-19 | 5 | -43/+95 |
| | |||||
* | core: fix tests | Wei-Ning Huang | 2018-12-19 | 5 | -15/+12 |
| | |||||
* | vendor: sync to latest core (#52) | Jimmy Hu | 2018-12-19 | 9 | -329/+747 |
| | |||||
* | core: vm: fix power2 table calculation (#50) | Wei-Ning Huang | 2018-12-19 | 1 | -3/+3 |
| | |||||
* | core: commit states at snapshot height (#49) | Sonic | 2018-12-19 | 1 | -2/+7 |
| | |||||
* | params: update testnet bootnode IP (#48) | Wei-Ning Huang | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | core: add Taipei testnet (#47) | Wei-Ning Huang | 2018-12-19 | 8 | -14/+89 |
| | | | | Add a new testnet named Taipei. | ||||
* | core: various changes on tps tuning (#46) | Wei-Ning Huang | 2018-12-19 | 10 | -25/+23 |
| | |||||
* | app: skip tx which has been confirmed (#45) | bojie | 2018-12-19 | 1 | -9/+8 |
| | | | | | | * app: skip tx which has been confirmed * fixup! app: skip tx which has been confirmed | ||||
* | core: increase tx pool size | Wei-Ning Huang | 2018-12-19 | 1 | -4/+4 |
| | |||||
* | api: allow sending batch of raw transactions | Wei-Ning Huang | 2018-12-19 | 9 | -79/+164 |
| | |||||
* | core, dex, downloader: refactor governance | Sonic | 2018-12-19 | 6 | -246/+109 |
| | |||||
* | core, dex, dex/downloader: restore insertChain to upstream version | Sonic | 2018-12-19 | 4 | -27/+25 |
| | | | | | Also rename InsertChain2, insertChain2, InsertHeaderChain2, ValidateHeaderChain2 | ||||
* | test: add script to run sync node | Sonic | 2018-12-19 | 1 | -0/+24 |
| | |||||
* | dex: implement downloader for dex | Sonic | 2018-12-19 | 12 | -88/+504 |
| | | | | | | | | | | | We need governance state to verify block's signature (randomness), but in ethereum fast sync mode, eth downloader only downloads the whole state of pivot block, so we don't have governance state to verify the downloaded block that is before pivot block if we don't processing transaction. To avoid running transactions, dex downloader also downloads the governance state (merkle proof and storage) at snapshot height of each round, so that we can verify blocks in fast sync mode. | ||||
* | core: implement insert chain, headerchain logic | Sonic | 2018-12-19 | 3 | -0/+521 |
| | |||||
* | core: support extracting governance state from state trie | Sonic | 2018-12-19 | 3 | -0/+73 |
| | |||||
* | dex: use dex/downloader in dex | Sonic | 2018-12-19 | 14 | -42/+46 |
| | | | | | To compatible with ethereum code base, make Downloader a interface in internal/ethapi | ||||
* | dex: copy fetcher and downloader from eth | Sonic | 2018-12-19 | 15 | -0/+7440 |
| | |||||
* | core: add global signature cache and improve concurrency (#42) | Wei-Ning Huang | 2018-12-19 | 6 | -55/+88 |
| | | | | | From the go trace result, the bottleneck hides in the lock of StoreTxCache. To improve this, we update the cache in a batched fassion. | ||||
* | core, dex: Batch process touchSender. Lower priority for tx. (#41) | Jimmy Hu | 2018-12-19 | 2 | -13/+20 |
| | | | | | | | * dex: Add a tx queue in broadcast * Modify queue parameter * Priority select all messages except tx * Batch process TouchSenders | ||||
* | dex: Tx message optimization (#39) | Jimmy Hu | 2018-12-19 | 2 | -7/+42 |
| | | | | | | | | * dex: Add a tx queue in broadcast * Modify queue parameter * Priority select all messages except tx | ||||
* | test: use a fixed nodekey for RPC node (#38) | Wei-Ning Huang | 2018-12-19 | 2 | -1/+2 |
| | |||||
* | vendor: sync to latest core (#37) | Jimmy Hu | 2018-12-19 | 18 | -157/+427 |
| | |||||
* | dex: add BlockDB, which implements consensus core's blockdb.BlockDatabase (#36) | Sonic | 2018-12-19 | 4 | -11/+114 |
| | |||||
* | core: vm: change offset type to int256 | Wei-Ning Huang | 2018-12-19 | 1 | -2/+7 |
| | | | | | Since we use -1 to represent the offset of empty value, we should make the return type int256 instead of uint256. | ||||
* | governance: implement delegate/undelegate function and add tests (#33) | Wei-Ning Huang | 2018-12-19 | 9 | -121/+1162 |
| | | | | | Implement delegate/undelegate function to allow others to delegate it's fund to stake on a node. Also added governance contract tests. | ||||
* | core: blockchain: fix concurrent map read and write (#34) | Wei-Ning Huang | 2018-12-19 | 1 | -4/+7 |
| | |||||
* | core: more fix on light node synchronization (#32) | Wei-Ning Huang | 2018-12-19 | 6 | -76/+58 |
| | | | | | | Fix gas calculation in governance contract. Correctly register round height when processing pending blocks. We should register the mapping when we get the pending block instead of waiting for block confirmation. | ||||
* | core: vm: add minStake to governance contract variable (#31) | Wei-Ning Huang | 2018-12-19 | 6 | -11/+63 |
| | |||||
* | core: fix light node synchronization issue (#30) | Wei-Ning Huang | 2018-12-19 | 6 | -9/+23 |
| | | | | | InsertChain() need to record the correct roundHeight mapping in order to process snapshotRoundHeight() governance method correctly. | ||||
* | core: revert changes to StateProcessor.Process (#29) | Wei-Ning Huang | 2018-12-19 | 2 | -10/+10 |
| | |||||
* | app: remove notify to prevent dead lock with consensus core | BJ4 | 2018-12-19 | 1 | -39/+3 |
| | |||||
* | app: add cache to reuse same tx address which has already recovered (#26) | BJ4 | 2018-12-19 | 4 | -12/+43 |
| | |||||
* | core: refactor validator and fix light node sync (#25) | Wei-Ning Huang | 2018-12-19 | 15 | -208/+193 |
| | | | | | | | Remove custom Dexon validator by adding a new `ValidateWitnessData` method into the validator interface. This allow us to properly detect know blocks. This also allow other gdex "light" client to sync compaction chain. Also, setup a standalone RPC node for handling RPC reqeusts. | ||||
* | dex: remove gasprice package and use eth/gasprice instead | Wei-Ning Huang | 2018-12-19 | 5 | -193/+4 |
| | | | | We did not change anything in eth/gasprice, don't copy it into dex. | ||||
* | core: use storeRoundHeight to avoid type mismatch (#21) | Sonic | 2018-12-19 | 1 | -9/+6 |
| | | | No need to store round 0, it's already pushed in genesis block | ||||
* | dex, core: Fix make fail (#24) | Jimmy Hu | 2018-12-19 | 2 | -2/+2 |
| | |||||
* | core, dex: Optimize sender calculation in block transactions. (#22) | Jimmy Hu | 2018-12-19 | 3 | -0/+40 |
| | | | | | | * Add Transactions.TouchSenders that calculates sender and update cache * Use TouchSenders to fill the caches | ||||
* | cmd: monkey: Add -parallel and -sleep to configure monkey (#20) | Jimmy Hu | 2018-12-19 | 2 | -196/+23 |
| | |||||
* | dexon: Update README (#18) | Jimmy Hu | 2018-12-19 | 1 | -61/+39 |
| | |||||
* | core: validate DKG set with correct nodeset in round-2 (#19) | Wei-Ning Huang | 2018-12-19 | 13 | -85/+101 |
| | | | | | * vendor: sync consensus core * core: validate DKG set with correct nodeset in round-2 | ||||
* | core: vm: Optimize evm (#13) | Jimmy Hu | 2018-12-19 | 5 | -18/+282 |
| | | | | | | | * core: vm: add an EVM benchmark * core: vm: optimize stack allocation and instruction for calculating 2^n * Add DEXONBet bench | ||||
* | core: push height of round 0 in genesis block (#17) | Sonic | 2018-12-19 | 2 | -8/+11 |
| | | | | | | | * core: push height of round 0 in genesis block * vm: fix governance dispatch method name mismatch with abi also rename RoundHeightLoc to roundHeightLoc | ||||
* | Update README.md | Wei-Ning Huang | 2018-12-19 | 1 | -1/+3 |
| | |||||
* | params: Do not use DEXON config for test. (#15) | Jimmy Hu | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | vendor: sync to latest core (#16) | Jimmy Hu | 2018-12-19 | 9 | -89/+131 |
| | |||||
* | dex: return correct pending nonce (#14) | Wei-Ning Huang | 2018-12-19 | 4 | -6/+23 |
| | | | | We need to return the correct pending nonce (include those in the tx pool). Also, StateAndHeaderByNumber is also fixed to use pending block. | ||||
* | test: increase numChains to 6 | Wei-Ning Huang | 2018-12-19 | 2 | -2/+2 |
| | |||||
* | gdex: monkey: Add a gamble monkey (#12) | Jimmy Hu | 2018-12-19 | 2 | -2/+379 |
| | |||||
* | cmd: gdex: Revert #6 (#11) | Jimmy Hu | 2018-12-19 | 2 | -44/+1 |
| | | | | | | | | * Revert "cmd: gdex: SIGUSR1 to dump stack (#6)" This reverts commit 86c985c76272667ad68c604ad09e229453d17859. * Add pprof to test | ||||
* | params: fix genesis block config and use testnet for test (#10) | Wei-Ning Huang | 2018-12-19 | 4 | -17/+22 |
| | |||||
* | core: fix staked calculation in genesis (#8) | Jimmy Hu | 2018-12-19 | 1 | -4/+0 |
| | |||||
* | dex: porting test to enode (#9) | Sonic | 2018-12-19 | 5 | -112/+141 |
| | |||||
* | app: bug fix (#7) | bojie | 2018-12-19 | 1 | -0/+7 |
| | | | | Add notify mutex to prevent missing chain issue while concurrent appending with same slice. | ||||
* | cmd: gdex: SIGUSR1 to dump stack (#6) | Jimmy Hu | 2018-12-19 | 1 | -0/+44 |
| | |||||
* | core: vm: expose governance contract ABI (#5) | Wei-Ning Huang | 2018-12-19 | 1 | -2/+2 |
| | |||||
* | core: blockchain: fix NewBlockChainWithDexonValidator (#4) | Wei-Ning Huang | 2018-12-19 | 1 | -1/+1 |
| | |||||
* | core: genesis: make ToBlock() compatible with legacy ethereum code (#3) | Wei-Ning Huang | 2018-12-19 | 1 | -28/+36 |
| | | | | Make ToBlock() compatible with legacy ethereum code so we can run tests normally. | ||||
* | app: fix core test | BJ4 | 2018-12-19 | 9 | -42/+151 |
| | |||||
* | dex: remove useless code | Sonic | 2018-12-19 | 1 | -115/+0 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2018-12-19 | 6 | -114/+124 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2018-12-19 | 6 | -107/+134 |
| | |||||
* | dex: peer: more fix on ID conversion | Wei-Ning Huang | 2018-12-19 | 1 | -53/+53 |
| | |||||
* | vendor: sync to latest core | Wei-Ning Huang | 2018-12-19 | 7 | -222/+259 |
| | |||||
* | core: vm: governance: add node info | Wei-Ning Huang | 2018-12-19 | 7 | -14/+177 |
| | |||||
* | dex: fix conflict caused by rebase | Wei-Ning Huang | 2018-12-19 | 4 | -59/+79 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2018-12-19 | 2 | -17/+26 |
| | |||||
* | HACK: enable TX handling temporarily | Wei-Ning Huang | 2018-12-19 | 1 | -0/+3 |
| | |||||
* | dex: increase governance tx gas price | Wei-Ning Huang | 2018-12-19 | 1 | -0/+4 |
| | |||||
* | core: validate roundHeight mapping in governance contract | Wei-Ning Huang | 2018-12-19 | 7 | -4/+56 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2018-12-19 | 12 | -62/+164 |
| | |||||
* | core: GenerateChainWithRoundChange for testing | Sonic | 2018-12-19 | 3 | -0/+598 |
| |