Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fixup! core: vm: refactor vm config and contextjm-vm-entry | Jhih-Ming Huang | 2019-05-06 | 2 | -2/+2 |
| | |||||
* | core: vm: refactor vm config and context | Jhih-Ming Huang | 2019-05-06 | 59 | -590/+865 |
| | | | | | | | | | | | | | | | | To support multiple VMs, there must be a shared execution environment for each VM, so this pull request moved some shared component to vm.Context and implemented the vm.ExecPack to hold the list of VM, list of VM configures, context and some shared resources. The adjustment includes: * Move NoRecursion, Depth, ReadOnly, RandCallIndex, IntPool and CallGasTemp to Context. * Adjust VM enumeration from byte to uint8, and the VMList from map to array. * Register VM constructor in each VM package's init function. * Initialize all VM instance in NewExecPack. * Remove EVMImplement, and modify EVM, such that EVM can do the same functions with EVMImplement. | ||||
* | core: vm: sqlvm: runtime: implement opRepeatPK | Jhih-Ming Huang | 2019-05-06 | 4 | -85/+330 |
| | |||||
* | misc: update decimal | yenlin.lai | 2019-05-06 | 2 | -6/+7 |
| | | | | Update dexon-foundation/decimal for new performance tuning commit. | ||||
* | Remove underflow error (#385) | Meng-Ying Yang | 2019-05-06 | 4 | -43/+40 |
| | | | core: vm: sqlvm: remove underflow error | ||||
* | core: vm: sqlvm: change function id from bytes to uint16 | Meng-Ying Yang | 2019-05-06 | 2 | -21/+26 |
| | |||||
* | core: vm: sqlvm: add built-in function RAND() | Meng-Ying Yang | 2019-05-06 | 2 | -0/+91 |
| | |||||
* | core: vm: sqlvm: add built-in function TX_ORIGIN() | Meng-Ying Yang | 2019-05-06 | 2 | -0/+65 |
| | |||||
* | core: vm: sqlvm: add built-in function MSG_DATA() | Meng-Ying Yang | 2019-05-06 | 2 | -0/+61 |
| | |||||
* | core: vm: sqlvm: add built-in function MSG_SENDER() | Meng-Ying Yang | 2019-05-06 | 2 | -0/+66 |
| | |||||
* | core: vm: sqlvm: add built-in function BLOCK_GASLIMIT() | Meng-Ying Yang | 2019-05-06 | 2 | -0/+68 |
| | |||||
* | core: vm: sqlvm: add built-in function BLOCK_COINBASE() | Meng-Ying Yang | 2019-05-06 | 2 | -0/+64 |
| | |||||
* | core: vm: sqlvm: add built-in function BLOCK_TIMESTAMP() and NOW() | Meng-Ying Yang | 2019-05-06 | 2 | -4/+74 |
| | |||||
* | core: vm: sqlvm: add built-in function BLOCK_NUMBER() | Meng-Ying Yang | 2019-05-06 | 2 | -2/+70 |
| | |||||
* | core: vm: sqlvm: add built-in function BLOCK_HASH() | Meng-Ying Yang | 2019-05-06 | 4 | -1/+173 |
| | |||||
* | core: vm: sqlvm: add opFunc | Meng-Ying Yang | 2019-05-06 | 6 | -2/+59 |
| | | | | Add `opFunc` as built-in funtions entry point. | ||||
* | core: vm: sqlvm: add opNeg | Meng-Ying Yang | 2019-05-06 | 5 | -0/+248 |
| | | | | Add `opNeg` supports operand negative. | ||||
* | core: vm: sqlvm: add opConcat | Meng-Ying Yang | 2019-05-06 | 5 | -5/+200 |
| | | | | Add `opConcat` supports dynamic bytes (string) concating. | ||||
* | core: vm: sqlvm: add opRange | Meng-Ying Yang | 2019-05-06 | 5 | -0/+318 |
| | | | | | Add `opRange` which supports row range evaluation, such as `LIMIT` and `OFFSET`. | ||||
* | core: vm: sqlvm: add opCut | Meng-Ying Yang | 2019-05-06 | 5 | -0/+462 |
| | | | | Add `opCut` which supports slice cutting. | ||||
* | core: vm: sqlvm: process string before rendering | Meng-Ying Yang | 2019-05-06 | 3 | -1971/+1375 |
| | | | | | To reduce redundant information in template source data, we pre-process source data and generate target information before rendering. | ||||
* | sqlvm: common: replace table/index name with TableRef/IndexRef | yenlin.lai | 2019-05-06 | 4 | -44/+69 |
| | | | | | Names will be mapped to references after parsing. Use references in hash will have better performance. | ||||
* | sqlvm: common: refine StateDB/Storage | yenlin.lai | 2019-05-06 | 6 | -54/+44 |
| | | | | | | | In the context of vm module, we usually access vm.StateDB interface object instead of state.StateDB directly. Also, state.StateDB is usually passed with pointer and used with pointer receiver. Implement the similar behavior on Storage object. | ||||
* | sqlvm: common: add Reader/Writer for Storage | yenlin.lai | 2019-05-06 | 2 | -0/+176 |
| | | | | | Sometimes we need a stream reader writer for the data on storage. For example, RLP decode the data on storage. Implement a wrapper around it. | ||||
* | sqlvm: common: add some shared methods on Storage struct | yenlin.lai | 2019-05-06 | 4 | -15/+538 |
| | | | | | Add methods for ACL control and index meta loading. These methods will be used outside runtime, so put them on Storage. | ||||
* | core: vm: sqlvm: ast: decimal decode for bool | Jhih-Ming Huang | 2019-05-06 | 2 | -1/+17 |
| | |||||
* | core: sqlvm: common: fix decimal limit values | Meng-Ying Yang | 2019-05-06 | 2 | -5/+11 |
| | | | | | The original limit values are so wrong. We fix the values, rename parameters according to Go's limit values naming rule. | ||||
* | core: vm: sqlvm: ast: copy data before decimal decode | wmin0 | 2019-05-06 | 1 | -0/+2 |
| | | | | | Because decimalDecode modifies input data, we should make a copy first to prevent side effect. | ||||
* | core: vm: sqlvm: schema: column rlp does not contain offset fields | wmin0 | 2019-05-06 | 1 | -2/+2 |
| | |||||
* | core: vm: sqlvm: ast: fix unsigned get type error code | wmin0 | 2019-05-06 | 1 | -1/+1 |
| | |||||
* | core: vm: sqlvm: add jump table | Meng-Ying Yang | 2019-05-06 | 2 | -3/+27 |
| | |||||
* | core: vm: sqlvm: add op testcases with template | Meng-Ying Yang | 2019-05-06 | 6 | -9/+6207 |
| | | | | | | | | We reduce code of funtion call and nested struct initialization by generating testcases with go template system. Run `go run cmd/gen-op-test/main.go` first before testing instructions, and commit generated code for fully testing on CI. | ||||
* | core: vm: sqlvm: opcodes and basic structs | Meng-Ying Yang | 2019-05-06 | 6 | -17/+1570 |
| | | | | | For runtime implementation, we define opcodes and basic structs for runtime usage and concrete implementation. | ||||
* | core: vm: sqlvm: update op code | Jhih-Ming Huang | 2019-05-06 | 1 | -87/+2 |
| | | | | | | * Remove STOREPK. * Split STORE to UPDATE and INSERT. * Remove the examples. | ||||
* | core: vm: sqlvm: runtime: opLoad load fixed bytes and address in bytes | Jhih-Ming Huang | 2019-05-06 | 5 | -23/+15 |
| | | | | | To satisfy the latest spec, the data of type of address and fixed bytes will be stored in bytes instead of decimal value. | ||||
* | vm: sqlvm: refine after updating dexon-foundation/decimal | yenlin.lai | 2019-05-06 | 4 | -19/+7 |
| | | | | | | Refine behaviors: 1. Check decimal.NewFromString by type instead of string compare. 2. Use Rescale in DecimalEncode. | ||||
* | misc: replace shopspring/decimal with our fork | yenlin.lai | 2019-05-06 | 17 | -240/+318 |
| | |||||
* | core: vm: sqlvm: schema: make foreign key constraints a slice | Ting-Wei Lan | 2019-05-06 | 3 | -17/+52 |
| | | | | It is allowed to declare multiple foreign key constraints on a column. | ||||
* | core: vm: sqlvm: add a descriptor field to IdentifierNode | Ting-Wei Lan | 2019-05-06 | 2 | -0/+51 |
| | | | | | It will be used to store the descriptor of the object after the name is resolved. | ||||
* | core: vm: sqlvm: support SQL three-valued logic on AST | Ting-Wei Lan | 2019-05-06 | 5 | -390/+567 |
| | | | | | | We make the zero value invalid by design. Users must be aware of the difference between SQL boolean and Go boolean and initialize it explicitly. | ||||
* | core: vm: sqlvm: ast: rename DataTypeUnknown to DataTypePending | Ting-Wei Lan | 2019-05-06 | 3 | -14/+19 |
| | | | | | | | | SQL uses three-valued logic which includes an unknown state. To prevent the reader of the code from confusing the unknown value with the unknown data type defined here, we rename 'unknown' data type to 'pending' because it is intended to be used by nodes whose type has not been determined. | ||||
* | core: vm: sqlvm: ast: rename TestSize | Ting-Wei Lan | 2019-05-06 | 1 | -1/+1 |
| | | | | | It is the last test function which doesn't mention what kind of data it operates on. | ||||
* | core: vm: sqlvm: ast: don't calculate min and max values on demand | Ting-Wei Lan | 2019-05-06 | 3 | -57/+76 |
| | | | | | | It is unsafe to write a map concurrently. Even if it is unlikely for us to call it from multiple threads, it is better to avoid providing an thread-unsafe API when it is possible. | ||||
* | core: vm: sqlvm: ast: make DataTypeDecode a method of DataType | Ting-Wei Lan | 2019-05-06 | 3 | -30/+19 |
| | | | | | | | | Since we have dropped DataTypeEncode in favor of GetType method of TypeNode, rename DataTypeDecode to GetNode and make it a method. Drop unnecessary zero checks because we don't care minor bytes when there is only one type belong to a category. | ||||
* | core: vm: sqlvm: ast: rename tests for DataType encoding or decoding | Ting-Wei Lan | 2019-05-06 | 1 | -31/+31 |
| | | | | | | Since we have both DataType and Decimal functions in this file, we should avoid using generic names such as TestEncode and TestDecode without mentioning what types are going to be tested. | ||||
* | core: vm: sqlvm: ast: return error messages from GetType | Ting-Wei Lan | 2019-05-06 | 4 | -45/+85 |
| | | | | | | | | To allow callers to provide precise error messages, return an error message in addition to an error code from GetType of TypeNode. Drop DataTypeEncode because it is never used by any code and it has become a simple wrapper of GetType. | ||||
* | core: vm: sqlvm: schema: move methods of DataTypeMajor | Ting-Wei Lan | 2019-05-06 | 1 | -10/+10 |
| | | | | We will add more methods to DataType. | ||||
* | core: vm: sqlvm: schema: move Rest to the bottom | Ting-Wei Lan | 2019-05-06 | 1 | -1/+3 |
| | | | | It is a special field which should not be accessed by any other files. | ||||
* | core: vm: sqlvm: schema: unsigned integers can never be negative | Ting-Wei Lan | 2019-05-06 | 1 | -2/+2 |
| | |||||
* | core: vm: sqlvm: use common.HashLength instead of 32 | Ting-Wei Lan | 2019-05-06 | 3 | -9/+10 |
| | | | | Keep them consisitent with ast/types.go. | ||||
* | core: vm: remain first byte, if it is not VM enum. | Jhih-Ming Huang | 2019-05-06 | 1 | -3/+1 |
| | | | | | * If first byte is not VM enum, we should reserve it as checking VM type. * Remove debug print. | ||||
* | core: vm: sqlvm: ast: implement decimal to uint64 | Jhih-Ming Huang | 2019-05-06 | 4 | -26/+82 |
| | | | | | deciaml.IntPart() returns int64, so we have to implement a function to convert deciaml to uint64 for reading primary id from Raw. | ||||
* | core: vm: sqlvm: runtime: implement opLoad | Jhih-Ming Huang | 2019-05-06 | 2 | -8/+510 |
| | |||||
* | core: vm: sqlvm: common: storage: implement storage util functions | Jhih-Ming Huang | 2019-05-06 | 3 | -1/+201 |
| | | | | | Implement some storage utility functions, including shift slot, get dynamic byte and get primary key hash. | ||||
* | core: vm: sqlvm: schema: implment get column field type and set offset | Jhih-Ming Huang | 2019-05-06 | 2 | -2/+243 |
| | | | | | Since we have to packing our data in slot, it needs to calculate each column field's slot and byte offset. | ||||
* | core: vm: sqlvm: runtime: add loadRegister func | Jhih-Ming Huang | 2019-05-06 | 2 | -1/+10 |
| | | | | Implement load register to input operands, before each op. | ||||
* | core: vm: sqlvm: ast: add size func and move error code to errors.go | Jhih-Ming Huang | 2019-05-06 | 3 | -19/+69 |
| | | | | Move error code to errors.go, and implement Size method for column field. | ||||
* | core: vm: sqlvm: types: fix encode bug when exponent is negative (#270) | yenlinlai | 2019-05-06 | 2 | -4/+10 |
| | | | | | It is possible that the number to encode is produced by arithmetic operations and has negative exponent even when it is an integer. Properly handle this case and modify test cases to check it. | ||||
* | core: vm: sqlvm: schema: add structs to identify an object in a schema | Ting-Wei Lan | 2019-05-06 | 1 | -0/+26 |
| | | | | | These structs will be used in identifier nodes to store references to objects defined in the schema or the command itself. | ||||
* | core: vm: sqlvm: schema: mark if an index are referenced by foreign keys | Ting-Wei Lan | 2019-05-06 | 1 | -0/+36 |
| | | | | | | | In order to check foreign keys efficiently during deletion, an index should be marked when it is referenced by foreign keys. Since we now have flags which cannot be declared directly from the source code, two helper functions are added to distinguish between two groups of flags. | ||||
* | core: vm: sqlvm: schema: reorder fields and enums | Ting-Wei Lan | 2019-05-06 | 1 | -6/+19 |
| | | | | | Reorder fields and enums according to the grammar file to make it easier to check whether all features supported by the grammar are implemented. | ||||
* | core: vm: sqlvm: schema: drop pointers from slices | Ting-Wei Lan | 2019-05-06 | 2 | -9/+9 |
| | | | | | | | The number of tables, columns, indices are all limited to 256, so we don't have to do much memory copying during appending. Drop pointers from slices to save memory for storing pointers and possibly improve locality. | ||||
* | core: vm: sqlvm: parser: check if a number literal is an integer | Ting-Wei Lan | 2019-05-06 | 2 | -976/+1045 |
| | | | | | | ORDER BY and GROUP BY options have to decide whether an expression is a reference to the column specified in SELECT command by checking whether it consists of only one integer literal. | ||||
* | core: vm: sqlvm: make a common interface for statements | Ting-Wei Lan | 2019-05-06 | 5 | -1622/+2281 |
| | | | | | | | So Parse now returns a []ast.StmtNode instead of a generic []ast.Node, which should be clearer on what the return value looks like. This also adds a field recording the verb use to identify the statement in order to provide better error messages. | ||||
* | core: vm: sqlvm: errors: remove token field | Ting-Wei Lan | 2019-05-06 | 5 | -474/+440 |
| | | | | | | | | Now both position and length are both recorded in the error struct, recording the token in the error struct no longer provides any benefit. It is easy to find the token when position and length are known, but requiring all error locations to fill the field is complicated because they have to access the source code to find the token. | ||||
* | core: vm: fix typo | Ting-Wei Lan | 2019-05-06 | 1 | -1/+1 |
| | |||||
* | remove dexon/crypto/sha3 pkg. | Jhih-Ming Huang | 2019-05-06 | 6 | -11/+12 |
| | |||||
* | core: vm: sqlvm: add shared variables (#228) | Meng-Ying Yang | 2019-05-06 | 3 | -11/+19 |
| | |||||
* | core: vm: sqlvm: add ESCAPE grammar | wmin0 | 2019-05-06 | 4 | -653/+768 |
| | | | | | Provide ESCAPE grammar for specifying escape character in like pattern matching. | ||||
* | core: vm: sqlvm: errors: add length field | Ting-Wei Lan | 2019-05-06 | 5 | -442/+484 |
| | | | | | When an error corresponds to a source code token, it should be able to report the length of the token in addition to the position. | ||||
* | core: vm: sqlvm: limit the depth of AST to 1024 | Ting-Wei Lan | 2019-05-06 | 3 | -7/+50 |
| | | | | | Since we traverse an AST by calling functions recursively, we have to protect the parser by limiting the depth of an AST. | ||||
* | core: vm: sqlvm: parser: move generated code to internal package | Ting-Wei Lan | 2019-05-06 | 5 | -1565/+1585 |
| | | | | | | | | Code generated by pigeon includes many exported symbols which should not be used by any other code other than the parser itself. To prevent them from being misused, we used to hide them by editing the generated code with sed. This commit removes the unreliable sed trick by putting generated code to internal package. | ||||
* | core: vm: sqlvm: ast: use non-empty interfaces in DataType{En,De}code | Ting-Wei Lan | 2019-05-06 | 2 | -80/+34 |
| | | | | | | | In addition to changes required to move DataTypeEncode and DataTypeDecode to use TypeNode interface, this commit also unifies the meaning of 'Size' field in 'FixedBytesTypeNode'. It always counts the length in bytes now. | ||||
* | core: vm: sqlvm: errors: fix typo | Ting-Wei Lan | 2019-05-06 | 1 | -1/+1 |
| | |||||
* | core: vm: sqlvm: parser: don't use @, #, $ in unquoted identifiers | Ting-Wei Lan | 2019-05-06 | 2 | -35/+34 |
| | | | | | | These symbols are allowed in Microsoft SQL or PostgreSQL, but the SQL standard doesn't mention them. It is still possible to use these symbols as identifiers by putting them in double quotes. | ||||
* | core: sqlvm: schema: define type for table/column/index/sequence size | yenlin.lai | 2019-05-06 | 2 | -5/+17 |
| | | | | | The size of table in db and column/index/sequence in a table is bounded by uint8. Define types for better readability. | ||||
* | core: vm: sqlvm: ast: handle error in AST printer | Ting-Wei Lan | 2019-05-06 | 2 | -33/+63 |
| | | | | Catch the error reported by fmt.Fprintf and report it to the caller. | ||||
* | core: vm: sqlvm: fill source code position in AST nodes | Ting-Wei Lan | 2019-05-06 | 7 | -1141/+1510 |
| | | | | | | | | | | | | | | | Now all AST nodes should have position information recorded during parsing. These fields are intended to be used to report errors and make debugging easier. However, precise location of each token is currently unavailable. It can be done in the future if it becomes necessary. To make it easier to traverse an AST, GetChildren is modified to skip nil nodes in the output. This means callers of GetChildren don't have to check for nil in returned slices. AST printer is modified to print the position and the corresponding source code token. A few special handling for interfaces are removed because reflection works better for structs. | ||||
* | core: vm: sqlvm: ast: use pointer receivers | Ting-Wei Lan | 2019-05-06 | 1 | -89/+89 |
| | | | | | | | Since all nodes must be declared as pointers to satisfy the interface, it is no longer meaningful to use value receivers. It should make the code look more consistent and reduce the amount of memory copying during function calls because these structs takes at least 8 bytes. | ||||
* | core: vm: sqlvm: ast: remove pointer indicator in printer output | Ting-Wei Lan | 2019-05-06 | 1 | -5/+4 |
| | | | | | | Since our 'Node' interface includes methods which must be implemented with pointer receivers, all AST nodes are now referenced with pointers and the '*' pointer indicator is no longer useful. | ||||
* | core: vm: sqlvm: check if a number is a valid address | Ting-Wei Lan | 2019-05-06 | 5 | -334/+312 |
| | | | | | | | | | | | | This commit implements isAddress function to allow a number literal to be considered as an address literal. Since Solidity only allows '0x' to be written in lower case, we remove the handling of upper case '0X' to keep the behavior in sync with Solidity. In addition to isAddress implementation, this commit also removes 'String' methods from AST nodes to prevent them from implementing the builtin 'Stringer' interface. Therefore, our AST printer is now able to print struct fields of value nodes instead of only one string. | ||||
* | core: vm: sqlvm: introduce interfaces for AST nodes | Ting-Wei Lan | 2019-05-06 | 9 | -1704/+2956 |
| | | | | | | | | | In order to make our AST easier and safer to use, all declarations with empty interface type are now removed. This changes also makes it possible to traverse the AST without using reflection or understanding what each type means because all AST nodes have at least one common interface. | ||||
* | core: vm: sqlvm: runtime entrypoing error handling | Meng-Ying Yang | 2019-05-06 | 3 | -5/+14 |
| | | | | Return error.Error to reveal more information about returned error. | ||||
* | dex: remove file that should not be committed (#204) | Jimmy Hu | 2019-05-06 | 1 | -0/+0 |
| | | | | | | * dex: remove file that should not be committed * add file to .gitignore | ||||
* | Update .travis.yml | Jimmy Hu | 2019-05-06 | 1 | -0/+1 |
| | |||||
* | core: vm: sqlvm: parser: toDecimal handle .0 | wmin0 | 2019-05-06 | 2 | -0/+4 |
| | | | | | To cover the pitfall of decimal.fromString, we need to add leading 0 at '^\.[0-9]+' case. | ||||
* | core: rebase dev and fix lint | Jhih-Ming Huang | 2019-05-06 | 10 | -4416/+27 |
| | |||||
* | core: vm: sqlvm: types support data range | Meng-Ying Yang | 2019-05-06 | 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-05-06 | 2 | -6/+6 |
| | |||||
* | core: vm: sqlvm: revert Tuple structure (#193) | JM | 2019-05-06 | 1 | -4/+5 |
| | |||||
* | core: vm: sqlvm: modify Tuple.Data.Value type | Jhih-Ming Huang | 2019-05-06 | 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-05-06 | 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-05-06 | 4 | -42/+310 |
| | | | | Implement schema struct and handle its rlp serialization. | ||||
* | core: vm: sqlvm: ast: add encoder/decoder for decimal to bytes | wmin0 | 2019-05-06 | 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-05-06 | 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-05-06 | 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-05-06 | 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-05-06 | 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-05-06 | 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-05-06 | 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-05-06 | 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-05-06 | 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-05-06 | 23 | -84/+805 |
| | |||||
* | core: vm: extract stateDB and contract out | jm | 2019-05-06 | 31 | -439/+509 |
| | | | | | 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-05-06 | 98 | -901/+5313 |
| | | | | | For support other vm types, this pr modified the core/vm file structures. | ||||
* | zoo: refacter and save keys (#403) | Jimmy Hu | 2019-05-04 | 6 | -180/+380 |
| | |||||
* | ci: build release/x.x branch (#401) | Jimmy Hu | 2019-04-30 | 1 | -0/+1 |
| | |||||
* | cmd: nodekey: add pk2addr (#400) | Jimmy Hu | 2019-04-30 | 1 | -0/+27 |
| | |||||
* | core: vm: implement transferNodeOwnershipByFoundation (#399)v1.0.1 | Wei-Ning Huang | 2019-04-26 | 3 | -0/+93 |
| | |||||
* | ci: use new cert file to run ci in travis.org (#398) | bojie | 2019-04-26 | 3 | -1/+1 |
| | |||||
* | vendor: sync to latest core (#394)v1.0.0 | Jimmy Hu | 2019-04-25 | 3 | -27/+30 |
| | |||||
* | core, rawdb, dex: improve gov state for syncing (#393) | Sonic | 2019-04-24 | 5 | -3/+108 |
| | | | | * core, rawdb, dex: improve gov state for syncing | ||||
* | vendor: sync to latest core (#392) | Jimmy Hu | 2019-04-24 | 2 | -23/+23 |
| | |||||
* | core: update mainnet genesis alloc | Wei-Ning Huang | 2019-04-23 | 2 | -2/+2 |
| | |||||
* | test: run smoke test on ganache (#388) | Sonic | 2019-04-23 | 3 | -7/+44 |
| | | | | | | | | | | | | * test: run smoke test on ganache * Update build/setup_recovery_env.sh Co-Authored-By: Jsying <sonic@dexon.org> * Update build/setup_recovery_env.sh Co-Authored-By: Jsying <sonic@dexon.org> | ||||
* | core: update mainnet genesis alloc (#389) | Wei-Ning Huang | 2019-04-23 | 2 | -2/+2 |
| | |||||
* | vendor: sync to latest core (#386) | Jimmy Hu | 2019-04-22 | 2 | -22/+23 |
| | |||||
* | core: update mainnet genesis alloc (#384) | Wei-Ning Huang | 2019-04-22 | 2 | -2/+2 |
| | |||||
* | core: vm: add sanity check for updateConfiguration (#383) | Wei-Ning Huang | 2019-04-22 | 1 | -0/+12 |
| | |||||
* | core: optimize verify header (#381) | Jimmy Hu | 2019-04-22 | 1 | -11/+76 |
| | |||||
* | core: only verify the last tsig of header chain (#380) | Jimmy Hu | 2019-04-20 | 1 | -6/+13 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-19 | 4 | -75/+73 |
| | |||||
* | core: vm: fix node offset during transfer (#377) | Wei-Ning Huang | 2019-04-19 | 2 | -13/+9 |
| | |||||
* | dex/downloader: fix find common ancestor (#376) | Sonic | 2019-04-19 | 1 | -2/+2 |
| | |||||
* | core: mainnet genesis allocation (#375) | Wei-Ning Huang | 2019-04-18 | 2 | -2/+2 |
| | |||||
* | crypto: use go-ethereum secp256k1 package to avoid symbol conflict (#374) | Wei-Ning Huang | 2019-04-18 | 100 | -265/+793 |
| | |||||
* | core: vm: add withdrawable (#373) | Jimmy Hu | 2019-04-18 | 3 | -15/+66 |
| | |||||
* | ci: fix wrong bucket name (#371) | bojie | 2019-04-17 | 3 | -6/+6 |
| | |||||
* | core: vm: refine panic flow (#372) | Wei-Ning Huang | 2019-04-17 | 1 | -15/+7 |
| | | | | Move panic call to immediate location of the error to prevent accidententaly panic on other conditions. | ||||
* | params: update mainnet owner address and recovery contract (#370) | Wei-Ning Huang | 2019-04-17 | 1 | -24/+24 |
| | |||||
* | core: update mainnet genesis allocation data and config (#369) | Wei-Ning Huang | 2019-04-16 | 3 | -4/+4 |
| | |||||
* | core: vm: clearDKG in resetDKG (#368) | Jimmy Hu | 2019-04-16 | 1 | -0/+8 |
| | |||||
* | params: update taipei bootnode | Jimmy Hu | 2019-04-16 | 1 | -1/+1 |
| | |||||
* | core: vm: fix emitReported (#367) | Wei-Ning Huang | 2019-04-16 | 1 | -6/+15 |
| | |||||
* | core: vm: prevent setting owner to blackhole (#366) | Jimmy Hu | 2019-04-16 | 2 | -1/+19 |
| | | | | | | * core: vm: prevent setting owner to blackhole * core: vm: same for transferNodeOwner | ||||
* | ci: use prod certification (#365) | bojie | 2019-04-16 | 3 | -6/+6 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-15 | 4 | -51/+84 |
| | |||||
* | dex: add pullblock rate limit (#363) | Jimmy Hu | 2019-04-15 | 1 | -8/+20 |
| | |||||
* | core: implement DKG success (#362) | Jimmy Hu | 2019-04-15 | 19 | -72/+391 |
| | | | | | | | | * vendor: sync to latest core * core: implmenet dkg success * cmd: govtool: add DKGSuccess | ||||
* | build: reduce waittime for recovery test to 300s | Jimmy Hu | 2019-04-14 | 1 | -1/+1 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-13 | 2 | -21/+31 |
| | |||||
* | cmd: add govtool for decoding governance input (#361) | Wei-Ning Huang | 2019-04-13 | 1 | -0/+145 |
| | |||||
* | fixup! build: disable static built by default (#359) | Wei-Ning Huang | 2019-04-13 | 1 | -1/+1 |
| | |||||
* | build: disable static built by default (#359) | Wei-Ning Huang | 2019-04-12 | 5 | -156/+35 |
| | |||||
* | dex: implement bad peer detect and disconnect mechanism (#360) | Wei-Ning Huang | 2019-04-12 | 16 | -129/+279 |
| | |||||
* | dex: update recovery contract ABI (#357) | Wei-Ning Huang | 2019-04-11 | 1 | -54/+0 |
| | |||||
* | vendor: use BLS-12_384 curve and update dependencies (#356) | Wei-Ning Huang | 2019-04-11 | 171 | -1268/+24751 |
| | |||||
* | misc: use master branch for dexon-consensus | Jimmy Hu | 2019-04-11 | 1 | -1/+1 |
| | |||||
* | core: add reset to dkg private key db (#355) | Jimmy Hu | 2019-04-11 | 7 | -78/+92 |
| | | | | | * vendor: sync to latest core * core: dkg private key db | ||||
* | fixup! Change import go github.com/dexon-foundation/dexon | Jhih-Ming Huang | 2019-04-10 | 15 | -62/+64 |
| | |||||
* | consensus: dexcon: set correct tx fee receiver | Wei-Ning Huang | 2019-04-10 | 1 | -1/+1 |
| | |||||
* | core: vm: improve MPK reverse lookup performance | Wei-Ning Huang | 2019-04-10 | 3 | -82/+92 |
| | | | | | By storing array offset in the original DKGMasterPublicKeyProposed map, we can locate MPK by proposer ID easily. | ||||
* | Update README.md (#351) | Wei-Ning Huang | 2019-04-10 | 1 | -8/+6 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-10 | 2 | -41/+63 |
| | |||||
* | dex: remove time alignment when force sync (#349) | Jimmy Hu | 2019-04-09 | 4 | -41/+39 |
| | | | | | | * vendor: sync to latest core * dex: remove time alignment when force sync | ||||
* | dex: reduce agreement result (#348) | Jimmy Hu | 2019-04-09 | 1 | -0/+1 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-09 | 2 | -26/+38 |
| | |||||
* | travis-ci: disable GCP build upload | Wei-Ning Huang | 2019-04-09 | 1 | -21/+21 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-09 | 6 | -33/+58 |
| | |||||
* | travis, appveyor, Dockerfile: upgrade to Go 1.12 | Samuel Marks | 2019-04-09 | 8 | -45/+28 |
| | | | | Include serveral DEXON specific fixes. | ||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-09 | 5 | -28/+43 |
| | |||||
* | dex: remove RandomnessMsg (#342) | Sonic | 2019-04-09 | 1 | -5/+4 |
| | |||||
* | params: update testnet dmoment (#340) | Wei-Ning Huang | 2019-04-09 | 1 | -2/+2 |
| | |||||
* | core: fix genesis timestamp (#338) | Jimmy Hu | 2019-04-09 | 3 | -9/+9 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-09 | 3 | -32/+44 |
| | |||||
* | core: update mainnet and testnet config and genesis alloc (#337) | Wei-Ning Huang | 2019-04-09 | 4 | -22/+26 |
| | |||||
* | cmd: monkey: use suggested gas price | Wei-Ning Huang | 2019-04-09 | 1 | -2/+7 |
| | |||||
* | vendor: sync to latest core | Wei-Ning Huang | 2019-04-09 | 5 | -46/+76 |
| | |||||
* | build: add end to end integration test for recovery mechanism (#336) | Sonic | 2019-04-09 | 4 | -3/+104 |
| | |||||
* | core: vm: cache GPK to prevent DoS (#335) | Wei-Ning Huang | 2019-04-09 | 2 | -17/+34 |
| | | | | Cache GPK so one can not slow the chain down with the ProposeCRS method call. | ||||
* | core: add cache for DKG MPK and complaint (#334) | Wei-Ning Huang | 2019-04-09 | 2 | -36/+90 |
| | | | | | Since deserializing DKG related items are extremely slow (takes about 3 seconds for 100 items), we cache it in the governance interface. | ||||
* | vendor: sync to latest core | Wei-Ning Huang | 2019-04-09 | 4 | -31/+79 |
| | |||||
* | dex: remove node table (#330) | Sonic | 2019-04-09 | 9 | -549/+35 |
| | | | | | | * dex: remove node table Node table is not so useful, go back to rely on kademlia * p2p: fix direct dial still have resolve delay | ||||
* | core: vm: fineFailStopDKG if MPK not registered (#329) | Jimmy Hu | 2019-04-09 | 2 | -12/+29 |
| | | | | | * core: vm: fineFailStopDKG if MPK not registered * prevent on-chain randomness | ||||
* | dex: get synced consensus before sleep (#331) | Jimmy Hu | 2019-04-09 | 1 | -3/+5 |
| | |||||
* | dex: try to reduce the chance to pull non-finalized blocks (#327) | Mission Liao | 2019-04-09 | 5 | -57/+156 |
| | | | | | | | | | | | | | | | | * Send non-finalized blocks to notary set only * Update randomness field for blocks in cache upon receiving agreement result * Filter AgreementResult by its position * Avoid overwriting finalized blocks with non-finalized ones * Add blocks to finalized cache when pulling * Update to finalized cache when we have corresponding element in non-finalized one. | ||||
* | core: vm: fix fineFailStopDKG (#328) | Jimmy Hu | 2019-04-09 | 1 | -1/+1 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-09 | 12 | -212/+267 |
| | |||||
* | p2p, p2p/discover: more aggressive dial strategy for direct dial (#326) | Sonic | 2019-04-09 | 3 | -12/+26 |
| | | | | | * p2p/discover: bump failure counter only if no nodes were provided * p2p: more aggressive dial strategy for direct dial | ||||
* | dexcon: correctly fine DKGSet for not producing blocks (#325) | Wei-Ning Huang | 2019-04-09 | 7 | -68/+80 |
| | |||||
* | core: vm: implement node public key replacement (#324) | Wei-Ning Huang | 2019-04-09 | 3 | -1/+102 |
| | |||||
* | vendor: sync to latest core (#320) | Jimmy Hu | 2019-04-09 | 25 | -393/+275 |
| | | | | | | | | * vendor: sync to latest core * dex, core: fix conflict x | ||||
* | core: vm: clear DKG the right way (#319) | Jimmy Hu | 2019-04-09 | 1 | -1/+1 |
| | |||||
* | core/vm: resetDKG if ttoo less qualified (#318) | Jimmy Hu | 2019-04-09 | 1 | -1/+9 |
| | |||||
* | dex: fix a panic (#317) | Jimmy Hu | 2019-04-09 | 1 | -1/+1 |
| | |||||
* | params: update bootnode (#316) | Wei-Ning Huang | 2019-04-09 | 1 | -3/+5 |
| | |||||
* | Dockerfile: include bootnode in image | Wei-Ning Huang | 2019-04-09 | 1 | -1/+2 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-09 | 5 | -81/+121 |
| | |||||
* | core: fix forget connection in resetDKG (#314) | Jimmy Hu | 2019-04-09 | 2 | -1/+12 |
| | |||||
* | core: vm: make fail stop fine value configurable (#312) | Wei-Ning Huang | 2019-04-09 | 5 | -74/+121 |
| | | | | A node is now quailified only if it has no pending fine and staked >= minstake. | ||||
* | dex: fix initial build connection bug (#311) | Jimmy Hu | 2019-04-09 | 2 | -4/+7 |
| | |||||
* | vendor: sync to latest core | Jimmy Hu | 2019-04-09 | 6 | -34/+62 |
| | |||||
* | dex: rebuild connection if dkg reset, core/vm: fix gov (#308) | Jimmy Hu | 2019-04-09 | 5 | -2/+37 |
| | | | | | * dex: rebuild connection if dkg reset * core: vm: fix governance contract | ||||
* | core: vm: update set size on node info change (#307) | Wei-Ning Huang | 2019-04-09 | 1 | -8/+4 |
| | | | | | | * core: vm: update set size on node info change * fix typo | ||||
* | core: merge notarySet and DKGSet (#265) | Jimmy Hu | 2019-04-09 | 32 | -1033/+1064 |
| | | | | | | | | * vendor: sync to latest core * core: merge notarySet and dkgSet * dex: optimize network traffic for finalized block | ||||
* | backport from v1.8.23 (#304) | Sonic | 2019-04-09 | 13 | -88/+435 |
| | | | | | | | | | | | | | | | | | | * dex: backport f6193ad * dex/downloader: backport accc0fa accc0fab 174083c3 * dex: backport 434dd5b * dex: backport 42a914a 0983d02 * dex: backport 48b70ec 31b3334 and some modification * dex/downloader: backport 5f251a6 * dex/downloader: backport 81c3dc7 * dex, dex/downloader: fix typos | ||||
* | dex: do not propose skip block if not in notary set (#303) | Wei-Ning Huang | 2019-04-09 | 1 | -0/+10 |
| | |||||
* | dex: fix missing trie node when fast syncing (#301) | Sonic | 2019-04-09 | 2 | -2/+4 |
| | | | | | | * dex: don't panic when we don't have gov state peer requested * dex: use correct head block Since we are fast syncing, we probably don't have body, receipt, state | ||||
* | core: fix finalize logic (#302) | Jimmy Hu | 2019-04-09 | 2 | -6/+4 |
| | |||||
* | core: set extended round block reward to zero (#298) | Wei-Ning Huang | 2019-04-09 | 5 | -20/+102 |
| | | | | | To discourage DKG set from prolonging the round indefinitely, we set the block reward of the extended round to 0. The gas fee is send to the DEXON governance owner for safe keeping and later used by the foundation. | ||||
* | vendor: sync to latest core (#300) | Jimmy Hu | 2019-04-09 | 11 | -237/+222 |
| | |||||
* | dex: fix deadlock (#299) | Sonic | 2019-04-09 | 1 | -1/+1 |
| | |||||
* | core: vm: fix DKG reset (#296) | Wei-Ning Huang | 2019-04-09 | 3 | -24/+27 |
| | |||||
* | vendor: sync to latest core (#295) | Wei-Ning Huang | 2019-04-09 | 5 | -118/+175 |
| | |||||
* | Revert "p2p/discover: increase IP address limits (#60)" | Wei-Ning Huang | 2019-04-09 | 1 | -3/+2 |
| | | | | This reverts commit 3ca44e556bd9561b0c6c64c7d3a4f95726c78be8. | ||||
* | dex: skip duplicate vote to reduce gas used (#293) | Wei-Ning Huang | 2019-04-09 | 1 | -27/+45 |
| | |||||
* | dex: fix fast sync in BP mode (#291) | Wei-Ning Huang | 2019-04-09 | 4 | -44/+78 |
| | | | | Start blockproposer only after fast sync is completed (received ChainHead event), so watchcat is not falsely triggered. | ||||
* | dex: reduce msg when broadcast tx (#292) | Sonic | 2019-04-09 | 2 | -19/+51 |
| | | | | | | | | | | Our network topology is different from ethereum, the nodes in notary set will connect each other directly. So there is a waste for flooding tx msgs in notary set. And nodes in notary set are more likely to propose block successfully, it is not useful to broadcast tx msgs to non notary set nodes. This PR will increase some tx confirm latency, but can reduce waste tx msgs a lot. | ||||
* | core/vm: remove round from addDKG functions (#279) | Jimmy Hu | 2019-04-09 | 23 | -365/+1038 |
| | | | | | | | | * vendor: sync to latest core * core/vm: remove addDKG functions * core: fix conflict | ||||
* | core: vm: deny duplicate public key from registering (#289) | Wei-Ning Huang | 2019-04-09 | 2 | -1/+20 |
| | |||||
* | core: vm: pay fine to governance owner and trigger set size recalculation (#288) | Wei-Ning Huang | 2019-04-09 | 1 | -1/+5 |
| | |||||
* | indexer: support fast-sync (#287) | Chung-Yu Liu | 2019-04-09 | 1 | -0/+2 |
| | |||||
* | dex: recieve bp msg when recovery, use atomic to protect the flag (#286) | Sonic | 2019-04-09 | 2 | -17/+19 |
| | |||||
* | dex: ignore acceptableDist when force synchronise (#285) | Sonic | 2019-04-09 | 3 | -5/+23 |
| | |||||
* | consensus: dexcon: disqualify dead node (#280) | Wei-Ning Huang | 2019-04-09 | 11 | -152/+294 |
| | | | | | | | | | | Since a qualified node might fail stopped, we need to remove them from qualified nodes to maintain network integrity. We do this by inspect the previous round to see if there are dead nodes. A dead node is a notary set node that does not propose any block in the previous round. We disqualify them by fining them so their staked value is 1 wei below minStake. This make them unqualified for being notary set in the follow on rounds. | ||||
* | core: check coinbase for empty block (#282) | Jimmy Hu | 2019-04-09 | 1 | -6/+13 |
| | |||||
* | dex: fix start bp node with empty datadir (#278) | Sonic | 2019-04-09 | 2 | -22/+31 |
| | | | also modify some debug log | ||||
* | core: vm: emit event when transfering owner (#277) | Wei-Ning Huang | 2019-04-09 | 3 | -0/+48 |
| | |||||
* | core: fix headerchain coinbase validation | Wei-Ning Huang | 2019-04-09 | 1 | -2/+7 |
| | | | | Coinbase address is the owner address of the node. | ||||
* | dex: add block confirme latency (#275) | Jimmy Hu | 2019-04-09 | 2 | -0/+3 |
| | |||||
* | core: vm: automatically calculate notary set size (#276) | Wei-Ning Huang | 2019-04-09 | 6 | -27/+126 |
| | |||||
* | dex: do not start watchcat when blockchain is empty (#273) | Wei-Ning Huang | 2019-04-09 | 1 | -4/+8 |
| | |||||
* | core: vm: add extra checks to prevent DKG spamming (#272) | Wei-Ning Huang | 2019-04-09 | 6 | -67/+187 |
| | | | | Add two maps to check the uniqueness of DKGMasterPublicKey and DKGComplaints to prevent malicious actors from spamming it. | ||||
* | core: vm: fix naming consistency | Wei-Ning Huang | 2019-04-09 | 2 | -11/+11 |
| | |||||
* | app: validate gas price while preparing block (#274) | bojie | 2019-04-09 | 2 | -34/+126 |
| | | | | Skip tx which is under price and add test case. Use the key which has balance in test case to run test more correctly. | ||||
* | dex: align recovery dMoment when resuming consensus (#271) | Wei-Ning Huang | 2019-04-09 | 1 | -1/+16 |
| | | | | | | In theory BA should tolerant inconsistant start time between every node. Since the vote cache is limited, we can not keep all the votes and pass them around all nodes. To fix this, we align the next recovery dmoment so nodes start at the same time. | ||||
* | cmd: fix default recovery network RPC URL | Wei-Ning Huang | 2019-04-09 | 1 | -4/+5 |
| | |||||
* | p2p, dex: add debug log (#269) | Sonic | 2019-04-09 | 5 | -18/+68 |
| | |||||
* | core: check reset of dkg types when adding (#268) | Jimmy Hu | 2019-04-09 | 8 | -54/+195 |
| | | | | | | * vendor: sync to latest core * core: check dkg reset | ||||
* | dex: properly shutdown protocol stack (#267) | Wei-Ning Huang | 2019-04-09 | 3 | -6/+12 |
| | |||||
* | dex: properly start and stop the block proposer module (#264) | Wei-Ning Huang | 2019-04-09 | 4 | -19/+11 |
| | | | | Stop blockproposer in the Stop() method of node service so the process doens't hang. | ||||
* | core: vm: reorder minGasPriceLoc | Wei-Ning Huang | 2019-04-09 | 2 | -5/+5 |
| | |||||
* | core: fill in genesis timstamp and remove dMoment from protocol handshake (#263) | Wei-Ning Huang | 2019-04-09 | 10 | -35/+33 |
| | | | | | | Fill in dmoment as genesis block timestamp. This allow us to remove dMoment check from protocol handshake since genesis block hash itself will protect us against different dMoment. | ||||
* | dex: implement recovery mechanism (#258) | Wei-Ning Huang | 2019-04-09 | 32 | -435/+2435 |
| | | | | | | | | | * dex: implement recovery mechanism The DEXON recovery protocol allows us to use the Ethereum blockchain as a fallback consensus chain to coordinate recovery. * fix | ||||
* | app: remove log handler in test (#261) | bojie | 2019-04-09 | 1 | -3/+0 |
| | |||||
* | dex: add meter for agreement result (#260) | Wei-Ning Huang | 2019-04-09 | 1 | -12/+14 |
| | |||||
* | dex: rename lattice to core | Wei-Ning Huang | 2019-04-09 | 7 | -43/+43 |
| | |||||
* | app: set delivered height correctly (#259) | bojie | 2019-04-09 | 1 | -0/+1 |
| | |||||
* | core: vm: group min gas price with related state variables (#257) | Wei-Ning Huang | 2019-04-09 | 4 | -24/+24 |
| | |||||
* | dex: priority for ba vote (#256) | Jimmy Hu | 2019-04-09 | 1 | -0/+17 |
| | | | | | | | | * dex: priority select on vote * More aggressive priority for vote * collect all queuedVotes | ||||
* | core: vm: implement transfer node ownership (#255) | Wei-Ning Huang | 2019-04-09 | 4 | -10/+85 |
| | |||||
* | p2p: report peer counts to datadog (#254) | Cliff Lin | 2019-04-09 | 2 | -0/+4 |
| | |||||
* | core: vm: create new oracle contract instance in each call (#251) | Wei-Ning Huang | 2019-04-09 | 3 | -6/+16 |
| | | | | | Since the VM might be called from different source (downloader, RPC, etc.). We need to make the call state separate. Modify the calling sequence so a new oracle contract instance is used on each run. | ||||
* | vendor: sync to latest core (#253) | Jimmy Hu | 2019-04-09 | 16 | -138/+742 |
| | |||||
* | core/vm: use core util to get threshold of tsig (#250) | Jimmy Hu | 2019-04-09 | 1 | -3/+4 |
| | |||||
* | params: update testnet config to 40 nodes | Jimmy Hu | 2019-04-09 | 2 | -8/+8 |
| | |||||
* | vendor: sync to latest core and fix conflict | Jimmy Hu | 2019-04-09 | 11 | -211/+276 |
| | |||||
* | params: update taipei bootnode IP | Wei-Ning Huang | 2019-04-09 | 1 | -1/+1 |
| | |||||
* | p2p/discover: fix peer discovery (#248) | Wei-Ning Huang | 2019-04-09 | 1 | -0/+2 |
| | | | | | | | | | | The refactor in 4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74 introduced livness checks for nodes. However, the change in 86ec742f975d825f42dd69ebf17b0adaa66542c0 did not properly set the initial liveness check value for verified node. For verified node we should set livenessCheck to 1 initially. Without this change, the node entry will not be properly send to other nodes and the network would be broken. | ||||
* | core: touch verifierCache at 90% of round (#247) | Jimmy Hu | 2019-04-09 | 1 | -2/+35 |
| |