dedis / cothority

Scalable collective authority
Other
425 stars 106 forks source link

Refine byzcoin #2470

Closed ineiti closed 2 years ago

ineiti commented 2 years ago

This is a collection of patches for byzcoin and skipchain:

This has been tested in production and behaves nicer. Of course there are still some bugs left...

sonarcloud[bot] commented 2 years ago

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

No Coverage information No Coverage information
0.0% 0.0% Duplication

calctopian commented 2 years ago

About changing "Roster.List" to "GetNodes()":

ineiti commented 2 years ago

@calctopian - thanks for your comment. The change I did here is really just relevant to the byzcoin.Client. The other Roster.List are very often needed as-is and should not be replaced by the nodes here. The one in line 209 refers to the leader, and should stay like this. Perhaps the one in line 267 should be changed. Are you using the eventlog service? In my mind it is marked as deprecated.

The goal is for a client to know which nodes they can connect to without problems. This is needed because some of the nodes might be faulty. Of course this doesn't help against byzantine nodes. But currently we're more concerned by too slow nodes than anything else :)

The best place for this to be would be probably in the cothority/skipchain/api.go, and then re-use it by the cothority/byzcoin/api.go.

calctopian commented 2 years ago

No, I wasn't using the eventlog service, just finding instances where byzcoin.Client was being used.

OK, I fully agree with you that the priority is to connect to the fastest nodes :)