sebak
sebak copied to clipboard
SEBAK, the next BOScoin Blockchain
### Github Issue ### Background Like `Block.Height`, `BlockTransaction` and `BlockOperation` can have their own ordered index. The advantage of the indexes is that 1) make readable ordering for DB index...
### Github Issue Resolves #873 ### Background In debug mode, SEBAK produces huge log messages including HTTP requests and responses log. Under docker, we can use `max-size` setting in log...
The proposer selection algorithm is like below. https://github.com/bosnet/sebak/wiki/How-to-select-the-proposer ``` go func CalculateProposer(blockHeight int, roundNumber int) string { candidates := sort.StringSlice(nr.connectionManager.RoundCandidates()) candidates.Sort() return candidates[(blockHeight + roundNumber)%len(candidates)] } ``` * I think...
`block.Header` currently uses too wide name, but it belongs to only `block.Block`.
At the booting state, node checks the validators are alive or not, and then start to consensus. During consensus, if some validators are dead or does not respond and the...
- Start 3 nodes (standard docker setup) - Kill one - Send a valid transaction, e.g.: ``` docker run --network host -it sebak wallet payment GDTEPFWEITKFHSUO44NQABY2XHRBBH2UBVGJ2ZJPDREIOL2F6RAEBJE4 1000 SBECGI3FSCYHNQIMANNCWQSVA6S5C6L4BXFKAPMBAMI5V47NWXNE37MN --endpoint=https://127.0.0.1:2822 --create...
Our current NTP is single point of failure. If someone attacks NTP server for hijacking, then `SEBAK` is easily stopped. So we need to change NTP to Secure NTP.
When calling `https://mainnet.blockchainos.org/api/v1/accounts/GA7ABBCSLF6OPK6BON43CSVW6H5WMXZEKIJ4372OP3R43EDPTP25IGOR/operations?cursor=JEdBN0FCQkNTTEY2T1BLNkJPTjQzQ1NWVzZINVdNWFpFS0lKNDM3Mk9QM1I0M0VEUFRQMjVJR09SLQAAAAAABgnJAAAAAAAAAAA3MDNjNTYxMC0wNDIyLTExZTktYjFlYi0wMjQyYWMxMjAwMDI%3D&limit=20&reverse=true`, _embedded.records sometimes contain a different amount of records. The bug can be reproduced, but the behavior is inconsistent. I had to perform the request multiple times to...
We need to focus on how to signing an expired ballot in detail. Because it's different with normal ballot. And another opinion for performance related with expired ballot(https://github.com/bosnet/sebak/pull/915#discussion_r251738424)
``` t=2019-01-29T01:50:41+0000 lvl=crit msg="failed to start time sync" module=main error="read udp 10.142.4.44:43217->203.248.240.140:123: i/o timeout" caller=run.go:721 t=2019-01-29T01:50:41+0000 lvl=eror msg="Node exited with error" module=main error="read udp 10.142.4.44:43217->203.248.240.140:123: i/o timeout" caller=run.go:165 ``` https://circleci.com/gh/bosnet/sebak/18977