You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,12 +43,17 @@ Building with this flag results in a slower performance, it is therefore recomme
43
43
CGO_CFLAGS="-O2 -D__BLST_PORTABLE__" go build
44
44
```
45
45
46
-
If you're cross-compiling, you need to set the `CC` environment variable to the target C cross-compiler and set `CGO_ENABLED` to `1`.
47
-
You also need to set the `GOOS` and `GOARCH` variables.For example, to compile the test program for linux arm64:
46
+
If you're cross-compiling, you need to set the `CC` environment variable to the target C cross-compiler and set `CGO_ENABLED` to `1`. For example, to compile the test program for linux arm64:
48
47
49
48
```
50
49
GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 go build
51
50
```
51
+
52
+
#### Vendoring
53
+
54
+
When using the `go mod vendor` command in your project, [a known issue](https://github.com/golang/go/issues/26366) with the Go vendoring tool prevents cgo dependencies from being copied into your vendor directory. This results in build errors related to the Flow crypto package. External vendoring tools that do copy the entire package files can be used instead of the Go command to resolve the issue.
55
+
56
+
52
57
### Build without cgo
53
58
54
59
It is possible to build without cgo but this requires disabling all primitives based on the BLS12-381 curve (BLS signature, BLS threshold signature, BLS-based DKG, BLS-based SPoCK).
@@ -63,7 +68,7 @@ CGO_ENABLED=0 go build -tags=no_cgo
63
68
64
69
## Algorithms
65
70
66
-
### Hashing and Message Authentication Code:
71
+
### Hashing and MAC:
67
72
68
73
`crypto/hash` provides the hashing and MAC algorithms required for Flow. All algorithm implement the generic interface `Hasher`. All digests are of the generic type `Hash`.
69
74
@@ -99,7 +104,7 @@ All signature schemes use the generic interfaces of `PrivateKey` and `PublicKey`
99
104
* verification of an aggregated signature of multiple messages under multiple public keys.
100
105
* batch verification of multiple signatures of a single message under multiple
101
106
public keys, using a binary tree of aggregations.
102
-
* SPoCK scheme based on BLS: verifies two signatures have been generated from the same message that is unknown to the verifier.
107
+
* SPoCK scheme based on BLS: verifies two signatures have been generated from the same secret that is unknown to the verifier.
103
108
104
109
### PRNG
105
110
@@ -132,5 +137,5 @@ All supported Distributed Key Generation protocols are [discrete log based](http
132
137
* implements a complaint mechanism to qualify/disqualify the dealer.
133
138
* Joint Feldman (Pedersen) (requires cgo)
134
139
* distributed generation.
135
-
* based on multiple parallel instances of Feldman VSS Qualwith multiple dealers.
140
+
* based on parallel instances of Feldman VSS Qual, each with a different dealer.
136
141
* same assumptions about the communication channels as in Feldman VSS.
0 commit comments