aboutsummaryrefslogtreecommitdiffstats
path: root/core/interfaces.go
Commit message (Collapse)AuthorAgeFilesLines
* core: Pull block (#263)Jimmy Hu2018-10-261-0/+3
|
* core: Move dkg in types to types/dkg. (#253)Jimmy Hu2018-10-251-8/+9
|
* core: Change interface of Application.VerifyBlock (#246)Jimmy Hu2018-10-231-1/+1
| | | | * Change interface of Application.VerifyBlock
* core: add round parameter to ProposeCRS method (#244)Wei-Ning Huang2018-10-231-1/+1
| | | | | | | | Since all DKG set members may ProposeCRS, but only one will get through, we need to be able to tell which round the CRS is intended for in order to skip CRS submission of the same round. Also this commit add check to make sure we have enough master public key when initializing DKGGroupPublicKey.
* core: total-ordering: change early flag to mode (#227)Haoping Ku2018-10-191-1/+1
| | | * core: total-ordering: change early flag to mode
* core: modify interface (#194)Mission Liao2018-10-121-2/+6
| | | | * Add a new method to notify full node about round cutting. * Modify interface to return error when preparing block
* core: change interface (#193)Mission Liao2018-10-111-2/+2
| | | | | | | * Extract types.FinalizationResult * Change interface: - Application.BlockConfirmed returns whole block. - Application.BlockDelivered returns partial result.
* core: Move BlockConfirmed to Application interface (#192)Mission Liao2018-10-111-3/+3
| | | | | | | | When a block is confirmed, all its txs are permitted to be executed. Therefore, exporting this method provides more and earlier information about txs to be executed, and helps application layer to process txs more efficiently.
* core: Add round to DKG methods in gov. Change network interface name (#185)Jimmy Hu2018-10-091-5/+5
|
* core: Add DKG final message. (#181)Jimmy Hu2018-10-091-0/+6
|
* core: update config variable name grammar and remove configuration (#184)Wei-Ning Huang2018-10-081-2/+2
|
* core: Remove round from gov.ProposeCRS (#183)Jimmy Hu2018-10-081-1/+1
|
* core: General tsig (#177)Jimmy Hu2018-10-051-0/+6
|
* core: Check Witness height. Add ConsensusTime and ConsensusHeight to block. ↵Jimmy Hu2018-10-041-2/+5
| | | | (#170)
* core: replace reliable-broadcast with shard (#159)Mission Liao2018-10-021-7/+7
|
* core: remove ProposeThresholdSignature/GetThresholdSignature (#158)Wei-Ning Huang2018-10-021-7/+1
| | | Also rename the argument name of ProposeCRS.
* core: run DKG and CRS at background. (#155)Jimmy Hu2018-10-021-1/+1
|
* core: update data model to reflect new model (#157)Wei-Ning Huang2018-10-011-14/+4
| | | | | | Update data model: 1) Remove witness ack. 2) Add round to block. 3) Update governance interface.
* core: use notarySet for BA module. (#153)Jimmy Hu2018-10-011-0/+3
|
* core: hide types.NodeID from full node. (#147)Mission Liao2018-09-281-2/+2
| | | | | | | | | * Refine core.Governance interface - Remove types.NodeID from interface declaration. - All parameter should be round based. * Add core.NodeSetCache * Agreement accepts map of nodeID directly. * test.Transport.Peers method return public keys.
* core: update governance interface and config (#145)Wei-Ning Huang2018-09-271-6/+10
| | | | | | 1) Remove RoundHeight from config. 2) NotarySet is not from governance contract, we get Node set intead. Notary set is caculated from the NodeSet using CRS. 3) CRS is not in the governance interface.
* core: move crypto to core/crypto (#140)Mission Liao2018-09-261-33/+3
| | | | | | | | | - Move key-holder to authenticator Make core.keyHolder public as core.Authenticator, it is not required to make this part an interface. - Make private when there is no need to go public. - Fix data race
* core: run TSIG for first configuration block at startup (#135)Jimmy Hu2018-09-261-0/+11
|
* core: update governance interface to consider genesis state (#136)Wei-Ning Huang2018-09-251-3/+10
|
* Fix naming of methods (#134)Mission Liao2018-09-251-8/+8
| | | | | | - BlockDeliver -> BlockDelivered - TotalOrderingDeliver -> TotalOrderingDelivered - WitnessAckDeliver -> WitnessAckDelivered - VerifyPayload -> VerifyPayloads
* core: add debug (#133)Mission Liao2018-09-251-11/+15
| | | | | | | | | | | | | | | | | | | | | * Split interface * Rename nonblocking-application to nonblocking Parts needs nonblocking gets more. * Implement core.nonBlocking based on interface split * Fix: the witness parent hash could be parent on compaction chain. * Rename Application.DeliverBlock to BlockDeliver To sync with naming of other methods. * Change methods' fingerprint - BlockConfirmed provides block hash only. - BlockDeliver provde a whole block.
* core: add key holder (#130)Mission Liao2018-09-251-0/+26
| | | | | The purpose to add this module is to export the functionality to sign/verify data without exporting private key directly.
* core: run first DKG at startup. (#129)Jimmy Hu2018-09-231-0/+3
|
* core: refactor witness data processing flow (#124)Wei-Ning Huang2018-09-201-0/+4
| | | | | | | | | | | Since witness data need to include data from application after it processed a block (e.g. stateRoot). We should make the process of witness data asynchronous. An interface `BlockProcessedChan()` is added to the application interface to return a channel for notifying the consensus core when a block is processed. The notification object includes a byte slice (witenss data) which will be include in the final witness data object.
* Rename validator* to node* (#120)Mission Liao2018-09-201-3/+3
|
* core: rename Notary (Acks) to Witness (#118)Wei-Ning Huang2018-09-191-4/+4
|
* core: refine governance interface to reduce Get* methods (#114)Wei-Ning Huang2018-09-181-23/+5
| | | | | Since we have a bunch of static configurations in the governance contract, instead of using a Get* method for each of them, we instead implement a GetConfiguration() method to return a structure of the configurations.
* core: remove ticker parameter from NewConsensusMission Liao2018-09-181-3/+11
| | | | | | | | | - remove BlockProposingInterval, it's replaced by lambda. - remove ticker parameter of NewConsensus, ticker would be derived from governance. - leave a backdoor to hook the construction of ticker. - move 'Lambda' config from to consensus.
* core: move blockdb into core package and minor change on governance ↵Wei-Ning Huang2018-09-171-2/+5
| | | | | | | interface (#110) Since third party apps will possibly implement their only blockdb class, it make sense for the interface to be in core. Also add GetNumShards into the governance interface.
* core: DKG interface (#108)Jimmy Hu2018-09-171-0/+15
|
* core: fix VerifyPayload argument (#103)Wei-Ning Huang2018-09-131-1/+1
| | | | Since we are using a byte slice for storing payload. VerifyPayload() should also accepts a byte slice.
* core: types: use []byte for block Payload type (#101)Wei-Ning Huang2018-09-121-1/+1
| | | | | Change payload type to []byte instead of [][]byte to make it more generic. The user of the consensus core should marshal the payload into a byte slice by themselves.
* Add GetChainNumber to Goverance (#92)Jimmy Hu2018-09-031-0/+3
|
* core: minor change to governance interface (#90)Wei-Ning Huang2018-09-031-0/+28
|
* core: Add a new structure `Position` and move `ShardID`, `ChainID` and ↵Jimmy Hu2018-09-031-1/+1
| | | | `Height` from `Block` (#89)
* Add methods to Application interface. (#86)Jimmy Hu2018-08-311-0/+6
|
* core: Add PreparePayloads to Application and Remove blockConverter ↵Jimmy Hu2018-08-301-0/+58
interface. (#84)