Skip to content

Commit

Permalink
DIP-257 Attribute Sets and Attestation (#275)
Browse files Browse the repository at this point in the history
Problem
=======
Link to GitHub Issue(s): #257 

Solution
========
Adds affordances for Attribute Sets via the Verifiable Credentials
format.
Adds three new announcement types for Attribute Sets.
Specifies DSNP compliance criteria for use of VCs, and includes DSNP
extensions for chains of trust and display of credentials.
Extends DSNP Activity Content usage to enable Attestations as
attachments.

---------

Co-authored-by: Wes Biggs <wes.biggs@amplica.io>
  • Loading branch information
wesbiggs and Wes Biggs authored Sep 17, 2024
1 parent 0a81372 commit 67c3786
Show file tree
Hide file tree
Showing 20 changed files with 1,047 additions and 29 deletions.
37 changes: 31 additions & 6 deletions .spellcheckerdict.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
Alexa
accreditations
announcementType
attributeSetType
attributeSetTypeName
attributeSetTypeNamespace
Avro
base32
Base58
BCP-47
BLAKE3
Brötli
CalVer
Expand All @@ -13,21 +17,25 @@ changeType
[Cc]odec('s)?
contentAddress
contentHash
cryptographic
[Cc]ryptographic
cryptographically
[Cc]ryptosuites
CtxSharedSecretA
CtxSharedSecretB
CtxSharedSecretBob
Curve25519
decrypt(ed)?
Delegator
[Dd]eserialize(d)?
[Dd]eserialize(d?)
DIDs
Diffie-Hellman
discoverability
[Dd]iscoverable
DSNP
DSNP-compatible
dsnp-did-resolver
DSNP-referenced
dsnp-verifiable-credentials
ECIES
EdDSA
[Ee]num(s)?
Expand All @@ -36,6 +44,7 @@ Ethereum
Extrinsics
fromId
GraphEdge
hashcode
H265
HBASE
HTTPS
Expand All @@ -53,32 +62,42 @@ LibertyDSNP
libsodium
little-endian
localhost
localizable
lookups
Mainnet
mdBook
MDX
Metaschema
MP[34]
MSA
[Mm]ultibase
[Mm]ultibase-encoded
multicodec
multicodec-prefixed
[Mm]ultihash
multihash-encoded
multikey
[Mm]ultikey
NaCl
namespaced
non-DSNP
objectId
OGG
Parachain
parseable
Paseo
personhood
PNG
Polkadot
Poly1305
pre-configured
Prepending
Prerelease
[Pp]rerelease
PRId([ABs])?
ProfileResource
pseudonymously
[Pp]ublicKey
repo
resolvers
RFC[1-9][0-9]*
Ristretto
RPC
Expand All @@ -91,7 +110,9 @@ SHA-256
SHA-512
Stateful
stringified
subkey
subjectContentHash
subkey(s?)
substring
SVG
targetAnnouncementType
targetContentHash
Expand All @@ -103,17 +124,21 @@ UINT_8
uncompress
unencrypted
[Uu]nfollow(ed)?
unhashed
URI
url
userId
UTF-8
v[0-9]+(\.[0-9]+)*
vanishingly
varint
[Vv]erifier(s?)
verifiability
W3C
WebM
WebP
websocket
[Ww]hitepaper
whitespace
X25519
XSalsa20
123 changes: 113 additions & 10 deletions STYLEGUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,69 +4,122 @@ Style guide defining wording, spelling, and other details regarding how DSNP ter
For more information about DSNP, visit [dsnp.org](https://www.dsnp.org/)
or [DSNP on GitHub](https://github.com/LibertyDSNP/spec)

## Announcement
Uppercase A
## General rules
* Announcements specific to DSNP have initial caps. (i.e., Broadcast Announcement)
* Announcement Types also have initial caps.
* General words that aren't specific to DSNP are lowercase (i.e., announcement, batch, content hash).
* Attribute is lowercase except when combined with an announcement or a specific DSNP set type. (i.e., Attribute Set Announcement)

## Activity Content
Uppercase A and C

## announcement
Generally all lowercase

## Announcement Type
Uppercase A and T

## Batch
Uppercase B
## attribute
All lowercase

## attribute sets
All lowercase

## Attribute Set Announcement
Uppercase A, S and A

## Attribute Set Type
Uppercase A, S and T

## Attribute Set Value Document
Uppercase A, S, V and D

## batch
All lowercase

## Batch Publication
Uppercase B and P

## bloom filter
lowercase b and f

## Broadcast Announcements
Uppercase B and A

## Code of Conduct
Uppercase C and C

## community
All lowercase

## content announcement
All lowercase

## Content Attribute Set

## content hash
All lowercase

## credential document
All lowercase

## Decentralized Social Networking Protocol (DSNP)
Spelled out fully first time it appears and then acronym thereafter. Avoid preceding with the word "the" and never follow with the word "protocol".

## development community
All lowercase

## DSNP Announcements
Uppercase DSNP and A

## DSNP public social graph
All lowercase after acronym

## DSNP Batch Publications
Uppercase Acronym plus uppercase B and P

## DSNP content
Uppercase acronym, lowercase c

## DSNP Content Hash
Uppercase Acronym plus uppercase C and H

## DSNP Content URI
Uppercase D, C and URI

## DSNP graph
Only acronym is uppercase

## DSNP Identifiers
Uppercase Acronym plus uppercase I

## DSNP Identity
Uppercase Acronym plus Uppercase I
## DSNP identity
Uppercase Acronym lowercase i

## DSNP Id
Short for DSNP Identity, Uppercase Acronym plus uppercase I
Short for DSNP identity, Uppercase Acronym lowercase when spelled out

## DSNP Protocol Scheme
Uppercase Acronym plus uppercase P and S

## DSNP Specification
Uppercase DSNP and S, avoid preceding with the word "the"

## DSNP user
Uppercase DSNP and lowercase u

## DSNP User Id
Uppercase acronym, U and I, avoid preceding with the word "the"

## DSNP User URI
Uppercase Acronyms plus uppercase U

## End User
Uppercase E and U

## Exclamation Marks
Should be avoided

## External Content Attributes
Uppercase E, C and A

## Graph Change Announcements
Uppercase G, C and A.
Note: Graph Change Announcements and events have been migrated to use User Data Operations as of version 1.2.0.
Expand All @@ -78,9 +131,15 @@ Note: Graph Change Announcements and events have been migrated to use User Data
## InterPlanetary File System (IPFS)
Uppercase I, P, F and S. In the first instance, spell out followed by the acronym in parentheses. Use the acronym only thereafter.

## issuer
All lower case

## MUST/MUST NOT
All Caps when defining rules for specification

## on-demand credential
Hyphenated, all lower case

## Operation
Uppercase O when referring to spec-defined DSNP Operations

Expand All @@ -90,26 +149,70 @@ Always use
## Possessives
Making DSNP possessive should be avoided (e.g. DSNP’s)

## Profile Announcement
Uppercase P and A

## Project Liberty
Uppercase P and L

## public key
All lowercase

## public graph
All lowercase

## Public Key Announcement
Uppercase P, K and A

## Reaction Announcement
Uppercase R and A

## Record
Uppercase R when referring to spec-defined DSNP State Change Records

## Reply Announcements
Uppercase R and A

## schema
All lowercase

## social network graph
All lowercase

## Team
Should not be used in context with DSNP

## Tombstone Announcement
Uppercase T and A

## User Attribute Set Announcement
Uppercase U, A, S and A

## verifier
Lowercase v

## Verifiable Credential
Uppercase V and C. Singular for one document/credential; plural when referring to the specification.
If followed by "document", that should be lowercase.

## Verifiable Credential Schema
Uppercase V, C, S.
If followed by "document", that should be lowercase.

## Update Announcement
Uppercase U and A

## user
All lowercase

## User Attribute Set
Uppercase U, A and S

## verifier
All lowercase

## We/Us/Our
Should not be used in context with Frequency

## YES and no
When describing required items, use an all caps "YES", otherwise a lowercase "no".
2 changes: 1 addition & 1 deletion book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ preferred-dark-theme = "coal"
[output.linkcheck]
follow-web-links = true
traverse-parent-directories = false
exclude = ['en\.bitcoin\.it', 'github\.com/LibertyDSNP/spec']
exclude = ['en\.bitcoin\.it', 'github\.com/LibertyDSNP/spec', 'w3\.org']

[output.html.fold]
enable = true
Loading

0 comments on commit 67c3786

Please sign in to comment.