Nishant Das
70e8243450
Update p2p-interface.md
2022-03-02 12:39:21 +08:00
Aditya Asgaonkar
7f31c80b8f
Fix lint & CI
2022-03-01 11:47:45 -08:00
Aditya Asgaonkar
4fbe162655
Add on_attester_slashing() and related test
2022-03-01 11:42:49 -08:00
Danny Ryan
3f2d5ecda7
Merge pull request #2838 from ethereum/revert-dupe-condition
...
revert removal of aggregate deduplication condition from #2183
2022-02-28 08:19:45 -07:00
Danny Ryan
03f0f6762a
revert removal of aggregate deduplication condition from #2183
2022-02-25 10:25:27 -07:00
Jacek Sieka
9fb2dd16c1
Ignore attestations voting for the wrong finalized checkpoint
...
When nodes are syncing but have not yet reached the canonical `head`,
they cannot determine whether nodes they are connected to serve a valid
history or are making bogus claims in their `Status` advertisement.
Thus, the best course of action that a client can take is to vote for
its "current" best synced head, regardless of whether it's connected to
peers that claim to have other heads or not.
However, in the p2p spec, we penalize such peers with a `REJECT` - this
should be an `IGNORE` instead because this vote is correct per the spec,
albeit "late" according to the validating clients' view of the chain.
2022-02-11 17:12:13 +01:00
Etan Kissling
20c8d0d641
Update reserved libp2p error documentation
...
The spec reserves the libp2p error code range `[3, 127]` for future use
but actually defines error code `3` as `ResourceUnavailable`. This patch
updates the reserved range to `[4, 127]`.
2022-01-28 00:33:38 +01:00
Alex Stokes
2b45496fe4
clean up unused argument from `phase0`
2022-01-13 11:39:36 -08:00
Hsiao-Wei Wang
8c226013fd
minor fix
2021-12-23 17:32:15 +08:00
Hsiao-Wei Wang
41af639517
PR feedback from @mkalinin
2021-12-23 17:26:48 +08:00
Hsiao-Wei Wang
200ed58dd9
Merge branch 'dev' into ex-ante-tests
2021-12-07 18:29:48 +08:00
Danny Ryan
3a9777eebc
Update specs/phase0/fork-choice.md
2021-12-02 14:00:06 -07:00
Aditya Asgaonkar
0d8fab3986
Apply Danny's suggestion
2021-12-02 09:57:28 -08:00
Aditya Asgaonkar
6f3379c7be
Apply HWW's suggestion
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-12-01 20:11:52 -08:00
Aditya Asgaonkar
3e2890bb3e
Apply proposer boost to ancestors correctly
2021-12-01 18:03:40 -08:00
realbigsean
0bc0769767
Simplify logic in calculating proposer score
2021-11-30 15:44:56 -05:00
Hsiao-Wei Wang
d7f6a42729
[WIP] Add ex-ante fork choice test cases
2021-12-01 02:37:22 +08:00
Danny Ryan
395fdd4566
Merge pull request #2730 from ethereum/proposer-score-boost
...
Proposer LMD Score Boosting
2021-11-23 11:39:07 -07:00
Aditya Asgaonkar
2a5c9d8dc5
Set PROPOSER_SCORE_BOOST to 70%
2021-11-23 07:23:59 -08:00
Ben Edgington
44fec310b3
Eth1 block hashes have type Hash32 ( #2693 )
...
* Eth1 block hashes have type Hash32
* Modify other forks as well
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-11-23 08:20:26 -07:00
Aditya Asgaonkar
a0b5a809d5
Apply HWW code's review - fix is_before_attesting_interval
2021-11-23 07:02:04 -08:00
Aditya Asgaonkar
1d835c5198
Apply Danny's code review & suggestions
2021-11-22 14:44:52 -08:00
Danny Ryan
ea09df50db
toc
2021-11-22 11:39:08 -07:00
Danny Ryan
282d85b9e7
simplify on_tick proposer boost update
2021-11-22 11:31:44 -07:00
Danny Ryan
cebe6ba7e7
minor formatting cleanups
2021-11-22 11:31:17 -07:00
Aditya Asgaonkar
88c76abd7f
Apply Danny's code review
2021-11-22 11:12:25 -07:00
Aditya Asgaonkar
859bbf4358
This reverts commit 4c726cdff39a10c5d096b294fb562cfc99c1f068.
2021-11-22 11:12:24 -07:00
Aditya Asgaonkar
3b20e3ea02
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-11-22 11:12:24 -07:00
Aditya Asgaonkar
b0fb861cf5
Make PROPOSER_SCORE_BOOST a percentage value
2021-11-22 11:12:24 -07:00
Aditya Asgaonkar
504d82cc1a
Add datatype to new parameters
2021-11-22 11:12:24 -07:00
Aditya Asgaonkar
47fa6d108a
Add parameter for score boost value
2021-11-22 11:12:24 -07:00
Aditya Asgaonkar
281c1b2d1a
Update validator guide with ATTESTATION_OFFSET_QUOTIENT
2021-11-22 11:12:24 -07:00
Aditya Asgaonkar
2d161b4244
Add proposer score boosting & related tests
2021-11-22 11:12:24 -07:00
Danny Ryan
3d4ece44df
port phase0 forkchocie changes to merge
2021-11-17 18:37:45 -07:00
Danny Ryan
eb00f8f735
cleanup forkchoice tests
2021-11-17 18:24:47 -07:00
Hsiao-Wei Wang
d9e8306c5a
Refactoring
2021-11-13 18:38:53 +08:00
Hsiao-Wei Wang
f643554aa5
Fix issue around on_attestation validation by skipping epoch scope
...
validation if attestation is from a block message
2021-11-13 18:28:05 +08:00
Danny Ryan
cd3d2ce692
working through test issues
2021-11-12 12:43:54 -07:00
Fredrik Svantes
46f7845c42
Fixed link to Attesting in beacon chain responsibilities
2021-11-06 16:28:13 +01:00
Hsiao-Wei Wang
d0bcf294a8
Fix typo
2021-10-28 18:42:16 +08:00
Hsiao-Wei Wang
15a6c48a46
Merge pull request #2518 from ethereum/fix-store-justified-checkpoint
...
Fix fork choice store checkpoints inconsistency issue
2021-08-23 23:41:11 +08:00
Hsiao-Wei Wang
206126644f
More fixes
2021-08-19 23:34:54 +08:00
Hsiao-Wei Wang
59d8ee34f9
Update some "1.0" "2.0" wording
2021-08-19 23:24:04 +08:00
Danny Ryan
4c1156d504
rename eth1 and eth2 throughout specs and readme where reasonable
2021-08-18 17:13:24 -06:00
Hsiao-Wei Wang
6ffc735642
Merge branch 'dev' into fix-store-justified-checkpoint
2021-08-17 21:28:42 +08:00
Hsiao-Wei Wang
43a1617ffa
Ensure that the given PKs are valid PKs + fix typos
2021-08-04 21:25:37 +08:00
Hsiao-Wei Wang
63ca480ea3
Add condition check in `on_tick` to ensure that `store.justified_checkpoint` is a descendant of `store.finalized_checkpoint`
2021-07-14 20:02:28 +08:00
Danny Ryan
bca467c926
fmt
2021-05-21 14:36:43 -06:00
Danny Ryan
5bf01c4298
add resourceunavailable error code with more guidance
2021-05-21 14:24:58 -06:00
protolambda
ff021da551
change line formatting, new refence as config var implicitly takes more space
2021-05-19 17:21:30 +02:00
protolambda
291168e1e3
clarify config/preset separation, address review comments by @djrtwo
2021-05-19 17:15:34 +02:00
protolambda
2c7a68406f
update config section markdown table header
2021-05-18 09:55:25 +02:00
protolambda
e4593d2d0c
update with configs<>presets separation
2021-05-18 09:55:20 +02:00
protolambda
b9ffd8f640
Phase0 constant/config/preset separation
2021-05-18 09:20:41 +02:00
Danny Ryan
110e6b38ee
remove resourceunavailable for more discussion
2021-05-14 08:07:08 -06:00
Danny Ryan
f52f067b8e
add resourceunavailable error code
2021-05-12 08:36:27 -06:00
Danny Ryan
82b7a7be3b
Apply suggestions from code review
...
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Co-authored-by: Jacek Sieka <jacek@status.im>
2021-05-12 08:29:42 -06:00
Danny Ryan
488ceed4f9
add notes about repeatedly failing tos erve blocks as being disconncetable
2021-05-11 11:29:37 -06:00
Danny Ryan
5792afca46
Merge branch 'dev' into bbr-ws
2021-05-11 09:51:57 -06:00
Danny Ryan
c7166a37af
change eth1data block_hash type to Hash32 in phase 0
2021-04-15 06:47:11 -05:00
terence tsao
b2f42bf4d7
broadast -> broadcast
2021-04-05 17:05:59 -07:00
Danny Ryan
ed6358a719
Merge pull request #2248 from hukkinj1/dev
...
Fix list indentation
2021-03-30 07:32:35 -06:00
protolambda
07b7774241
misc. phase1 modules refactor updates
2021-03-30 01:46:02 +02:00
Taneli Hukkinen
b23b16c7b7
Fix list indentation
2021-03-29 01:10:36 +03:00
Alex Vlasov
020895e35d
Typing problems fixes ( #2271 )
...
* Typing problem fixed: `process_block_header` passes `Bytes32()` to `state_root` of `BeaconBlockHeader`, which type is `Root`
* Typing problem fixed in `initialize_beacon_state_from_eth1`: `len` returns an `int` value, while `deposit_count=uint64` of `Eth1Data` has type `uint64`
* Typing problem fixed in `process_rewards_and_penalties`: `numerator` of type `int` passed to `weight` parameter of `get_flag_index_deltas`, which has type `uint64`
* Typing problem fixed in `process_attestation`; `False` passes as `crosslink_success` parameter of `PendingAttestation`, which has type `boolean`. `False` is an instance of `(python.)bool` and is not an instance of `(ssz.)boolean`
* Typing problem fixed: `shard_data_roots` of `ShardTransition` has type `List[Bytes32]`, but its elements are used as if they were `Root` values, e.g. in `process_chunk_challenge` method: passed to `data_root` of `CustodyChunkChallengeRecord` which has type `Root`
* Typing problem fixed in `process_custody_final_updates`: `index` has type `int`, while `validator_indices_in_records` has type `Set[ValidatorIndex]`, so tesing whether `index in validator_indices_in_records` can be risky, depending on implementation details. `ValidatorIndex(index) in validator_indices_in_records` is a safer variant.
* Typing problem fixed: `slashed` parameter of `pack_compact_validator` has type `(python.)bool`, however in `committee_to_compact_committee` a value of `(ssz.)boolean` is passed as a value of the parameter
* Typing problem fixed: `inactivity_scores` is a `List[uint64,...]`, while it is intialized/appended with values of `(python.)int` type
* fixed according to @protolambda suggestions
* changed types of _WEIGHT constants and appropriate variables/parameters, according to @protolambda suggestions
* revert code formatting back
* Introduced ZERO_ROOT according to @protolambda 's suggestion
* Reverted back to , according to @protolambda comments
2021-03-25 22:03:21 +01:00
Danny Ryan
bb85ef5a57
pr cleanup
2021-03-22 10:53:26 -06:00
protolambda
493dd17cc4
reduce justification and finalization Altair diff
2021-03-21 04:22:45 +01:00
Alex Stokes
c661ddf12c
hoist container definitions to preamble
2021-03-17 09:35:39 -06:00
Danny Ryan
b8bf7f0f80
Merge pull request #2236 from ethereum/justin_altair_cleanups
...
Altair cosmetic cleanups plus a couple substantive changes
2021-03-15 08:57:35 -06:00
Justin Drake
e7ebd08d69
Altair cosmetic cleanups plus a couple substantive changes
2021-03-15 11:08:41 +00:00
Danny Ryan
dd341adc20
remove faulty de-duplication condition for seen aggregates
2021-03-10 18:55:21 -07:00
Alex Stokes
e1023f55d1
Fix a small typo
2021-03-05 18:05:15 -08:00
Danny Ryan
63e014791c
Merge branch 'dev' into dev-merge
2021-02-24 16:23:04 -07:00
Danny Ryan
396d399129
Apply suggestions from code review form @hwwhww
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-02-24 08:53:54 -06:00
Hsiao-Wei Wang
b789b10397
Minor update ToC
2021-02-23 16:31:19 -07:00
Danny Ryan
1f7e9fabf2
minor 0x01 PR feedback
2021-02-23 16:16:46 -07:00
Danny Ryan
a0ae048395
copy edits
2021-02-23 16:16:46 -07:00
Justin
5992e8ff05
Update deposit-contract.md
2021-02-23 16:16:46 -07:00
Justin
809fc7afaf
Update validator.md
2021-02-23 16:16:45 -07:00
Justin
1f8ca7179f
Update validator.md
2021-02-23 16:16:45 -07:00
Justin
80613a99bd
Update validator.md
2021-02-23 16:16:45 -07:00
Justin
0f94fa51b8
Update validator.md
2021-02-23 16:16:45 -07:00
Justin
e93f1e1fa8
Copy-edit deposit-contract.md
2021-02-23 16:16:45 -07:00
Justin
47ebf438b3
Cleaner section title
...
"Withdrawal prefixes" matches `[BLS]/[ETH1_ADDRESS]_WITHDRAWAL_PREFIX`
2021-02-23 16:16:45 -07:00
Justin
128efdd34d
Fix table for withdrawal credentials prefixes
...
Minor cosmetic fixes (misformated table, section title).
2021-02-23 16:16:45 -07:00
Danny Ryan
7af50cc827
add eth1 withdrawal credentials to spec
2021-02-23 16:16:35 -07:00
Danny Ryan
8ec082fcf9
Merge pull request #2149 from ethereum/0x01-creds
...
Eth1 withdrawal credentials (0x01)
2021-02-16 13:06:34 -06:00
Danny Ryan
7050cb0add
minor 0x01 PR feedback
2021-02-16 11:55:01 -07:00
Paul Hauner
7d715220bb
Don't propagate blocks with a faulty slot ( #2196 )
2021-02-10 12:39:42 -07:00
Phong Phan
0fd0db1ffc
Fix some typos ( #2195 )
...
* Fix typo for P2P Networking document
* Fix link typo of P2P networking document
* fix typo for light clients beacon chain document
2021-02-06 06:20:35 -07:00
Danny Ryan
fe52f377e6
Merge pull request #2190 from ethereum/update-ws-calc
...
Updated Weak Subjectivity Calculations
2021-02-04 10:23:08 -06:00
Aditya Asgaonkar
8b217d9277
Fix typo
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-02-02 12:17:56 -08:00
Aditya Asgaonkar
a28f52729d
Rename variables for clarity
2021-01-27 15:58:19 -08:00
Aditya Asgaonkar
742d21e914
Updates based on review
2021-01-27 15:16:15 -08:00
Hsiao-Wei Wang
1b00c10ed3
Apply @michaelsproul's feedback
2021-01-27 14:47:52 +08:00
Aditya Asgaonkar
c932fc2798
Fix linter errors
2021-01-21 17:07:45 -08:00
Aditya Asgaonkar
900eb4a83c
Fixed CI errors
2021-01-20 19:33:25 -08:00
Hsiao-Wei Wang
e53213a585
Minor refactor
2021-01-20 13:06:24 +08:00
Hsiao-Wei Wang
daa4798704
Break down process_final_updates
2021-01-19 21:41:55 +08:00
Aditya Asgaonkar
93c4c62900
Remove python tag from fenced code block
2021-01-19 02:04:55 -08:00
Aditya Asgaonkar
37874f9b79
Update WS calc
2021-01-19 01:53:12 -08:00
protolambda
65696ca68b
fix typo: same condition, but non-aggregate attestation here
2021-01-16 22:48:22 +01:00
Danny Ryan
2ad8fdb818
add ability for node to randomly request and descore if not serving blocks on WS period
2021-01-14 06:53:04 -07:00
Victor Farazdagi
70e25e6390
Update specs/phase0/weak-subjectivity.md
...
Co-authored-by: Hsiao-Wei Wang <hsiaowei.eth@gmail.com>
2021-01-05 21:13:35 -08:00
Victor Farazdagi
7d60e482b9
fix typo
2021-01-05 08:48:25 +03:00
Ben Edgington
452e3301be
Fix typo
2020-12-21 10:22:04 +00:00
Danny Ryan
f137bb037a
Merge pull request #2130 from ethereum/vbuterin-patch-2
...
Added standalone light client patch
2020-12-17 07:53:33 -06:00
Hsiao-Wei Wang
acfe49e3f3
executable light client patch: beacon-chain.md ( #2141 )
...
* Bump remerkleable to 0.1.18
* Disable `sync-protocol.md` for now. Make linter pass
* Enable lightclient tests
* Use *new* `optional_fast_aggregate_verify`
* Fix ToC and codespell
* Do not run phase1 tests with Lightclient patch
* Fix the Eth1Data casting bug. Add a workaround.
* Fix `run_on_attestation` testing helper
* Revert
* Rename `optional_fast_aggregate_verify` to `eth2_fast_aggregate_verify`
* Apply Proto's suggestion
* Apply Danny's suggestion
* Fixing tests
* Fix after rebasing
* Rename `LIGHTCLIENT` -> `LIGHTCLIENT_PATCH`
* New doctoc
* Add lightclient patch configs
* fix gitignore light client patch generator output
* Upgrade state for light client patch
* Add `lightclient-fork.md` to deal the fork boundary and fix
`process_block_header`
* Misc cleanups
1) Add a summary note for every function that is changed.
2) Avoid changing `process_block` (instead only change `process_block_header`).
3) Rename `G2_INFINITY_POINT_SIG` to `G2_POINT_AT_INFINITY` to avoid `SIG` contraction.
4) Misc cleanups
* Update block.py
* Update beacon-chain.md
* Fix typo "minimal" -> "mainnet"
Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>
* Use the new `BeaconBlockHeader` instead of phase 0 version
* Update config files
* Move `sync_committee_bits` and `sync_committee_signature` back to `BeaconBlockBody`
Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>
2020-12-15 13:18:20 +08:00
Danny Ryan
2c90ffa2f4
copy edits
2020-12-14 13:09:25 -07:00
Justin
645a3851af
Update deposit-contract.md
2020-12-12 22:02:56 +00:00
Justin
85c1347ffc
Update validator.md
2020-12-12 21:57:58 +00:00
Justin
f9edecf23c
Update validator.md
2020-12-12 21:56:30 +00:00
Justin
b085436f2f
Update validator.md
2020-12-12 21:51:21 +00:00
Justin
ae0b10edb7
Update validator.md
2020-12-12 21:46:39 +00:00
Justin
2cc9a12c98
Copy-edit deposit-contract.md
2020-12-12 20:50:10 +00:00
Justin
ef3802b8e7
Cleaner section title
...
"Withdrawal prefixes" matches `[BLS]/[ETH1_ADDRESS]_WITHDRAWAL_PREFIX`
2020-12-12 20:40:59 +00:00
Justin
784e567d4b
Fix table for withdrawal credentials prefixes
...
Minor cosmetic fixes (misformated table, section title).
2020-12-12 20:38:40 +00:00
Danny Ryan
6b728c1880
add eth1 withdrawal credentials to spec
2020-12-11 15:03:58 -07:00
Danny Ryan
56aafbe533
add note about signature check when backfilling beaconblocks
2020-12-09 12:37:56 -07:00
Danny Ryan
17221c8065
more clearly define min epoch range for blocksbyrange requests
2020-12-09 12:27:01 -07:00
Justin
f2fe390638
secret_key => privkey
2020-12-08 09:20:50 +00:00
Justin
0b9e80d1eb
grammar
2020-12-07 23:15:34 +08:00
Justin
56048cbf56
Cosmetic cleanups to BLS signatures section
...
Miscellaneous cosmetic cleanups to the " BLS signatures" section:
1) fix section capitalisation for spec consistency
2) avoid uncapitalised "eth2" for spec consistency
3) avoid contractions (such as `PK` for `pubkey`) for spec consistency
4) various copyedits
2020-12-07 07:28:01 -07:00
Hsiao-Wei Wang
64412be0d7
Minor update ToC
2020-12-07 11:10:19 +08:00
Danny Ryan
7589af8e8d
remove wip notice on phase 0 specs
2020-11-04 09:30:29 -06:00
Danny Ryan
cd7b1056b4
add mainnet deposit contract address and min genesis time
2020-11-04 09:11:52 -06:00
Danny Ryan
2aa827c07f
Merge pull request #2107 from bloxapp/honest_val_time_attack
...
added best practices section according to https://github.com/ethereum …
2020-11-04 07:36:27 -06:00
Alon Muroch
6996a897b5
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-11-04 15:29:06 +02:00
Alon Muroch
5b95219d18
Apply suggestions from code review
...
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-11-04 15:19:41 +02:00
Danny Ryan
cfc91cdef7
Merge pull request #2121 from AgeManning/gossipsub-mesh
...
Increase gossipsub mesh degree
2020-11-04 06:59:59 -06:00
Age Manning
82cdbba703
Increase mesh degree
2020-11-04 11:27:35 +11:00
Danny Ryan
c4ccdc90de
Merge branch 'dev' into v1.0-candidate
2020-11-03 17:09:48 -06:00
Danny Ryan
6b44f63751
Merge pull request #2104 from ethereum/state_transition_patch
...
Make `state_transition` not return post-state
2020-11-03 14:57:29 -06:00
Danny Ryan
bfaef689e4
Merge pull request #2092 from ethereum/ralexstokes-patch-1
...
Simplify fork choice spec
2020-11-03 06:58:35 -07:00
Danny Ryan
b356f52c5c
ensure aggregate attestation's slot and target are consistent
2020-10-28 17:54:46 -06:00
Alon Muroch
0835c78b56
Apply suggestions from Dankrad's code review
...
Co-authored-by: dankrad <mail@dankradfeist.de>
2020-10-27 08:38:54 +02:00
Alon Muroch
fe5e2f6a8b
table of content
2020-10-20 12:07:54 +03:00
Alon Muroch
73cd1a84fd
added best practices section according to https://github.com/ethereum/eth2.0-specs/issues/2085
2020-10-20 12:00:40 +03:00
Hsiao-Wei Wang
7fb9226ec6
Make `state_transition` not return post state; the given pre state should have been mutated to post state.
2020-10-15 15:58:26 +08:00
Danny Ryan
c17a95a175
add note about how slashings and exits can interact. add test
2020-10-14 17:33:14 -06:00
Danny Ryan
427c7bb236
fix minor typo in validator guide
2020-10-08 10:18:15 -06:00
Danny Ryan
91deacbf9c
double eth1data params
2020-10-07 18:52:47 -06:00
Alex Stokes
663af77737
Clean up unused variable for linter
2020-10-07 17:11:13 -07:00
Alex Stokes
d0cf4e7bad
Simplify fork choice spec
...
This change should be non-substantive as any blocks in `blocks` should be descendants (inclusive) of the `store.justified_checkpoint` (refer `get_filtered_block_tree`) so that in `get_head` all blocks considered as potential heads will have `slot > justified_slot`. Considering this condition universally applies, adding the `and ...` arm to the conditional is unnecessary overhead.
2020-10-07 16:52:51 -07:00
Danny Ryan
d3d9bbd479
add note about coming gs v1.1 params
2020-10-07 17:46:20 -06:00
Danny Ryan
45de8198ca
Merge branch 'dev' into v1.0-candidate
2020-10-07 13:42:23 -06:00
Danny Ryan
64b34b5ca6
Merge pull request #2089 from ethereum/fix-message-id
...
fix message-id issues
2020-10-07 12:40:51 -06:00
Danny Ryan
8cda237884
note v5.1 in discv5 p2p spec
2020-10-07 12:13:32 -06:00
Danny Ryan
6287875baf
use domain byte to isolate message-id domains
2020-10-07 11:59:39 -06:00
Danny Ryan
a365fcb03b
fix message-id issues
2020-10-06 16:18:12 -06:00