Skip to content

Conversation

@fxamacker
Copy link
Owner

@fxamacker fxamacker commented Mar 28, 2025

Improve text for readability:

  • Fix typos and improve grammar.
  • Clarify some text.
  • Shorten some text.

These changes do not affect the current CCF codec implementation.

Improvements to "CCF Examples" section will be done in a separate PR (when time allows).

Improve grammar for readability.
@fxamacker fxamacker self-assigned this Mar 28, 2025
Mention CCF is "a binary data format" in the first sentence and rephrase some sentences.
Shorten "CCF-based formats and protocols" to
"CCF-based protocols" and clarify some text.
Fix some typos introduced in last commit.
Clarify the last sentence in this paragraph of "Scope":

> This document does not specify how to encode version numbers of CCF itself or CCF-based protocols.  CCF-based protocols can specify an encoding that uses CalVer, SemVer, sequence-based versioning, any other versioning, or no versioning.  Some CCF-based protocols may want to use CBOR Sequences ([RFC 8742](https://www.rfc-editor.org/rfc/rfc8742.html)) to provide a version number in the first CBOR data item, followed by CBOR data item(s) representing CCF message(s).
Mostly formatting changes to prepare for separate changes to text.
Update "Objectives" section to say CCF supports:

- Cadence external values: CCF supports all Cadence built-in types and user-defined types (e.g., composite types).  For extensibility, CCF reserves multiple ranges of CBOR tag numbers (unassigned by IANA) for future Cadence built-in data types.

While at it, also improve some other text (grammar).
Old text:
- `field-name` MUST be unique in `composite-type`.

New text:
- `field-name` MUST be unique in `composite-type.fields`.
Remove redundant bullet point about converting between CCF and JSON.
Provide general guidance and mention security rather than requiring reader to know why encoding transaction arguments have considerations requiring explicitly sorted fields.

Old text:
- A CCF-based protocol for encoding transaction arguments might want to specify that encoders MUST produce deterministic encodings of the values.

New text:
- A CCF-based protocol that prioritizes security above performance (or requires explicitly sorted fields) might want to specify that encoders MUST produce deterministic encodings of the values.
Shortened and clarified some text.  For example:

Old text:
CCF decoders can handle invalid CCF messages as required by each CCF-based protocol.

New text:
Each CCF-based protocol MUST specify how to handle invalid CCF messages.
@fxamacker fxamacker changed the title WIP: Improve text for CCF Specification 1.0.0 Improve text for CCF Specification 1.0.0 Mar 31, 2025
@fxamacker fxamacker merged commit d1de534 into main Mar 31, 2025
1 check passed
fxamacker added a commit to onflow/ccf that referenced this pull request Mar 31, 2025
Changes were done at github.com/fxamacker/ccf_draft to reduce noise here during the weekend.

For details (individual commits), see:
- fxamacker/ccf_draft#103
- fxamacker/ccf_draft#104

NOTE: There were no changes to CDDL.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants