Skip to content
Go C JavaScript C++ Assembly Python Other
Branch: master
Clone or download
aneequesafdar Tendermint (#185)
* Tendermint package with proper steps names (#90)

* initial tendermint commit

* rename to commit

* Prepare to Prevote

* Commit -> Precommit

* FinalCommited -> Commit

* remane Istanbul valiables

* fmt

* go generate for config

* fixes after code review

* istambul extra to pos extra

* Fix typo and rename istanbul.go (#92)

* change istanbul variable to tendermint

* fix typo StatePrecommiteDone -> StatePrecommitDone

* change istanbul references to pos

* run CI for tendermint branch (#94)

* changed UpdateValidators() to SetPoSExtraData() (#96)

* changed UpdateValidators() to SetPoSExtraData()

* change name from SetPoSExtraData to SetPoSValidatorExtraData

* Linters (#100)

* linters

* run linters before tests

* sudo

* build liner to build folder

* fix typo

* enable all linters and fix errors

* update logs message

* restore backend tests

* get last commit (#103)

* increase golangci deadline (#107)

* add docker local_test_network (#105)

* Respect config values from genesis (#98)

* debug config changes

* respect genesis config params

* fix istanbul config defaults

* check config before set defaults

* revert helloworld changes

* even more deadline for the CI

* Incorrect name of golangci config (#111)

* rename golangci config

* goimports

* golint

* add linters settings

* gofmt

* unconvert

* disable gocritic

* gofmt

* unparam

* misspell

* typecheck

* govet

* disable maligned

* use local prefix for goimports

* desable goimports in prefer of IDE

* Test proposer selection algorithms (#115)

* getseed and sticky selector tests

* 100 coverage for sticky selection

* 100 coverage round robin selection

* fix linters

* format makefile

* Test coverage badge (#123)

* count test coverage

* add coveralls

* fix

* fix

* fix

* [WIP] Tdm implementation (#116)

* WIP: started startnewRound for tdm

* WIP: initial startNewRound implementation

* WIP: added timeouts and placeholder

* WIP: added comment to update TypeMuxs' to event.Feed

* WIP: delete some roundchange stuff (not all) and unused filed

* WIP: refactored timeouts

* WIP: removing test files to ease compilation and reduce bloat errors

* WIP: removing roundchange.go

Roundchange messages and set are not used in tendermint

* WIP: move errors.go into core.go

* WIP: move backlog.go into core.go

* WIP: move commit.go into core.go

* WIP: move events.go into core.go

* WIP: move handler.go into core.go

* WIP: move propose.go into core.go

* WIP: move prevote.go and request.go into core.go

* WIP: rename current to currentRoundState, state to step and startNewRound to startRound

* WIP: rename sequence to height

* WIP: removed pendingRequest from roundState

* WIP: golang-ci

* WIP: remove ProposalBlock and Request structs in favour of types.Block and rename relevant events

* WIP: remove View from Proposal and Sequence and add ValidRound to Proposal

* WIP: remove View

* WIP: remove View test file

* WIP: handle first case for receiving a proposal

* WIP: add errDifferentRoundMessage (incomplete)

* WIP: removed lockedHash from roundState

* WIP: renamed Subject to Vote and Digest to ProposedBlockHash

* WIP: updated message set to manage prevotes and precommits

* WIP: implemented proposal and its timeout function

* WIP: changed message set to ensure proposal blockhash and prevotes block hash are same

* WIP: initial implementation of Prevote and its handlers

* WIP: initial implementation of Precommit and its handlers

* WIP: updated timers (incomplete)

* WIP: implemented moving to highest round when > f messages received

* WIP: revert and refactor files

* WIP: updated name and return type of LastProposal()

* WIP: Revert Precommit to Commit and fix name collision

* WIP: refactor and changed how timeouts are handled

* WIP: refactor currentHeightRoundsStates

* WIP: refactor proposal

* WIP: refactor prevote

* WIP: refactor precommit and prevote

* WIP: govet

* WIP: refactor and removed done todos

* WIP: fix nil error

* WIP: deleting test files to make the checks pass

* [WIP] Fixes for the tendermint implementation (#124)

* remove infinite loop

* fix event logs

* log proposer block

* debug

* fix empty unmined block (#125)

* WIP: fix seg fault

* WIP: validRound value is correctly encoded and decoded

* WIP: initialise mutex and remove blocking code for messages

* additional info for prevote

* additional info for precommit

* log tendermint messages

* refactor handlePrecommit

* refactor handlePrevote

* fix AddNilVote

* switch off linter by the time we finish debug

* remove lint-deps

* split CI into stages

* log handling of timeout messages

* WIP: linting and refactor NewUnminedBlockEvent

* WIP: refactor log messages

* WIP: Refactor timeout log messages

* WIP: refactor log message and fix precommit logic

* WIP: fix totalVotes size

* unify logs

* Update log message in accordance to the rest of the log messages

* revert .yravis.yml

* Reliable broadcast (#135)

* resend broadcast messages

* logging

* logging

* add try number into logging

* timeout logging

* timeout logging

* linters

* use empty struct in prefer of bools

* remove duplicated code

* refactor trySend

* log not connected peers

* refactor trySend

* fix linter warnings

* close resend channel properly

* Tendermint debug (#134)

* WIP: changed the order of if statements to start timeouts last

* WIP: fix c.currentRoundState Height and Round access

* WIP: Delete unused Subject()

* WIP: refactor currentRoundStateProposalHash

* WIP: fix ProposalBlock nil error, refactor propose and remove errNoMajority

* WIP: refactor log messages

* WIP: reorder prevote

* WIP: add bool values for votes and refactor handleMsg

* WIP: fix order of setting latestPendingUnminedBlock

* WIP: Start all new rounds in separate go routines

* WIP: fix round number and add start new round message

* WIP: add mutex for pending unmined blocks and how its channel is used

* handle panics

* WIP: update how when unmined block is sent to the channel

* WIP: hack for starting first proposer last and increase timeout values

* WIP: Add scheduling messages for timeouts

* WIP: update the logging message type

* WIP: fix precommit timeout stoppage and add more log messages

* WIP: remove unnecessary check and update timeout logs

* surround recover() in defer statement

* increase severity of panicking goroutines

* add stack trace after goroutine runtime-error

* remove proposer hack

* update info messages to debug

* Log steps of the panic in new block proposing (#139)

* log proposed block befote commit

* sanity checks for nil proposed block

* introduce backend time constants

* dont change lastSend time while retrying

* remove magic constant

* log nil proposalBlock

* log errors in core.handleEvents

* log errors in core.handleEvents

* remove unused field from core

* resend once in 50ms

* send if just got a message

* fmt

* restore backend tests

* restore engine tests

* restore backend handler tests

* linters

* fix tests

* split header validation test

* fmt

* remove coverage.out

* introduce lint-ci

* fix the data races (#147)

* fix unmined block data race (#149)

* Fix validators set data races (#148)

* remove goroutines

* guarded validator set

* implement the rest of validatorSet interface methods

* linters

* update comments

* remove non-blocking core.sendEvent

* remove go routine when sending backlogEvent

* Fix roundchange data races (#150)

* remove unused stopTimer()

* rename events to messageEventSub

* rename finalCommittedSub and timeoutSub

* stop starting startRound in separate go routines

* add new go routine to handle newUnminedBlocks

* remove unminedBlockCh

* remove unused rlp methods from roundstate.go

* update currentRoundState instead of creating new one

* fix isMined condition

* move step into roundstate to use its mutex

* fix mutex lock and unlock

* refactor latestPendingUnminedBlock check and set

* fix latestUnminedBlock condition

* remove unnecessary check and revert how latestPendingUnminedBlock is set

* Fix block mining (#153)

* update debug messages

* update log messages for broadcasting

* add more logging

* fix currentRoundState update bug

* add more logging

* fix log messages

* fix linters

* longer ttl

* Fix round change (#159)

* add prevote messages to currentRoundState after checking the message

* update proposer every round

* update error messages

* fix proposal and vote decoding and update errors

* initialise c.futureRoundsChnage

* rename backlog var to backlogPrque

* change Trace messages to Debug

* backlogEvent is sent in a separate go routine

* Close autonity properly (#180)

* introduce context

* linters

* revert istanbul backend interface

* rename StepAcceptProposal to propose

* rename StepProposeDone to prevote

* rename StepPrevoteDone to precommit

* rename StepPrevoteDone to precommit

* remove unused handlerStopCh

* WIP: exit resend properly

* refactor sending to resend channel

* refactor timesout

* fix double pointer for decoding and encoding (#181)

* fix syncing

* add previous licenses

* halve initial timeout

* remove unnecessary mutex from message_set

It causes nil pointer errors while copying the round state to
currentHeightRoundStates due to the mutex.

* log c.latestPendingUnminedBlock state

* remove unused errors

* run tests with race flag

* changed pendingUnminedBlocks type to map[uint64]*types.Block and fix data race in isProposer (#188)

* changed pendingUnminedBlocks type to map[uint64]*types.Block and fix data race in isProposer

* linting

* linting and log messages

* remove unnecessary unmined block var

* reset c.futureRoundsChange when moving to new height

* rename c.currentHeightRoundsStates to c.currentHeightOldRoundsStates and fix off by one error

* refactor c.futureRoundsChange and update scheduleTimeout definition

* update commits and add timout deltas

* handle commit error, refactor startRound and add comments

* fix comments

* remove unused HasProposal

* rename pos to bft (#199)

* Refactor and comment resend related code (#196)

* refactor message resanding

* restore resend start goroutine

* linters

* wait for resender workers to be started

* Fix precommit seal (#203)

* Updated css-loader version to next highest release that solves cascading dependencies that include a vulnerable dependency version (#126)

* Remove dashboard package (#201)

* removed dashboard package

* revert skip error

* refactor adding votes to round state and create stub for verifyPrecommit

* remove redundant validator check

* add check for committed seal

* add new error for committed seal

* fix creation of committed seal

* revert previous commit

* Remove swarm (#206)

* remove swarm

* remove swarm from makefile

* remove view reference and send prevote nil if block verification fails

* fix linter

* Merge master into tendermint (#211)

* Updated css-loader version to next highest release that solves cascading dependencies that include a vulnerable dependency version (#126)

* Remove dashboard package (#201)

* removed dashboard package

* revert skip error

* Remove swarm (#206)

* remove swarm

* remove swarm from makefile

* issue template suggestion

* removed whisper

* removed shh

* removed shh

* setStep to prevote if proposal is invalid

* fix >= error

* Add state and body check in valid (#220)

* rename Verify to VerifyProposal

* add check for validating proposal body

* add block state validation and remove unused error

* refactor comment

* fix linter

* fix linter

* deploy soma and glienicke contracts before state validation

* Fix old precommit handling (#225)

* change height when a precommit quorum exist in an old round

(cherry picked from commit 909893133b0d786bb615e899b0ab7b8e3dd9425e)

* refactor accept prevote and precommit into one function:acceptVote()
Latest commit 70d04bf Aug 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github issue template suggestion Jul 24, 2019
.golangci Tendermint (#185) Aug 14, 2019
accounts Network permissioning, configurations Feb 12, 2019
build Tendermint (#185) Aug 14, 2019
cmd Tendermint (#185) Aug 14, 2019
common Restore tests and corresponding code (#52) Mar 29, 2019
consensus Tendermint (#185) Aug 14, 2019
console All Hail Autonity ! Feb 7, 2019
containers/docker All Hail Autonity ! Feb 7, 2019
contracts Remove swarm (#206) Jul 22, 2019
core Tendermint (#185) Aug 14, 2019
crypto Restore tests and corresponding code (#52) Mar 29, 2019
eth Tendermint (#185) Aug 14, 2019
ethclient All Hail Autonity ! Feb 7, 2019
ethdb All Hail Autonity ! Feb 7, 2019
ethstats All Hail Autonity ! Feb 7, 2019
event Tendermint (#185) Aug 14, 2019
helloworld Tendermint (#185) Aug 14, 2019
internal Basic tutorial for Glienicke and Soma contracts usage (#66) Apr 23, 2019
les All Hail Autonity ! Feb 7, 2019
light All Hail Autonity ! Feb 7, 2019
local_test_network
log All Hail Autonity ! Feb 7, 2019
metrics All Hail Autonity ! Feb 7, 2019
miner Tendermint (#185) Aug 14, 2019
mobile removed whisper Jul 24, 2019
node All Hail Autonity ! Feb 7, 2019
p2p Remove swarm (#206) Jul 22, 2019
params Tendermint (#185) Aug 14, 2019
rlp rlp: fix comment typo (#17640) Sep 11, 2018
rpc removed shh Jul 24, 2019
signer All Hail Autonity ! Feb 7, 2019
tests All Hail Autonity ! Feb 7, 2019
trie All Hail Autonity ! Feb 7, 2019
vendor Tendermint (#185) Aug 14, 2019
.dockerignore dockerignore, internal/build: forward correct git folder Nov 12, 2017
.gitattributes .gitattributes: enable solidity highlighting on github (#16425) Apr 3, 2018
.gitignore All Hail Autonity ! Feb 7, 2019
.gitmodules
.mailmap all: update license information (#16089) Feb 14, 2018
.travis.yml Tendermint (#185) Aug 14, 2019
AUTHORS all: switch out defunct set library to different one (#16873) Jul 16, 2018
COPYING all: update license information Jul 7, 2015
COPYING.LESSER all: update license information Jul 7, 2015
Dockerfile Provide an option to specify white list item ip+port not only in Gene… Apr 14, 2019
Dockerfile.alltools All Hail Autonity ! Feb 7, 2019
LICENSE Add a copy of the LGPL as LICENSE, copied from COPYING (#76) Apr 18, 2019
Makefile Tendermint (#185) Aug 14, 2019
README.md Tendermint (#185) Aug 14, 2019
appveyor.yml All Hail Autonity ! Feb 7, 2019
circle.yml All Hail Autonity ! Feb 7, 2019
interfaces.go All Hail Autonity ! Feb 7, 2019

README.md

Autonity

Join the chat at https://gitter.im/clearmatics/autonity Build Status Coverage Status

Autonity is a generalization of the Ethereum protocol based on a fork of go-ethereum.

Autonity Documentation

Building the source

Building autonity requires both a Go (version 1.9 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, run

make autonity

License

The go-ethereum library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.

The go-ethereum binaries (i.e. all code inside of the cmd directory) is licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.

You can’t perform that action at this time.