The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Removed
protocol::digest
re-export (#75). digest
andsignature
are now re-exported from the top level instead ofsession
(#75).ProtocolError::verify_messages_constitute_error()
takes a newshared_randomness
argument. (#76)Protocol
andProtocolError
are now generic overId
. (#76)ProtocolError::verify_messages_constitute_error()
takes a newguilty_party
argument. (#76)Combinator
/CombinatorEntryPoint
removed in favor of a singleChainedMarker
trait. (#76)- The
combined_echos
argument toProtocolError::verify_messages_constitute_error()
now has a mapping of id to echo instead of just a vector of echos. (#76) ProtocolError::verify_messages_constitute_error()
now takes messages and mapping of messages by value. (#76)- Removed
ProtocolError::description()
, usingDisplay
impl instead. (#79) - Added
ProtocolError::AssociatedData
type, and a corresponding argument toProtocolError::verify_messages_constitute_error()
andEvidence::verify()
. (#79) - Message parts in
Round::receive_message()
andProtocolError::verify_messages_constitute_error()
are bundled inProtocolMessage
. (#79) RoundId
s are passed by reference in public methods since they are notCopy
. (#79)- Using a single
ProtocolError::required_messages()
instead of multiple methods. (#79) Protocol::verify_*_is_invalid()
are now mandatory to implement. (#79)- Removed the RNG parameter from
Round::receive_message()
andSession::process_message()
. (#83) - Renamed
Round::entry_round()
toentry_round_id()
and made it mandatory to implement. (#84) - Rework
RequiredMessageParts
API. (#85)
impl From<NormalBroadcastError> for ProtocolValidationError
(to match what already exists for other messages). (#77)- Exposed
dev::ExecutionResult
. (#79) NoProtocolErrors
stub type to indicate that the protocol does not generate any provable errors. (#79)- Conversion from
u8
toRoundId
and comparison ofRoundId
withu8
. (#84)
0.1.0 - 2024-11-19
Session
is now generic overSessionParameters
instead of a bunch of separate types. (#36)MessageBundle
is not generic anymore. (#36)ProcessedArtifact
is now also generic onSessionParameters
. (#37)- Added a
Test
prefix totesting::Signer
/Verifier
/Signature
/Hasher
and renamedTestingSessionParams
toTestSessionParams
. (#40) SessionId::new()
renamed tofrom_seed()
. (#41)FirstRound::new()
takes a&[u8]
instead of aSessionId
object. (#41)- The signatures of
Round::make_echo_broadcast()
,Round::make_direct_message()
, andRound::receive_message()
, take messages withoutOption
s. (#46) Artifact::empty()
removed, the user should returnNone
instead. (#46)EchoBroadcast
andDirectMessage
now useProtocolMessagePart
trait for their methods. (#47)- Added normal broadcasts support in addition to echo ones; signatures of
Round
methods changed accordingly; addedRound::make_normal_broadcast()
. (#47) - Serialization format is a part of
SessionParameters
now;Round
andProtocol
methods receive dynamic serializers/deserializers. (#33) - Renamed
(Verified)MessageBundle
to(Verified)Message
. Both are now generic overVerifier
. (#56) Session::preprocess_message()
now returns aPreprocessOutcome
instead of just anOption
. (#57)Session::terminate_due_to_errors()
replacesterminate()
;terminate()
now signals user interrupt. (#58)- Renamed
FirstRound
trait toEntryPoint
. (#60) - Added
Protocol
type toEntryPoint
. (#60) EntryPoint
andFinalizeOutcome::AnotherRound
now use a newBoxedRound
wrapper type. (#60)PartyId
andProtocolError
are now bound onSerialize
/Deserialize
. (#60)- Entry points are now stateful; combinator API reworked accordingly. (#68)
run_sync()
now returns anExecutionResult
object. (#71)testing
module and feature renamed todev
to avoid confusion with tests. (#71)- Correctness proofs are removed from the API. Consequently,
FinalizeError
is removed, andRound::finalize()
returns aResult<..., LocalError>
) (#72)
SerializableMap
wrapper forBTreeMap
supporting more formats and providing some safety features. (#[32])DirectMessage::assert_is_none()
andverify_is_some()
, same forEchoBroadcast
. Users can now check that a part of the round message (echo or direct) isNone
as expected, and make a verifiable evidence if it is not. (#46)- Re-export
digest
from thesession
module. (#56) - Added
Message::destination()
. (#56) PartyId
trait alias for the combination of bounds needed for a party identifier. (#59)- An impl of
ProtocolError
for()
for protocols that don't use errors. (#60) - A dummy
CorrectnessProof
trait. (#60) - A
misbehave
combinator, intended primarily for testing. (#60) - A
chain
combinator for chaining two protocols. (#60) EntryPoint::ENTRY_ROUND
constant. (#60)Round::echo_round_participation()
. (#67)SessionReport::result()
. (#71)utils::SerializableMap
. (#74)
0.0.1 - 2024-10-12
Initial release.