Giter Club home page Giter Club logo

website's People

Contributors

alanshaw avatar anomalroil avatar bbjubjub2494 avatar cluelessuk avatar cwaring avatar daviddias avatar dependabot-preview[bot] avatar edgo914 avatar emmanuelm41 avatar ericlscace avatar hsanjuan avatar hugomrdias avatar intel352 avatar jessicaschilling avatar johnnymatthews avatar jpeg07 avatar jsoares avatar lidel avatar momack2 avatar nikkolasg avatar qzdl avatar rubenkelevra avatar sinkuu avatar stebalien avatar suzannaaltman avatar terichadbourne avatar vojta001 avatar webmaster128 avatar yiannisbot avatar yusefnapora avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

Simple install link is broken

The simple install link here is broken, i.e. https://drand.love/install results in ipfs resolve -r /ipfs/bafybeibh577ymwr4dyjnvokhrilaqocgt2mrvzr4zi3adapu4hdekywm5q/install: no link named "install" under bafybeibh577ymwr4dyjnvokhrilaqocgt2mrvzr4zi3adapu4hdekywm5q

Replace favicon images with Drand logo.

There's a bunch of IPFS specific favicon icons and images in docs/.vuepress/public. Once the Drand project has a logo, we should replace all these files. We can keep the filenames the same.

Implement official drand logo.

As we intend to send a link to the beta to LoE partners, it would be good to replace the corner logo with the draft logo. It can still change, of course, but it would be helpful to get people used to this one.

Improve the hero-banner text.

The banner text needs some serious work! This needs to be short, descriptive and exciting. One suggestion is:

Distributed Randomness Beacon. Verifiable, unpredictable, and unbiased random numbers as a service.

Document encoding of round in message

First of all, thank you for the great documentation! When implementing a drand verifier in Rust, this was extremly helpful. There is one thing I needed to lookup in Go code which was not specified:

In the blocks Randomness generation and Beacon signature the message format is documented via Go code:

func Message(currRound uint64, prevSig []byte) []byte {
	h := sha256.New()
	h.Write(prevSig)
	h.Write(roundToBytes(currRound))
	return h.Sum(nil)
}

However, it is unclear how currRound is encoded to bytes. It turns out the encoding is fixed length, 8 bytes big endian. It would be good to either document that somehow or just rename roundToBytes to uint64ToBytesBigEndian or something like that. This makes clear at first glance for non-Go developers that there is nothing special hidden in roundToBytes.

Add blog section.

The Drand team need a place to store blog posts. Eventually we'll spin up a separate site specifically for blogs at some point, but right we can throw them into their own section in here.

Docker instructions are out of date

As reported by email, the website documentation on docker deployments is wrong/misleading/outdated:

It says “Copy/send this folder on your server”. Where is this folder?

The folder structure portrayed also does not correspond to the actual structure of drand/docker. There is also no mention the image on Docker Hub.

On that note, the instructions on docker hub also contain a broken link to docker/README.md (should instead link to the website docs).

Add a footer

There are some navigation items that would fit well in a footer, like a link to the status page, the github repo etc. and it could display license information and make the site a look a bit more professional.

Mechanical and grammatical copy suggestions.

I took a look at the beta drand site over the weekend and have some suggestions! Please let me know if you have any questions. ☺️

Main page

https://beta.drand.love

Mechanical: Drand is a service that provides random numbers. While this doesn't sounds particularly exciting or ground-breaking, what makes drand important is /how/ these random numbers are created.
s/doesn't/doesn’t
Suggest using smart quotes over straight quotes

Typo: Drand is a service that provides random numbers. While this doesn’t sounds particularly exciting or ground-breaking, what makes drand important is /how/ these random numbers are created.
s/doesn’t sounds/doesn’t sound

Typo: Drand is a service that provides random numbers. While this doesn’t sounds particularly exciting or ground-breaking, what makes drand important is /how/ these random numbers are created.
s/ground-breaking/groundbreaking

Consistency: Drand is a service that provides random numbers. While this doesn’t sounds particularly exciting or ground-breaking, what makes drand important is /how/ these random numbers are created.
Is it Drand or drand?

Under “Get started”
Consistency: Secure your project by using random numbers generated by drand.
Is it Drand or drand?

Typo: Help the internet by generating truely random numbers with drand.
s/truely/truly

Consistency: Help the internet by generating truely random numbers with drand.
Is it Drand or drand?

Under “Learn more”
Consistency: Find out more about how drand produces random numbers and how the team are making the project secure
Is it Drand or drand?

Under “Get involved”
Mechanical: If you'd like to contribute code, submit issues, improve documentation…
s/you'd/you’d
Suggest using smart quotes over straight quotes

https://beta.drand.love/concepts/overview/

Suggestion: Learn about the basics of Drand, how it works, and why it exists in the first place.
Omit “about”, it's obvious

Under “Randomness matter”
Typo: When connecting to a Wifi network using the WPA2 security protocol
s/Wifi/WiFi
4 more references to Wifi in this section

Mechanical: When connecting to a Wifi network using the WPA2 security protocol
Incomplete sentence

Suggestion: The randomness exchange between laptop and wifi router seems like it would be a good illustration

Under “Current randomness generators”
Mechanical: The United States' National Institute of Standards and Technology (NIST)’
s/States'/States’
Suggest using smart quotes over straight quotes

Mechanical: The United States’ National Institute of Standards and Technology (NIST)’
Omit hanging apostrophe at the end of the NIST acronym

Under “Features of good randomness”
Awkward: To mitigate this exploitation, researchers have defined five points that a strong random-number-generator should be:
Suggest: To mitigate this exploitation, researchers agreed upon five points that define a strong random-number-generator:

Mechanical: Unpredictable: you can't predict the next number to come out of the generator.
s/can't/can’t
Suggest using smart quotes over straight quotes

Typo: Publicly-verifiable
s/Publicly-verifiable/Publicly verifiable

Mechanical: Bias-resistant: you can't lead the generator one way or another.
s/can't/can’t
Suggest using smart quotes over straight quotes

