aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/oracle_contracts.go
Commit message (Collapse)AuthorAgeFilesLines
* core: vm: implement transferNodeOwnershipByFoundation (#399)Wei-Ning Huang2019-04-261-0/+41
|
* core: vm: add sanity check for updateConfiguration (#383)Wei-Ning Huang2019-04-221-0/+12
|
* core: vm: fix node offset during transfer (#377)Wei-Ning Huang2019-04-191-2/+2
|
* core: vm: add withdrawable (#373)Jimmy Hu2019-04-181-15/+33
|
* core: vm: refine panic flow (#372)Wei-Ning Huang2019-04-171-15/+7
| | | | Move panic call to immediate location of the error to prevent accidententaly panic on other conditions.
* core: vm: clearDKG in resetDKG (#368)Jimmy Hu2019-04-161-0/+8
|
* core: vm: fix emitReported (#367)Wei-Ning Huang2019-04-161-6/+15
|
* core: vm: prevent setting owner to blackhole (#366)Jimmy Hu2019-04-161-0/+6
| | | | | | * core: vm: prevent setting owner to blackhole * core: vm: same for transferNodeOwner
* core: implement DKG success (#362)Jimmy Hu2019-04-151-31/+144
| | | | | | | | * vendor: sync to latest core * core: implmenet dkg success * cmd: govtool: add DKGSuccess
* core: vm: improve MPK reverse lookup performanceWei-Ning Huang2019-04-101-61/+69
| | | | | By storing array offset in the original DKGMasterPublicKeyProposed map, we can locate MPK by proposer ID easily.
* core: vm: cache GPK to prevent DoS (#335)Wei-Ning Huang2019-04-091-1/+18
| | | | 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 Huang2019-04-091-20/+21
| | | | | Since deserializing DKG related items are extremely slow (takes about 3 seconds for 100 items), we cache it in the governance interface.
* core: vm: fineFailStopDKG if MPK not registered (#329)Jimmy Hu2019-04-091-12/+28
| | | | | * core: vm: fineFailStopDKG if MPK not registered * prevent on-chain randomness
* core: vm: fix fineFailStopDKG (#328)Jimmy Hu2019-04-091-1/+1
|
* core: vm: implement node public key replacement (#324)Wei-Ning Huang2019-04-091-0/+41
|
* core: vm: clear DKG the right way (#319)Jimmy Hu2019-04-091-1/+1
|
* core/vm: resetDKG if ttoo less qualified (#318)Jimmy Hu2019-04-091-1/+9
|
* core: vm: make fail stop fine value configurable (#312)Wei-Ning Huang2019-04-091-38/+78
| | | | A node is now quailified only if it has no pending fine and staked >= minstake.
* dex: rebuild connection if dkg reset, core/vm: fix gov (#308)Jimmy Hu2019-04-091-0/+12
| | | | | * dex: rebuild connection if dkg reset * core: vm: fix governance contract
* core: vm: update set size on node info change (#307)Wei-Ning Huang2019-04-091-8/+4
| | | | | | * core: vm: update set size on node info change * fix typo
* core: merge notarySet and DKGSet (#265)Jimmy Hu2019-04-091-50/+19
| | | | | | | | * vendor: sync to latest core * core: merge notarySet and dkgSet * dex: optimize network traffic for finalized block
* core: vm: fix DKG reset (#296)Wei-Ning Huang2019-04-091-20/+25
|
* core/vm: remove round from addDKG functions (#279)Jimmy Hu2019-04-091-57/+45
| | | | | | | | * vendor: sync to latest core * core/vm: remove addDKG functions * core: fix conflict
* core: vm: deny duplicate public key from registering (#289)Wei-Ning Huang2019-04-091-1/+13
|
* core: vm: pay fine to governance owner and trigger set size recalculation (#288)Wei-Ning Huang2019-04-091-1/+5
|
* consensus: dexcon: disqualify dead node (#280)Wei-Ning Huang2019-04-091-1/+48
| | | | | | | | | | 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: vm: emit event when transfering owner (#277)Wei-Ning Huang2019-04-091-0/+17
|
* core: vm: automatically calculate notary set size (#276)Wei-Ning Huang2019-04-091-4/+61
|
* core: vm: add extra checks to prevent DKG spamming (#272)Wei-Ning Huang2019-04-091-56/+120
| | | | Add two maps to check the uniqueness of DKGMasterPublicKey and DKGComplaints to prevent malicious actors from spamming it.
* core: vm: fix naming consistencyWei-Ning Huang2019-04-091-9/+9
|
* core: check reset of dkg types when adding (#268)Jimmy Hu2019-04-091-0/+16
| | | | | | * vendor: sync to latest core * core: check dkg reset
* core: vm: reorder minGasPriceLocWei-Ning Huang2019-04-091-1/+1
|
* dex: implement recovery mechanism (#258)Wei-Ning Huang2019-04-091-4/+4
| | | | | | | | | * dex: implement recovery mechanism The DEXON recovery protocol allows us to use the Ethereum blockchain as a fallback consensus chain to coordinate recovery. * fix
* core: vm: group min gas price with related state variables (#257)Wei-Ning Huang2019-04-091-10/+10
|
* core: vm: implement transfer node ownership (#255)Wei-Ning Huang2019-04-091-8/+35
|
* core/vm: use core util to get threshold of tsig (#250)Jimmy Hu2019-04-091-3/+4
|
* vendor: sync to latest core and fix conflictJimmy Hu2019-04-091-2/+2
|
* core: vm: remove delegation mechanism (#245)Wei-Ning Huang2019-04-091-415/+158
| | | | | | | | | | | | | The current delegation mechanism are prone to unstaking attack. i.e. a malicious attacker could unstake a small amount from a lot of node it staked before and make them unqualified, which leads to potential failure of the network. Since DEXON does not use consensus like DPoS, node is required to have at least MinStake in order to become a node. Voting mechanism is not required in our system since qualified node does not depends on the number of votes. Instead of managing the delegation mechanism in governance contract, we should let the owner manage the delegation and reward distribution mechanism on their own.
* core: vm: expose CRSRound and DKGRound and fix consistency (#236)Wei-Ning Huang2019-04-091-40/+51
|
* core: fix dkgJimmy Hu2019-04-091-12/+47
|
* dex: fill in correct coinbase address (#223)Wei-Ning Huang2019-04-091-0/+9
| | | Also remove app_test.go because of the refactor bojie@ is working on.
* core: vm: validate addDKGMasterPublicKey caller properly (#220)Wei-Ning Huang2019-04-091-37/+36
| | | | | | There are two keys in the system: one is the owner's key which is used for stake / unstake. The other is the node key which is used for DKG related operations. We need to allow them to be different so fund renmains safe even if the the node key is lost.
* core: vm: flatten governanceWei-Ning Huang2019-04-091-305/+298
|
* core: sync to latest core (#214)Jimmy Hu2019-04-091-0/+10
| | | | | * vendor: sync to latest core * fix for single chain
* core: Fixed gas price (#205)Jimmy Hu2019-04-091-0/+16
| | | | | | | | | | * core/vm: update abi * core/vm: add MinGasPrice to gov * params: Add MinGasPrice to Config * dex: SuggestPrice from Governance * test: add minGasPrice to genesis.json * core: check underpriced tx * dex: verify with gas price
* core: Remove K, Phi and NumChains from Governance (#198)Jimmy Hu2019-04-091-59/+11
| | | | | | * change default sync_core.sh * vendor: sync to latest core * core: Remove K, Phi and NumChain
* core/vm: fix getConfigState (#203)Jimmy Hu2019-04-091-4/+3
|
* vm: reset DKG (#190)Jimmy Hu2019-04-091-48/+294
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* core/vm: modify Withdrawn event and add NodeRemoved event (#179)Jimmy Hu2019-04-091-4/+14
| | | | | | * core/vm: add delegatorAddr to withdrawn event * core/vm: update gov abi * core/vm: add NodeRemoved event
* core: vm: refactor governance and add node info oracle (#174)Wei-Ning Huang2019-04-091-0/+2316