Skip to content

v0.0.1

Compare
Choose a tag to compare
@masih masih released this 26 Jun 20:13
· 253 commits to main since this release
69e5251

What's Changed

  • Implements validation and algorithmic changes for EC-compatible sway. by @anorth in #1
  • Implemented signing payloads in terms of abstract signer by @anorth in #20
  • Implement opaque TipSetKey type. by @anorth in #21
  • Fix integer widths of all values used in the protocol. by @anorth in #23
  • Add a simple Makefile by @anorth in #24
  • Add simple GitHub actions configuration to test/lint PRs by @anorth in #25
  • Implement receiving new EC-compatible chains by @ranchalp in #19
  • VRF implementation (#6) by @ranchalp in #28
  • Decide phase by @ranchalp in #30
  • Update readme and add license by @jsoares in #36
  • Remove implicit justification by @ranchalp in #34
  • Move message signature validation into instance, and document the message attestation properties. by @anorth in #41
  • Implement PowerTable as ordered map by @ranchalp in #32
  • Replace panics with errors by @matejpavlovic in #39
  • Fix power duplicate entry check by @Stebalien in #45
  • Use numbers for phases instead of names by @Stebalien in #46
  • Add Aggregator interface and implement fake aggregator by @ranchalp in #35
  • Bump golang.org/x/crypto from 0.0.0-20190611184440-5c40567a22f8 to 0.17.0 by @dependabot in #52
  • Bump golang.org/x/sys from 0.0.0-20190412213103-97732733099d to 0.1.0 by @dependabot in #53
  • Switch to uint64 for Instance and Round by @Kubuxu in #54
  • Add explicit justification of COMMIT and CONVERGE by @ranchalp in #37
  • Add explicit justification of DECIDE messages by @ranchalp in #47
  • Bump golang.org/x/crypto from 0.0.0-20190611184440-5c40567a22f8 to 0.17.0 by @dependabot in #56
  • Replace panics where relevant by @ranchalp in #59
  • Remove comments about implicit justification by @anorth in #63
  • Add comment about unrealistic message forgery in withholding adversary by @anorth in #62
  • 15% improvement in tests speed by @Kubuxu in #66
  • Add test demonstrating agreement on longest common prefix by @anorth in #67
  • Optimize justification creation by @ranchalp in #55
  • Cleanup signature payload, popagate more errors, add cbor-gen by @Kubuxu in #65
  • Initial scaffolding of the f3 module by @Kubuxu in #44
  • Remove tipset weights, panic on multiple strong quora by @anorth in #71
  • Renames for conciseness by @anorth in #72
  • chore: update cbor-gen by @Stebalien in #78
  • Introduce BLS signing, adapt APIs for it to work by @Kubuxu in #70
  • Remove unused payload from alarm callback by @anorth in #73
  • Move network name into a host API function. by @anorth in #80
  • Revert "Move network name into a host API function. (#80)" by @Kubuxu in #84
  • Make GMessage justification optional, clean up some control flow for it. by @anorth in #75
  • Use full TipSet object as map key, avoid using CIDs by @anorth in #79
  • Move network name into a host API function. by @Kubuxu in #85
  • Implement Synchronization of participants in the current instance #69 by @ranchalp in #82
  • Factor out repeated code building justifications by @anorth in #88
  • Include network name in Network struct by @ranchalp in #89
  • Include DST and NetworkName in VRF signing by @ranchalp in #90
  • Simplify synchronization of participants to simple exponential back-off by @ranchalp in #87
  • Use time.Time() instead of float64 by @ranchalp in #83
  • Serialize phase as an integer for signatures. by @anorth in #93
  • Reorganize packages by @Kubuxu in #86
  • Change semantics of delta parameter to be a bound on message delay by @anorth in #92
  • Express message justification rules as data rather than procedural code by @anorth in #91
  • Make message validate an exported API of instance and participant, to be called before receiving a message. by @anorth in #97
  • Remove now-unused opaque message type. by @anorth in #99
  • Fix message validation to check the justification signers have strong quorum by @anorth in #101
  • Remove abstraction noise around VRF construction and verification by @anorth in #102
  • Add API for participant to notify host of decisions, with signed justification. by @anorth in #100
  • Nodes decide on strong quorum of DECIDE regardless of phase by @ranchalp in #104
  • Change API so participant pulls canonical chain when starting by @anorth in #107
  • Fix initialisation of delta from f3sim main by @anorth in #108
  • Recover panics at participant entry points by @ranchalp in #105
  • Remove self participant ID from some host methods. by @anorth in #109
  • Change alarm semantics to support at most one at a time by @anorth in #110
  • Participant begins new instance after terminating the previous one by @anorth in #111
  • Add a test exercising multiple instances under ideal conditions by @anorth in #116
  • Bump google.golang.org/protobuf from 1.30.0 to 1.33.0 by @dependabot in #123
  • Fix PanicError construction and sim clock progress with historical messages. by @anorth in #120
  • chore: update kyber to released version by @Stebalien in #127
  • Use go generate to generate sources by @masih in #129
  • Add local queue for messages for future instances by @anorth in #124
  • Require go.mod is tidy during CI by @masih in #134
  • Delay next instance until EC chain progresses by @anorth in #119
  • Implement basic chain and types unit tests by @masih in #133
  • Fix typo with ECExtend by @ranchalp in #137
  • Validate EC chain invariants on instantiation by @masih in #138
  • Refactor Host interface to optionally trace logic logs by @masih in #140
  • Speed up tests by running repetitions in parallel by @masih in #141
  • Upgrade to go 1.21 by @masih in #143
  • Implement sortable power table and test invariants by @masih in #152
  • Make ECChain opaque [][]byte in GBPFT by @anorth in #149
  • Implement participant unit tests by @masih in #142
  • Get PowerTable from Host during adversary testing by @masih in #157
  • Test repeated messages do not interfere with consensus by @masih in #156
  • Skip long tests when running in short mode by @Kubuxu in #161
  • Move simulation related packages to sim by @masih in #159
  • Move adversary APIs and type assert by @masih in #164
  • Refactor GenerateKey API for testing only by @masih in #163
  • Switch to signatures on G2, Resolves #96 by @Kubuxu in #162
  • Use weights to CONVERGE VRF ticket comparison by @ranchalp in #145
  • Signal whether an EC chain was accepted by an instance by @masih in #168
  • Refactor sim package in prep for expanding the implementation by @masih in #171
  • Trigger merge group checks with GitHub Actions by @masih in #174
  • Enhance Repeat adversary tests and add comments by @masih in #167
  • Implement the ability to control latency by time and point to point by @masih in #178
  • Introduce additional simulation options and restructure constants by @masih in #179
  • Fix a bug in simulated next instance start time by @masih in #183
  • Implement gpbft option-based configuration with built-in defaults by @masih in #185
  • Replace externally-provided acceptable chains with candidate list including possibly-decided values by @anorth in #181
  • Investigate sensitivity to latency in multi instance tests by @masih in #190
  • Set default Delta value to 3 seconds by @masih in #191
  • Remove redundant ReceiveECChain receiver from adversaries by @masih in #197
  • Implement skipping directly to DECIDE phase on receiving a valid (justified) DECIDE message. by @anorth in #194
  • Require justification for PREPARE messages by @anorth in #193
  • Limit max chain length to 100 tipsets by @anorth in #198
  • Change delta backoff to 2.0 by @anorth in #199
  • Reduce GC frequency to run tests faster by @masih in #204
  • Adjust latency model to always return zero for local messages by @masih in #210
  • Set default simulation latency to None by @masih in #211
  • Implement divergent EC chain in simulations by @masih in #187
  • Implement storage power evolution in simulations for honest participants by @masih in #202
  • Ignore equivocating and duplicate messages from a sender by @anorth in #200
  • Drop messages from prior rounds that can't affect the protocol outcome. by @anorth in #207
  • Consistently model P2P latency to reduce max rounds in tests by @masih in #212
  • Simplify simulation messaging with priority queue and parameterise GST by @masih in #209
  • Truncate ECChain capacity when extending/truncating by @Stebalien in #217
  • Avoid proposing chains that are longer than max. by @anorth in #206
  • Implement additional EC divergence test cases by @masih in #214
  • Report code coverage via Continuous Integration by @masih in #222
  • Add unit tests for simulation message queue by @masih in #221
  • Collect cross-package coverage by @Kubuxu in #230
  • Avoid duplicating codecov coverage reports via merge queue by @masih in #231
  • Remove dead Ticket.Compare function by @Stebalien in #238
  • EVM-friendly TipSet and ECChain formats by @Stebalien in #216
  • Introduce fuzz testing to separate unit tests from repetition tests by @masih in #219
  • Update mockery and fix file name by @Stebalien in #250
  • Fix Delta default value documentation by @masih in #252
  • Add the ability to download corpus of fuzz tests failed on CI by @masih in #260
  • Change host API to separate fetching chain from fetching power tables by @anorth in #256
  • Drop spammable messages beyond max allowed lookahead rounds by @masih in #258
  • Fix go vet issues and upgrade to latest golangci-lint by @masih in #268
  • Add more parallelism to tests in t.Run() by @anorth in #263
  • Use deterministic latency in tests to avid intermittent failures by @masih in #269
  • Maximise test parallelism and reduce duplicate code by @masih in #275
  • Adjust Fuzz honest multi-instance to avoid intermittent failures by @masih in #277
  • Skip ahead to future rounds when justified by @masih in #276
  • FFF-103: Async delivery of local messages by @adlrocha in #259
  • Consensus over pubsub by @Kubuxu in #254
  • Bump golang.org/x/net from 0.21.0 to 0.23.0 by @dependabot in #280
  • Reduce GOGC while fuzzing by @Kubuxu in #282
  • Upgrade go mod dependencies by @masih in #284
  • Reduce GC during fuzz tests by @masih in #283
  • Allow skipping to future rounds from QUALITY phase by @masih in #279
  • Use offset committees to validate and queue/drop messages for future instances by @anorth in #264
  • FFF-103: Message builder pattern by @adlrocha in #274
  • Commit to a next power table and additional commitments by @Stebalien in #273
  • CI: Exclude tests & generated code from code coverage by @Stebalien in #290
  • Implement finality certificates by @Stebalien in #266
  • Make message validation safe for concurrent use. by @anorth in #286
  • Address finality certificate nits from #266 by @Stebalien in #292
  • Make it possible to apply multiple power diffs at once by @Stebalien in #291
  • Extra power diff tests & validation by @Stebalien in #293
  • Add some final test cases for finality certificate deltas by @Stebalien in #297
  • When starting a new instance, check for skipping rounds just once after processing all queued messages. by @anorth in #294
  • Update CI & allow golangci-lint to emit checks by @Stebalien in #302
  • Avoid loading round state for dropped messages by @anorth in #300
  • Fix race conditions and Run tests with race detection in CI by @masih in #287
  • Fix deprecated package in bls signer by @masih in #309
  • Fix minor staticcheck issues by @masih in #310
  • Remove redundant weak quorum flag from chain support by @masih in #306
  • Error out fatally when strong quorum exists but not found by @masih in #311
  • Rename Module to F3, pass network name to Client, fix error wrapping by @Kubuxu in #308
  • F3-245: API proposal for ReceiveFinalityCertificate by @adlrocha in #296
  • Enforce size limits on TipSet key and power table CID length. by @anorth in #305
  • Fix plumbing of per-participant logger. by @anorth in #313
  • Shortcut timeout in PREPARE when outcome is determined by @masih in #289
  • Fix race condition in honest tests by @masih in #317
  • Document and adjust alarm delivery precedence over network messages by @masih in #318
  • Add power tables to the Certificate Store by @Stebalien in #301
  • Prioritise alarm delivery by @Kubuxu in #321
  • Verify decider identity when checking if sim instance is complete by @masih in #323
  • Simulate skip to future instances for lagging participants by @masih in #324
  • Group validation errors as top level ValidationError by @masih in #307
  • Specify a non-zero participant count for the honest async BLS test by @Stebalien in #328
  • Protect exported participant methods with tryLock by @anorth in #329
  • Fix typo in interface method name by @masih in #333
  • Add validation to pubsub by @Kubuxu in #320
  • Broadcast supplemental data as part of GMessage by @masih in #338
  • Merge participant Start and SkipToInstance into a single StartInstance method. by @anorth in #330
  • Relax the assumption of receiving own CONVERGE messages synchronously by @masih in #334
  • Scale power in the range 0-0xffff by @Stebalien in #118
  • Save decisions in certstore by @Kubuxu in #322
  • Shorten timeout at COMMIT phase when justified by @masih in #315
  • Use consistent request broadcast pattern in simulated sync broadcasts by @masih in #339
  • Feed F3 from EC chain and bootstrap by @Kubuxu in #341
  • Allow optimistic early instance start in simulation by @masih in #349
  • Rebroadcast last round of messages if instance has not progressed by @masih in #326
  • Always offset the successive broadcasts based on current time by @masih in #353
  • Allow manifest gen to create the manifest file by @Kubuxu in #352
  • Fix tipset stringer max print limit and refine ec chain stringer by @masih in #357
  • Use CouldReachStrongQuorumFor value when checking if CONVERGE value should become a candidate. by @anorth in #358
  • Wait for boostrap epoch and boostrap CertStore power table from it by @Kubuxu in #354
  • Expose message builder to users of F3 API by @Kubuxu in #361
  • Move initial instance to manifest by @Kubuxu in #363
  • Expose certs on the F3 API by @Kubuxu in #367
  • feat: use the scaled power for winning tickets by @Stebalien in #375
  • Implement backoff on base decisions by @Kubuxu in #369

New Contributors

Full Changelog: https://github.com/filecoin-project/go-f3/commits/v0.0.1