Under “How drand works”
Consistency: Is it Drand or drand?

Typo: For a deep-dive into the intricacies of drand, check out…
s/deep-dive/deep dive

Consistency: For a deep-dive into the intricacies of drand, check out…
Consistency: Is it Drand or drand?

Under “Drand for everyone”
Consistency: Is it Drand or drand?

Consistency: Defining precisely who will use drand is pointless since the project will generate random numbers for billions of applications, messages, transactions, and services around the world! However, this website is for developers looking to integrate drand into their projects, and for infrastructure specialists wanting to host a drand node.
Is it Drand or drand?

https://beta.drand.love/concepts/cryptography/#setup-phase

Under “Cryptography”

Typo: This document provides an overview of the cryptographic building blocks that Drand uses to generate publicly-verifiable, unbiased
s/publicly-verifiable/publicly verifiable

Consistency: The drand beacon has two phases…
Is it Drand or drand?

Under ”Setup Phase”
Consistency: This section switches to Title Case for the subheads, whereas the initial page uses Sentence case
Suggest making a decision regarding the subheads and ensure consistency across documentation

Under ”Secret Sharing”
Consistency of subhead case

Mechanical: Shamir's Secret Sharing
s/Shamir's/Shamir’s
Suggest using smart quotes over straight quotes

Under “Verifiable Secret Sharing”
Consistency of subhead case

Mechanical: Shamir's Secret Sharing
s/Shamir's/Shamir’s
Suggest using smart quotes over straight quotes

A Verifiable Secret Sharing (VSS) scheme protects against malicious dealers by enabling participants to verify that their shares are consistent with those dealt to other nodes ensuring that the shared secret can be correctly reconstructed later on.
Suggest omit “on” since you want to avoid ending sentences with a preposition, and removing this one doesn’t change the sentence meaning.

Mechanical: Feldman's VSS scheme
s/Feldman's/Feldman’s
Suggest using smart quotes over straight quotes

Under “Distributed Key Generation”
Consistency of subhead case

Mechanical: Pedersen's DKG
s/Pedersen's/Pedersen’s
Suggest using smart quotes over straight quotes

Mechanical: Feldman's VSS
s/Feldman's/Feldman’s
Suggest using smart quotes over straight quotes

Mechanical: Feldman's VSS
s/Feldman's/Feldman’s
Suggest using smart quotes over straight quotes

Mechanical: Pedersen's DKG
s/Pedersen's/Pedersen’s
Suggest using smart quotes over straight quotes

Under “Beacon Phase”
Typo: publicly-verifiable
s/publicly-verifiable/publicly verifiable

Consistency: Afterward, we show how drand uses PBC
Is it Drand or drand?

Under “Randomness Generation”
Typo: publicly-verifiable
s/publicly-verifiable/publicly verifiable

Mechanical: the signer's key
s/the signer's key/the signer’s key
Suggest using smart quotes over straight quotes

Mechanical: such as ECDSA ,
s/EDCSA/Elliptic Curve Digital Signature Algorithm (EDCSA)
Suggest spelling out acronyms on first reference

Typo: Partial Signature Generation: To sign a message each participant uses his private key share to create a /partial BLS signature/ .
s/his/their
Avoid gendered pronouns

Typo: publicly-verifiable
s/publicly-verifiable/publicly verifiable

Under “Chained Randomness”
Consistency: To extend this chain of randomness, each drand participant creates
Is it Drand or drand?

Under ”Conclusion”
Typo: publicly-verifiable
s/publicly-verifiable/publicly verifiable

Mechanical: generate publicly-verifiable, unbiased, unpredictable, distributed randomness.
Remove comma between unpredictable and distributed since the list preceding the noun (distributed randomness) are adjectives describing noun

Suggest adding subhead ”References” after the first sentence in the conclusion section to make it obvious you’re linking to outside research

https://beta.drand.love/concepts/security-model/

Mechanical: Drand's Security Model
S/Drand's/Drand’s
Suggest using smart quotes over straight quotes

Under ”Notations”
Drand node: a node that is running the
Suggest removing ”that is”
”Drand node*: a node running the…”

Relay node: a node that is connected
Suggest removing ”that is”
”Relay node: a node connected…”

Mechanical: it is assumed from the context - most often,
Suggest using semi-colon over en dash
“it is assumed from the context; most often,”

Corrupted node: a node that is in the control
Suggest removing ”that is”
”a node in the control”

Mechanical: (drand or a relay depending on the context)
Suggest add comma after drand
”(drand, or a relay depending on the context)”

Under ”Distributed Key Generation Ceremony (Setup Phase)”

Mechanical: Pedersen's protocol
s/Pedersen's/Pedersen’s
Suggest using smart quotes over straight quotes

Mechanical: Gennaro's paper
s/Gennaro's/Gennaro’s
Suggest using smart quotes over straight quotes

Clarification: (less than one 1s of offset)
Is this the most clear way to document this concept?

Mechanical: DKG's biasability in signatures: Pedersen's DKG
s/DKG's/DKG’s
s/Pedersen's/Pedersen’s
Suggest using smart quotes over straight quotes

Mechanical: However, the same authors (Gennaro et al.)
s/Gennaro et al./Gennaro, et al.
Add comma

Mechanical: proved this bias is not relevant in the setting of using the DKG to perform digital signatures, which offers other strong properties - paper .
Suggest using parentheses over en dash here
”Which offers other strong properties (paper).”

Mechanical: from Galindo et al.
s/Galindo et al./Galindo, et al.
Add comma

Under ”Randomness Generation Model”

Mechanical: the reality of the server's clock
S/server's/server’s
Suggest using smart quotes over straight quotes

Redundancy: If the same set of nodes perform a new fresh DKG,
Suggest using one or the other, new or fresh

Under ”Attack Vectors”
Consistency of subhead case

Under ”Randomness Generation”
Consistency of subhead case

Mechanical: (if TLS is not used - which is not a recommended setup
Suggest replacing en dahs with em dash
(if TLS is not used—which is not a recommended setup)

Clarification: However, the advantage should serve as most half of the RTT
Suggest spelling out acronym on first reference
Round-trip time?

Mechanical: an adversary tries to "takedown" N/2 Drand
s/"takedown"/“takedown”
Suggest using smart quotes over straight quotes

Mechanical: effectively becoming the last "missing piece" to create the final beacon.
s/"missing piece"/“missing piece”
Suggest using smart quotes over straight quotes

Under ”DoS the Drand network”
Mechanical: can't get each other's partial beacons.
Suggest using smart quotes over straight quotes

Mechanical: they will perform a "catch up" protocol
Suggest using smart quotes over straight quotes

Mechanical: that leaves the Drand node's network.
Suggest using smart quotes over straight quotes

Mechanical: the partial beacons that "leak" out from Drand nodes under attack
Suggest using smart quotes over straight quotes

Under ”Corruption of the Drand network”
Mechanical: (i.e., they can't derive future beacons)
Suggest using smart quotes over straight quotes

Typo: long term private key of each compromised node.
s/long term/long-term

Mechanical: Given a "periodical" resharing with more nodes,
Suggest using smart quotes over straight quotes

Mechanical: recovers from the attacker's intrusion
Suggest using smart quotes over straight quotes

Mechanical: the attacker's stolen share is invalid
Suggest using smart quotes over straight quotes

Under ”Distributed Key Generation Ceremony”
Consistency of subhead case

Awkward: Given the necessity of time for achieving the synchronous network the assumption that means these nodes risk getting excluded from the final group that gets shares at the end.
Not clear on what is being said here

Mechanical: noted as "qualified".
s/"qualified". /“qualified.”
Suggest using smart quotes over straight quotes

Under ”Corruption attacks”

Mechanical: An attacker only "controls" less
Suggest using smart quotes over straight quotes

Typo: is similar to the scenario 2
s/scenario 2/Scenario 2

Mechanical: since even before the DKG: an attacker
Suggest omit colon
”since even before the DKG an attacker”

Typo: an attacker can know before the end of the DKG the whole randomness chain (since he can see the honest shares before sending them).
s/he/they
Avoid gendered pronouns

Under “Broadcast Channel Assumption”

Mechanical: different polynomials for example - see here for one example of such an attack.
Suggest ”different polynomials; for example, see here for one example of such an attack.”

Mechanical: different than the other half, a "split".
Suggest using smart quotes over straight quotes

Mechanical: Remediation to keep assumption true - (not implemented yet):
Suggest remove dash
”Remediation to keep assumption true (not implemented yet)”

Typo: non equivocation
s/non equivocation/non-equivocation

Suggestion: ”A practical step towards ensuring non equivocation during the DKG phase is to move to a libp2p pubsub overlay”
Should we link out to libp2p on this reference?

https://beta.drand.love/concepts/specification/

Under ”Drand specification”

Mechanical: Drand (pronounced "dee-rand")
Suggest using smart quotes over straight quotes

Consistency: Servers running drand can be linked
Is it Drand or drand?

Consistency: This document is a specification of the drand protocols.
Is it Drand or drand?

Under “Drand node”

Mechanical: in the randomness generation and that can reply to public request API.
Suggest add comma between generation, and that

Awkward: The following representation is what gets embedded in group configuration file, what drand nodes knows about other drand nodes:
Clarification: Is the representation what gets in embedded a the/a group config file?

Consistency: Public Key
Consistency of case use, immediately called public key in this definition

Under ”Group configuration”
Clarification/mechanical: Group configuration: A structure that contains all the necessary information about nodes that form a drand network:
Suggest ”A group configuration is a structure containing all the necessary information about nodes that form a drand network. This information includes:…”

Mechanical: Period: The period at which the network creates new random value
Suggest adding period to the sentence
“Period: The period at which the network creates new random value.”

Mechanical: This field is nil if the network hasn't
Suggest using smart quotes over straight quotes

Awkward: This field is empty if the network has never reshared yet.
Suggest: ”This field is empty if the network has not yet reshared.”

Consistency: See Types of Distributed Key Generation below for more info.
Consistency of case use, the section linked to uses lower case
Suggest “See typos of distributed key generation below…”

Under ”Group Configuration Hash”
Consistency of subhead case use

Clarification: the blake2b hash function
Should we link out to this reference?

Under ”Wireformat & API”
Mechanical: ”Wireformat & API”
s/Wireformat & API/”Wireformat and API”

Suggestion: protobuf
Spell out protocol buffers on first reference

Under ”Drand Modules”
Consistency of subhead case use

Consistency: Generating public randomness is the primary functionality of drand.
Is it Drand or drand?

Under ”Setup phase”
Consistency: To setup a new network, drand uses the notion
Is it Drand or drand?

Mechanical: pushes the group configuration back to participants and then starts the distributed key generation phase
Add comma between participants, and then…

Clarification: for starting the Distributed Key Generation.
Add (DKG) for reference
Suggest ”for starting the Distributed Key Generation (DKG).”

Clarification: order of the public keys as slice of bytes.
”as a slice of bytes.” ?? I’m not clear

Typos: As soon as a participant receives this information from the coordinator, then he must be ready to accept DKG packets, but he does not start immediatly sending his packet. After the coordinator has successfully sent the group to all participants, he starts sending the first packet of the distributed key generation.
Suggest: ”As soon as a participant receives this information from the coordinator, then they must be ready to accept DKG packets, but they do not start immediately sending their packet. After the coordinator has successfully sent the group to all participants, they starts sending the first packet of the distributed key generation.”
Avoid using gendered pronouns, suggest using participant’s titles over pronouns for clarification

Under ”Distributed Key Generation”
Consistency of subhead case use

Mechanical: The distributed key generation protocol implements the Pedersen's protocol, best described from Gennaro's paper :
Suggest using smart quotes over straight quotes

Mechanical: Note that the nodes that finish the protocol successfully, called "qualified nodes"
Suggest using smart quotes over straight quotes

Mechanical: Note that the nodes that finish the protocol successfully, called "qualified nodes" may be a subset of the nodes that started it: there can be nodes offline
Suggest using semi-colon instead of colon
”Note that the nodes that finish the protocol successfully, called “qualified nodes” may be a subset of the nodes that started it; there can be nodes offline…”

Under “Types of distributed key generation”

Mechanical: This group wants to "re-share their shares" to a second group of nodes B.
Suggest using smart quotes over straight quotes

Typo: group B. the Note that a node can be in group A and B as well.
Suggest ”group B. Note that a node can be in group A and B as well.”

Typo: the cryptography section explains in details
s/details/detail

Under ”Phase transitions”

Typo: Node 1 starts the DKG at time T, so he is in DealPhase and sends its deals to every other node.
s/he is/they are
Avoid using gendered pronouns

Mechanical: Node 1's ticker ticks at time T+30s
Suggest using smart quotes over straight quotes

Mechanical: Node 1's ticker ticks at time T+60s
Suggest using smart quotes over straight quotes

Typo: Drand uses a /fast sync/ mode that allows to make the setup phase proceeds faster at the cost of higher bandwidth usage.
s/proceeds/proceed

Typo: In more details:
s/details/detail

Consistency: nodes go into the ResponsePhase
Nodes were capitalized in the listed section above, so suggest capitalizing in this list as well

Mechanical: nodes go into the FinishPhase as soon as they received "success" responses from all other nodes (i.e. all deals were correct) OR
Suggest ”Nodes go into the FinishPhase as soon as they received “success” responses from all other nodes (i.e., all deals were correct) OR…”
Suggest using smart quotes over straight quotes

Typo: The beacon chain starts at a pre-defined time
s/pre-defined/predefined

Typo: The phases and the respective messages are described in more details in the following sections.
s/details/detail

Under ”Deal Phase”
Consistency of subhead case use

Mechanical: In this first phase, nodes sends their "deal"
Suggest using smart quotes over straight quotes

Clarification: The share is encrypted via ECIES
Suggest spelling out acronym on first reference
”The share is encrypted via Elliptic Curve Integrated Encryption Scheme (ECIES) using…”

Mechanical: A node bundles all its deals into a DealBundle that is signed.Here is the protobuf wire
Suggest: A node bundles all its deals into a DealBundle that is signed. Here is the protobuf wire…”

Under ”Response Phase”
Consistency of subhead case use

Mechanical: Each node then sends a Response for each
Missing code formatting: Response

Mechanical: Each node then sends a Response for each share they have received and /should/ have received: if there is a missing share for a node, this node will send a response for it as well.
Suggest replacing colon with em-dash
”Each node then sends a Response for each share they have received and /should/ have received—if there is a missing share for a node, this node will send a response for it as well.”

Mechanical: A Response contains both the "share holder" index and the "dealer index" as well as a status.
Suggest using smart quotes over straight quotes

Under “Justification Phase”
Consistency of subhead case use

Mechanical: For each "complaint" responses (i.e. status == false)
Suggest: “For each “complaint” responses (i.e., status == false)”
Suggest using smart quotes over straight quotes

Under ”Finish Phase”
Consistency of subhead case use

Awkward: This configuration file is now representative of functional current drand network.
Suggest: This configuration file is now representative of the functional current drand network.

Under ”Randomness generation”
Mechanical: The randomness generation protocol works in its simple form by having each node periodically broadcasts a “partial” signature over a common input. Each node waits to receive these partial signatures, and as soon as one has a subset of at least a “threshold” (parameter
Suggest using smart quotes over straight quotes

Under ”Randomness Generation Period”
Consistency of subhead case use

Consistency: The drand network outputs a new random beacon each period and associates a beacon “round” to a specific time.
Is it Drand or drand?

Mechanical: The drand network outputs a new random beacon each period and associates a beacon "round" to a specific time.
Suggest using smart quotes over straight quotes

Under ”Beacon Chain”
Consistency of subhead case use

Mechanical: At each new round, a node creates a PartialBeacon with the current round number, the previous signature and the partial signature over the message:
Suggest adding comma between signature, and the partial signature

Mechanical: To determine the "current round" and the "previous signature", the node loads its last generated beacon and sets the following:
Suggest using smart quotes over straight quotes

Clarification: More information in the following section.
Suggest: ”More information is available in the following section.”

Under ”Partial Beacon Broadcast”
Consistency of subhead case use

Mechanical: Once the new beacon is created, the node verifies its signature, loads the last saved beacon from the database and checks if the following routine returns true:
Suggest adding comma after database, and checks it

Under ”Catchup mode”
Mechanical: Under these circumstances, nodes can enter a "catchup" mode.
Suggest using smart quotes over straight quotes

Mechanical: If that is not the case, that means there wasn't a beacon generated in time in the previous round OR this node didn't receive enough partial beacons for some reason.
Suggest using smart quotes over straight quotes

Mechanical: If a node receives a valid beacon for the requested round, that means the network is still producing randomness but for some reason (perhaps a network issue), the node didn't receive correctly the partial beacons.
Suggest using smart quotes over straight quotes

Mechanical: If the sync didn't return any more recent valid beacons, that probably means the network is stalled.
Suggest using smart quotes over straight quotes

Mechanical: Network Catchup: At some point, there will be enough honest & alive nodes
s/honest & alive/honest and alive

Clarification: In this situation, each node must produce their partial beacons until the current round as fast as possible.
Not clear what is meant here

Mechanical: When the honest nodes are back online, it's time T = 40+70 = 110
Suggest using smart quotes over straight quotes

Mechanical:

  • They all see that all nodes only have the beacon round 2 as the "head" of the chain
  • Therefore, they go into "catchup mode"
    Suggest using smart quotes over straight quotes

Mechanical: Nodes send a partial beacon for round 3 at time T = 100 (+ some delta for syncing)
s/+ some delta/plus some delta

Under ”Syncing”
Consistency: When a drand node is offline, restarted or detects a halt in the chain's progress (previous section)
Is it Drand or drand?

Mechanical: When a drand node is offline, restarted or detects a halt in the chain's progress (previous section)
Add comma after restarted, or detects…
Suggest using smart quotes over straight quotes

Mechanical: The client stops the syncing process (closes the RPC call) when the last valid beacon's round returned is equal to the current round.
Suggest using smart quotes over straight quotes

Under ”Cryptographic specification”
Under ”Drand Curve”
Consistency of subhead case use

Formatting error: Hash to curve:The hash-to-curve algorithm is derived from the RFC v7.
Needs a carriage return

Mechanical: Hash to curve:The hash-to-curve algorithm is derived from the RFC v7.
Suggest: Hash to curve: The hash-to-curve

Consistency: The BLS12-381 specification specifies a base point, or generator, for both groups that drand uses.
Is it Drand or drand?

Mechanical: Scalar A scalar of the field is serialized in 32 bytes in big endian format.
Suggest: “Scalar: A scalar of the…”

Mechanical: The first point in the list is the free coefficient of the polynomial,I.e.:
Suggest: “The first point in the list is the free coefficient of the polynomial, i.e.,”

Under ”Distributed Public Key”
Consistency of subhead case use

Under ”Beacon Signature”
Consistency of subhead case use

Typo: ciphersuite
s/ciphersuite/cipher suite

Typo: A beacon signature can be verified using the first coefficient of the distributed public key stored in the group configuration:
s/configuration:/configuration.

Under ”Partial Beacon Signature”
Consistency of subhead case use

Mechanical: However, the node's index is prefixed on the first two bytes to the signature.
Suggest using smart quotes over straight quotes

Mechanical: We need to increment the signer's index since the evaluation point 0 corresponds to the public key but no nodes posseses the private key.
Suggest using smart quotes over straight quotes

Typo: but no nodes posseses the private key.
s/posseses/possesses

Under ”Distributed Key Generation”
Consistency of subhead case use

Mechanical: Notation: For the sake of readability, this section uses the term "dealer" to designate a node that produces a share and a "share holder" to designate a node that receives a share from a dealer.
Suggest using smart quotes over straight quotes

Under ”Input”
Typo: The longterm private key of the node
s/longterm/long-term

Under ”Setup”
Mechanical: Private Polynomial:In order to create the shares, Each node locally creates
Suggest ”Private Polynomial: In order to create the shares, each node locally creates…”

Mechanical: Share Status: Each node must maintain a matrix of "status" of each share distributed by each dealer. A status is either "valid" or "invalid".
Suggest using smart quotes over straight quotes
Suggest “A status is either “valid” or “invalid.”

Under ”Deal Phase”
Consistency of subhead case use

Mechanical: During this phase, each node must create a valid encrypted "share" to each other node.
Suggest using smart quotes over straight quotes

Clarification: and the share serialized as described in the curve section.
Should we link out to the curve section referenced?

Under ”Response Phase”
Consistency of subhead case use

Typo: Creation of the responses: Each node sends a response for each of the shares he has or should have received.
s/he has/they have
Avoid gendered pronouns

Mechanical: In other words, each node at index I looks at all shares' index I for all dealers and creates a response with the same status.
Suggest using smart quotes over straight quotes

Mechanical: Each node bundles these responses into a ResponseBundle, signs it and wraps it into a AuthResponseBundle and broadcasts that packet.
Suggest adding comma after AuthResponseBundle, and broadcasts…

Under ”Justification Phase”
Consistency of subhead case use

Mechanical: Deciding upon next phase: There is a simple rule to decide if a node can go into the FinishPhase already at this point: If all shares of all dealers are "valid", then the node can go into the FinishPhase.
Suggest using smart quotes over straight quotes

Under ”Finish Phase”
Consistency of subhead case use

Under ”Resharing”
Consistency: The bulleted list under this section should be capitalized to be consistent with other bulleted lists on the site

Typo: There are few differences in the logic w.r.t to a fresh DKG
s/w.r.t /with regards to

Mechanical: NOTE:The length
Suggest: ”NOTE: The length”

Under ”Distinction of Roles”
Consistency of subhead case use

Mechanical: Note a node can now have two indexes if it belongs to both group A and group B.
Suggest: Note: a node can…

Under ”Deal Phase”
Consistency of subhead case use

Under ”Response Phase”
Consistency of subhead case use

Mechanical: A node that is only in group A, i.e. a node that is leaving the network, doesn't need to process the deals at all (since they are not going to be part of the new network, no shares are meant for it).
s/i.e. a/i.e., a
Suggest using smart quotes over straight quotes

Under ”Justification Phase”
Consistency of subhead case use

Mechanical: At this point, nodes that are only in group A and not in group B, i.e. leaving the network can abort the protocol now: their contribution is not needed anymore.
s/i.e. leaving/i.e., leaving

Mechanical: Validating Justifications: The logic is mostly the same, except that each node needs also to validate that the dealer is indeed "re-sharing its share": the dealer used the commitment of its share as the free coefficient of the public polynomial he advertised during the deal phase.
Suggest using smart quotes over straight quotes

Typo: the dealer used the commitment of its share as the free coefficient of the public polynomial he advertised during the deal phase.
s/he/they
Avoid using gendered pronouns

Under ”Finish Phase”
Consistency of subhead case use

Mechanical: in other words, the distributed key doesn't change.
Suggest using smart quotes over straight quotes

https://beta.drand.love/build/#fetching-randomness-over-http

Under ”Build”
Mechanical: For help running a Drand network, see the Operator's Guide .
Suggest using smart quotes over straight quotes

Under ”Fetching randomness over HTTP”
Mechanical: All that's required is the address of the HTTP interface and way to fetch from HTTP, e.g. curl:
s/e.g. curl:/e.g., curl:
Suggest using smart quotes over straight quotes

Under ”Using DrandJS”
Suggestion: For more details on the procedure and instructions on how to use it, refer to the readme.
s/readme/DrandJS GitHub repo.

Under ”Using the drand command to fetch randomness’
To do so, you'll need the group configuration file,
Suggest using smart quotes over straight quotes

https://beta.drand.love/operate/

Under ”Operators”
Consistency: This section is called

  • Operate in Navigation
  • the Operator’s Guide in a link from another section
  • Operators when you navigate to the page
    Suggest picking one name for this section and making it consistent

Mechanical: For information about consuming the randomness from a drand network, see the Builder's Guide instead.
Suggest using smart quotes over straight quotes

https://beta.drand.love/operate/deploy/#setup

Under ”Deploy a Drand Network Node”
Consistency of subhead case use

Under ”Setup”
Mechanical: 3. Leader starts the command as a coordinator & every participant connect to the coordinator to setup the network
s/coordinator & every/coordinator and every

Typo: drand also offers a docker image to run the setup.
s/drand/Drand
s/docker/Docker

Typo: You can find the information for running with docker here .
s/docker/Docker

Mechanical: If you have not already installed drand, please see the installation guide
Suggest adding a period after installation guide.

Under ”Long-Term Key”
Consistency of subhead case use

Mechanical: of the drand daemon, execute
Add colon after daemon, execute:

Awkward: In case you need non-secured channel,
Suggest ”In case you need a non-secured channel,”

Under ”Starting drand daemon”
Typo: within a screen / tmux session, or with the -d option enabled for the docker commands.
s/docker/Docker

Suggestion: These allow specifying the interface and/or port for drand to listen on. —private-listen is the primary listener used to expose a GRPC service for inter-group-member communication. —public-listen exposes a public, limited HTTP service designed to be CDN friendly and providing information for drand users.
Break these out for easier readability:

“These allow specifying the interface and/or port for drand to listen on.

—private-listen is the primary listener used to expose a GRPC service for inter-group-member communication.
—public-listen exposes a public, limited HTTP service designed to be CDN friendly and providing information for drand users.”

Under ”With TLS”
Mechanical: To get TLS certificates for free you can use, for example, Let's Encrypt with its official CLI tool EFF’s certbot .
Suggest using smart quotes over straight quotes

Mechanical: TLS setup: Nginx with Let's Encrypt
Suggest using smart quotes over straight quotes

Typo: Such a setup greatly simplifies TLS management issues (renewal of certificates, etc).
s/etc/etc.

Mechanical: We provide here the minimum setup using Nginx and certbot - make sure you have both binaries installed with the latest version; Nginx version must be at least >= 1.13.10 for gRPC compatibility.
Suggest splitting into two sentences:
“We provide here the minimum setup using Nginx and certbot. Make sure you have both binaries installed with the latest version; Nginx version must be at least >= 1.13.10 for gRPC compatibility.”

Awkward: Note: you can change
Suggest “Note that you can change the following:”

Consistency: Capitalize the numbered list items

Mechanical: These ports, and interfaces should be specified with flags.
Remove comma after ports

Mechanical: Note that we're using the loopback address of 127.0.0.1, which is not publicly accessible.
Suggest using smart quotes over straight quotes

Under ”TLS setup: Apache for HTTP”
Typo: The equivalent Apache config block to the NGinX config
s/NGinX/Nginx

Under ”Without TLS”
Mechanical: If you're running without TLS, your
Suggest using smart quotes over straight quotes

Under “Test the connection to a node”
Awkward: where address is the gRPC listen address as listed in the public key.
Incomplete sentence/thought

Under ”Run the setup phase”
Mechanical: —threshold indicates the threshold the network should use, i.e. how many nodes amongst the total needs to be online for the network to be live at any point.
s/i.e. how/i.e., how

Mechanical: —period indicates the period of the randomness beacon to use. It must be valid duration as parsed by Golang's
Suggest using smart quotes over straight quotes

Typo: —secret indicates the secret that the coordinator uses to authenticate the nodes that wants to participate in the network.
s/nodes that wants/nodes that want

Consistency: —connect is the host:port address of the leader. By default, drand will connect to the leader by using tls. If you are not using tls, use the —tls-disable flag.
s/tls/TLS

Typo: This method offers some basic security, however drand will provide more manual checks later-on
s/later-on/later on

Typo: However, since the set of participants is public and consistent accross
s/accross/across

Mechanical: By default drand takes its entropy for the setup phase from the OS's entropy source
Suggest using smart quotes over straight quotes

Mechanical: where is the path to the executable which produces the user's random data on STDOUT.
Suggest using smart quotes over straight quotes

Clarification: STDOUT
Suggest spell out acronym on first reference
standard output (STDOUT)

Mechanical: As a precaution, the user's randomness is mixed by default with
Suggest using smart quotes over straight quotes

Under “Distributed Key Generation”
Consistency of subhead case use

Under “Randomness Generation”
Consistency of subhead case use

Mechanical: one only needs the distributed public key generated during the setup phase, the period and the genesis time of the chain.
Suggest adding comma after period, and the genesis

Mechanical: Use the—tls-cert flag to specify the server's certificate if needed.
Suggest using smart quotes over straight quotes

Mechanical: Daemon downtime & Chain Sync:
s/downtime & Chain/downtime and chain sync:

Mechanical: If for some reason drand goes down for some time and then comes back up, the drand nodes will enter a "catchup phase,"
Suggest using smart quotes over straight quotes

Under “Control Functionalities”
Consistency of subhead case use

Mechanical: Drand's local administrator interface provides further functionality,
Suggest using smart quotes over straight quotes

Under “Long-Term Private Key”
Consistency of subhead case use

Under “Long-Term Public Key”
Consistency of subhead case use

Under “Private Key Share”
Consistency of subhead case use

Mechanical: The "gid" simply indicates which group of bls12-381 the data belongs to.
Suggest using smart quotes over straight quotes

Under “Chain Information”
Consistency of subhead case use

Under “Updating Drand Group”
Consistency of subhead case use

Mechanical: Drand allows for "semi-dynamic" group update
Suggest using smart quotes over straight quotes

Consistency: The bulleted list under this section should be capitalized to be consistent with other bulleted lists on the site

Mechanical: This is similar to the procedure for the initial DKG, with the additional —transition flag that indicates that we're resharing to a new group.
Suggest using smart quotes over straight quotes

Under “Metrics”
Typo: allow triggering golang garbage collection
S/golang/Golang

Typo: prometheus metrics at
s/prometheus/Prometheus

Typo: If desired, prometheus metrics can be
s/prometheus/Prometheus

https://beta.drand.love/operate/metrics/#local-metrics

Under “Drand Metrics”
Consistency of header case use

Typo: Drand uses prometheus
s/prometheus/Prometheus

Under “Local Metrics”
Consistency of subhead case use

Mechanical: This page includes
Suggest adding colon after includes:

Typo: metrics collected by prometheus
s/prometheus/Prometheus

Under “Shared Group Metrics”
Consistency of subhead case use

Typo: This will only inlclude the drand beacon
s/inlclude/include

Mechanical: and helping operators understand where problems originate. .
Remove second period

Under ”Drand Command Line Tools”
Consistency of header case use

Mechanical: Drand's main functionality is provided
Suggest using smart quotes over straight quotes

Under “Binary Releases”
Consistency of subhead case use

Under “Source Code”
Consistency of subhead case use

Mechanical: You'll also need the make command available.
Suggest using smart quotes over straight quotes

Mechanical: If you'd prefer not to install
Suggest using smart quotes over straight quotes

Under “Usage”
Mechanical: If you're setting up a Drand network deployment,
Suggest using smart quotes over straight quotes

Mechanical: flag after the subcommand name, e.g.:
s/, e.g.:/,e.g.,:

Under “drand generate-keypair”
Mechanical: when starting the daemon, for example if you've set up
Suggest using smart quotes over straight quotes

Under “drand start”
Mechanical: session, or otherwise "daemonized" using
Suggest using smart quotes over straight quotes

Under “Endpoint configuration”
Mechanical: will bind to the address used when generating the node's keypair .
Suggest using smart quotes over straight quotes

Typo: Note that the addresss associated
s/addresss/address

Under “TLS Configuration”
Consistency of subhead case use

Under “drand share”
Mechanical: It may also be used after the network is running to "re-share" the key material,
Suggest using smart quotes over straight quotes

Typo: For details about to running the initial DKG, see the Deployment Guide .
Suggest: “For details about running the initial DKG, see the Deployment Guide .”

Consistency: When re-sharing, this may be distinct from the secrets used for any prior DKG rounds.
There’s a whole section on resharing, so should it be re-sharing or resharing?

Mechanical: This must be a string that's parse-able by Golang's
Suggest using smart quotes over straight quotes

Mechanical: for example "30s" or "1m".
Suggest using smart quotes over straight quotes
s/"1m"./“1m.”

Consistency: When re-sharing to nodes
There’s a whole section on resharing, so should it be re-sharing or resharing?

Under TIP
Mechanical: By default, external entropy sources are mixed with Golang's
Suggest using smart quotes over straight quotes

Mechanical: which is useful during testing and debugging to allow a reproducible "random" value,
Suggest using smart quotes over straight quotes

Under “drand util”
Mechanical: attempts to contact the node at the given address to see if it's online and responding to requests.
Suggest using smart quotes over straight quotes

Mechanical: deletes all distributed information (group file, key share, random beacon state, etc)
s/etc)/etc.,)

Under “Supplemental Tools”
Consistency of subhead case use

Mechanical: , you'll run one of:
Suggest using smart quotes over straight quotes

Under “drand-client”
Mechanical: command is a standalone Drand client that's optimized
Suggest using smart quotes over straight quotes

Under “drand-relay-http”
Typo: flag is convenient, running a seperate relay process
s/seperate/separate

https://beta.drand.love/project/community/

Typos: The Drand project is still in it's early stages, and we're building ways to interact with the community as we continue to build everything.
s/it's/its
Suggest using smart quotes over straight quotes

Mechanical: In the next few weeks we'll open
Suggest using smart quotes over straight quotes

Under “Contributing”
Under “Documentation”
Mechanical: If you've got a feature request, or want something clarifiying,
Suggest using smart quotes over straight quotes

Typo: or want something clarifiying,
s/clarifiying,/ clarified,

Mechanical: If you'd like to test upcomming documentation,
Suggest using smart quotes over straight quotes

Typo: upcomming
s/upcomming/upcoming

Awkward: If you’d like to test upcomming documentation, take a look at beta.drand.love , that’s the staging area before new content gets pushed into the main drand.love website.
Suggest: If you’d like to test upcoming documentation, take a look at beta.drand.love , the staging area before new content gets pushed into the main drand.love website.

Under “Submitting issues”
Typo: All issues can be submitted through Github .
s/Github/GitHub

Add user mailing list

We now have an announcement mailing list for LoE users (posts only be LoE secretariat, meant to announce any changes impacting downstream users). Can be joined at https://groups.google.com/g/leagueofentropy-users. We should list this somewhere prominent on the website.

The only reason we're using Google Groups is because it was already in use for the LoE. If someone has another preference, there is still time to change.

Treat root of website as more of a homepage, rather than a documentation platform.

Given this will be the main web presence for drand and not just a documentation subdomain, it would be great if the homepage were a little more engaging.

I don't have a clear idea of how to make this happen but options include:

  • Some more intro text, rather than a short paragraph followed by docs links
  • A widget showing the current drand random value
  • More images (e.g. a link to the LoE using its logo, as the reference deployment)
  • Embedding Nicolas' drand talk as an intro to the project

Add finialized drand logo.

We need to get the new logo on there ASAP to give it some identity and make it feel a little more professional. The dice emoji (while great) has served it’s purpose! The “drand” lettering without the logo next to the dice is not looking great as it’s not spaced/aligned correctly and is low resolution. We can drop in the latest design round for now and replace when the have the finals.

Add section to homepage - drand users

Logos of (high profile?) organisations that are using drand in their applications. This should give people thinking about using drand more confidence to do so.

Dissociate this repo from ipfs/ipfs-docs.

I just noticed that if you open a PR against this repo, github uses the master branch of ipfs/ipfs-docs as the base branch. I guess this is because we forked this repo off of ipfs-docs.

This SO answer says we can contact github support to dissociate from the ipfs repo, or we could recreate this one as a new repo.

Link search bar and Docsearch.

Implementing Algolia search into this site will vastly improve the UX. There's already space in config.js to do so:

},
  themeConfig: {
    //   TODO: create Algolia account for Drand an throw API key into here.
    // algolia: {
    //   apiKey: 'e6dcd48beb5db629bf77c892d38fa091',
    //   indexName: 'ipfs'
    // },
    betaTestFormUrl:

We need to:

  • Create a Docsearch account.
  • Get an open-source license.
  • Throw the API key into here.

Enhance LoE homepage section

Suggestion from @nikkolasg:

(1) a box to go back and forward to see it's a chain and (2) clicking on it could show the raw JSON output of the response so ppl have an idea of what it looks like.

Suggestion from @daviddias:

how the list of partners is presented (ideas: have carousel of logos, hyperlink to their own websites)

Add a "Tweet it" button to our blog entries

Could we add a "Tweet it" button to our blog entries?

This should be as easy as:

<a class="twitter-share-button"
  href="https://twitter.com/intent/tweet?text=Checkout%20this%20new%20drand%20blog%20post%20about%20$(name of blog post):%20$(url of blog post)">Tweet it</a>

But IDK exactly how to get the URL and the Name into there.

Homepage feedback

Here's some feedback for the homepage that we can do easily and quickly to get it looking and working better for us:

  1. We need to get the new logo on there ASAP to give it some identity and make it feel a little more professional. The dice emoji (while great) has served it's purpose! The "drand" lettering without the logo next to the dice is not looking great as it's not spaced/aligned correctly and is low resolution. We can drop in the latest design round for now and replace when the have the finals.
  2. The getting started section should prioritise ways of consuming the service. Eventually the number of users consuming drand as a service will far outnumber operators so we should privilege access to this information. The call to action for operators should be moved to the "Get Involved" section.
    • We only have client libraries for golang and JS right now, so we need to give the docs for the HTTP API enough attention since this is the only solution for anyone wanting to use drand with any other programming language.
  3. The banner text needs some serious work! This needs to be short, descriptive and exciting. I came up with "Distributed Randomness Beacon. Verifiable, unpredictable and unbiased random numbers as a service." - could do with some tweaks I imagine but reads much better than what we have there atm right?
  4. Link colours need to be something sensible and ideally taken from the pallette in the logo.
  5. The favicon needs to be swaped out for the drand logo
  6. The page title for the homepage needs to be something more like <title>drand - distributed randomness beacon</title>
  7. We need to liven the design up a little to draw people in. Right now it feels like I'm looking at a tractor.
  8. The current (live updating) randomness value needs to be on the homepage.

I'm by no means a designer but I knocked up a couple of possible homepage designs that incorporate most of this feedback and would also resolve #14. I've just dropped eveything on the page by eye so the paddings and alignments are all off but you get the idea:

hero

Alternatively we could go a more simple route. Either way I think we could use the header for the internal pages:

alt

I'm not sold on the buttons, but @akrych might be able to help me tidy them up a little 🙏?

Some other rough design things I'd really like to see on the homepage:

  1. A nod to the "beacon" element of drand, either in the background for the hero or an icon or something. I was thinking something like the RSS feed icon.
  2. Illustrations/icons for the HTTP API and the Client Libraries. I imagine there's something we have already that could be re-coloured/re-purposed for drand.
  3. A generic glitchy background like https://docs.filecoin.io/images/main-page-background.png that could be used on other pages, in presentations etc.
  4. I'd love an illustration for the different operators, their entropy sources (like I love the idea of entropy from cloudflare's lava lamp wall) and how it's converted into a randomness round and consumed by clients. THIS NEEDS DEFINING BETTER!
  5. I read somewhere that someone suggested putting @nikkolasg's slides on the homepage. It would be great to get that presentation re-recorded with some on-brand slides.

Blog shows only page 1 of list of blogs

When pressing "Next" at the bottom of the list of blogs at: https://drand.love/blog/ it gets to an empty page and doesn't show any more items. The list at: https://github.com/drand/website/tree/master/docs/blog shows that we should have 12 blogposts in total, but page 1 only shows 10. So the second page shouldn't have been empty.

Not sure what's wrong here (but haven't looked too hard either:). @johnnymatthews (or perhaps @jsoares ) any ideas? Can you help?

Review Drand docs, create new map for docs structure.

This repository was created a while ago and hasn't seen many updates since its initial launch. The Drand project intends to reach more users and developers than those originally targeted when this project first started.

With this in mind, let's review all the documentation within this site and create a plan to either update or deprecate pages. On top of that, let's create a general hierarchy/plan for the information structure of this repo.

Tasks

  • Create basic structure map/plan for Drand docs.
  • Review existing content and see if it fits anywhere into the new map.
    • Existing pages may need to be split into multiple sections, updated, or deprecated if they are no longer valid.
    • Notes for individual pages can be left in this issue for safe-keeping.

This issue can serve as a dumping ground for ideas, plans, and discussion. This issue can be closed once we have a agreed upon a map for Drand docs.

Prioritise ways of consuming drand, rather than operating nodes.

The getting started section should prioritize ways of consuming the service. Eventually the number of users consuming drand as a service will far outnumber operators so we should privilege access to this information. The call to action for operators should be moved to the "Get Involved" section.

We only have client libraries for golang and JS right now, so we need to give the docs for the HTTP API enough attention since this is the only solution for anyone wanting to use drand with any other programming language.

Update partner list

Prior to the website moving out of beta (#20), we should update the list of partners (on the homepage).

Current partners include:

  • ChainSafe
  • cLabs
  • Cloudflare
  • EPFL C4DT
  • EPFL DEDIS
  • Emerald Onion
  • Ethereum Foundation
  • IC3
  • Kudelski Security
  • Protocol Labs
  • PTisp
  • Tierion
  • UCL
  • University of Chile

This will very likely be the final list for launch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.