Server sent events (#1920)

## Issue Addressed

Resolves #1434 (this is the last major feature in the standard spec. There are only a couple of places we may be off-spec due to recent spec changes or ongoing discussion)
Partly addresses #1669
 
## Proposed Changes

- remove the websocket server
- remove the `TeeEventHandler` and `NullEventHandler` 
- add server sent events according to the eth2 API spec

## Additional Info

This is according to the currently unmerged PR here: https://github.com/ethereum/eth2.0-APIs/pull/117


Co-authored-by: realbigsean <seananderson33@gmail.com>
This commit is contained in:
realbigsean
2020-12-04 00:18:58 +00:00
parent 2b5c0df9e5
commit fdfb81a74a
28 changed files with 969 additions and 766 deletions

167
Cargo.lock generated
View File

@@ -31,7 +31,7 @@ dependencies = [
"slog-term",
"slot_clock",
"tempfile",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"types",
"validator_dir",
@@ -454,12 +454,6 @@ dependencies = [
"autocfg 1.0.1",
]
[[package]]
name = "atomic-option"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0db678acb667b525ac40a324fc5f7d3390e29239b31c7327bb8157f5b4fff593"
[[package]]
name = "atomic-waker"
version = "1.0.0"
@@ -559,7 +553,6 @@ version = "0.2.0"
dependencies = [
"bitvec 0.19.4",
"bls",
"bus",
"derivative",
"environment",
"eth1",
@@ -603,10 +596,9 @@ dependencies = [
"store",
"task_executor",
"tempfile",
"tokio 0.3.4",
"tokio 0.3.5",
"tree_hash",
"types",
"websocket_server",
]
[[package]]
@@ -641,7 +633,7 @@ dependencies = [
"slog-term",
"store",
"task_executor",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"types",
]
@@ -859,7 +851,7 @@ dependencies = [
"slog-stdlog",
"slog-term",
"sloggers",
"tokio 0.3.4",
"tokio 0.3.5",
"types",
]
@@ -903,18 +895,6 @@ version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
[[package]]
name = "bus"
version = "2.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1e66e1779f5b1440f1a58220ba3b3ded4427175f0a9fb8d7066521f8b4e8f2b"
dependencies = [
"atomic-option",
"crossbeam-channel 0.4.4",
"num_cpus",
"parking_lot_core 0.7.2",
]
[[package]]
name = "byte-slice-cast"
version = "0.3.5"
@@ -1102,7 +1082,6 @@ name = "client"
version = "0.2.0"
dependencies = [
"beacon_chain",
"bus",
"directory",
"dirs 3.0.1",
"environment",
@@ -1133,12 +1112,11 @@ dependencies = [
"task_executor",
"time 0.2.23",
"timer",
"tokio 0.3.4",
"tokio 0.3.5",
"toml",
"tree_hash",
"types",
"url 2.2.0",
"websocket_server",
]
[[package]]
@@ -1733,7 +1711,7 @@ dependencies = [
"rlp",
"sha2 0.9.2",
"smallvec 1.5.0",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-util 0.5.0",
"tracing",
"tracing-subscriber",
@@ -1765,7 +1743,7 @@ dependencies = [
"rlp",
"sha2 0.9.2",
"smallvec 1.5.0",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-util 0.4.0",
"tracing",
"tracing-subscriber",
@@ -1938,7 +1916,7 @@ dependencies = [
"slog-term",
"sloggers",
"task_executor",
"tokio 0.3.4",
"tokio 0.3.5",
"types",
]
@@ -1977,7 +1955,7 @@ dependencies = [
"sloggers",
"state_processing",
"task_executor",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"toml",
"tree_hash",
@@ -1992,7 +1970,7 @@ dependencies = [
"deposit_contract",
"futures 0.3.8",
"serde_json",
"tokio 0.3.4",
"tokio 0.3.5",
"types",
"web3",
]
@@ -2007,6 +1985,8 @@ dependencies = [
"eth2_libp2p",
"eth2_ssz",
"eth2_ssz_derive",
"futures 0.3.8",
"futures-util",
"hex",
"libsecp256k1",
"procinfo",
@@ -2128,7 +2108,7 @@ dependencies = [
"task_executor",
"tempdir",
"tiny-keccak 2.0.2",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-io-timeout",
"tokio-util 0.4.0",
"types",
@@ -2646,7 +2626,7 @@ dependencies = [
"serde_derive",
"slog",
"state_processing",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"tree_hash",
"types",
@@ -2781,7 +2761,7 @@ dependencies = [
"http 0.2.1 (git+https://github.com/agemanning/http?branch=lighthouse)",
"indexmap",
"slab 0.4.2",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-util 0.5.0",
"tracing",
"tracing-futures",
@@ -2816,7 +2796,7 @@ name = "hashset_delay"
version = "0.2.0"
dependencies = [
"futures 0.3.8",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-util 0.4.0",
]
@@ -3045,6 +3025,7 @@ dependencies = [
"eth2_libp2p",
"eth2_ssz",
"fork_choice",
"futures 0.3.8",
"hex",
"lazy_static",
"lighthouse_metrics",
@@ -3056,7 +3037,7 @@ dependencies = [
"slot_clock",
"state_processing",
"store",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"tree_hash",
"types",
@@ -3081,7 +3062,7 @@ dependencies = [
"slog",
"slot_clock",
"store",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"types",
"warp",
@@ -3226,7 +3207,7 @@ dependencies = [
"itoa",
"pin-project 1.0.2",
"socket2",
"tokio 0.3.4",
"tokio 0.3.5",
"tower-service",
"tracing",
"want 0.3.0",
@@ -3556,12 +3537,6 @@ dependencies = [
"spin",
]
[[package]]
name = "lazycell"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "lcli"
version = "1.0.3"
@@ -3588,7 +3563,7 @@ dependencies = [
"serde_yaml",
"simple_logger",
"state_processing",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"tree_hash",
"types",
@@ -3882,7 +3857,7 @@ dependencies = [
"libp2p-core 0.25.0",
"log 0.4.11",
"socket2",
"tokio 0.3.4",
"tokio 0.3.5",
]
[[package]]
@@ -3980,7 +3955,7 @@ dependencies = [
"slog-term",
"sloggers",
"tempfile",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"types",
"validator_client",
@@ -4250,9 +4225,9 @@ dependencies = [
[[package]]
name = "mio"
version = "0.6.22"
version = "0.6.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
dependencies = [
"cfg-if 0.1.10",
"fuchsia-zircon",
@@ -4280,18 +4255,6 @@ dependencies = [
"winapi 0.3.9",
]
[[package]]
name = "mio-extras"
version = "2.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
dependencies = [
"lazycell",
"log 0.4.11",
"mio 0.6.22",
"slab 0.4.2",
]
[[package]]
name = "mio-named-pipes"
version = "0.1.7"
@@ -4299,7 +4262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
dependencies = [
"log 0.4.11",
"mio 0.6.22",
"mio 0.6.23",
"miow 0.3.6",
"winapi 0.3.9",
]
@@ -4312,7 +4275,7 @@ checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
dependencies = [
"iovec",
"libc",
"mio 0.6.22",
"mio 0.6.23",
]
[[package]]
@@ -4505,7 +4468,7 @@ dependencies = [
"store",
"task_executor",
"tempfile",
"tokio 0.3.4",
"tokio 0.3.5",
"tree_hash",
"types",
]
@@ -6208,7 +6171,7 @@ dependencies = [
"node_test_rig",
"parking_lot 0.11.1",
"rayon",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"types",
"validator_client",
@@ -6720,7 +6683,7 @@ dependencies = [
"lazy_static",
"lighthouse_metrics",
"slog",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
]
@@ -6892,7 +6855,7 @@ dependencies = [
"slog",
"slot_clock",
"task_executor",
"tokio 0.3.4",
"tokio 0.3.5",
"types",
]
@@ -6965,7 +6928,7 @@ checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
dependencies = [
"bytes 0.4.12",
"futures 0.1.30",
"mio 0.6.22",
"mio 0.6.23",
"num_cpus",
"tokio-codec",
"tokio-current-thread",
@@ -6994,7 +6957,7 @@ dependencies = [
"lazy_static",
"libc",
"memchr",
"mio 0.6.22",
"mio 0.6.23",
"mio-named-pipes",
"mio-uds",
"num_cpus",
@@ -7007,9 +6970,9 @@ dependencies = [
[[package]]
name = "tokio"
version = "0.3.4"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9dfe2523e6fa84ddf5e688151d4e5fddc51678de9752c6512a24714c23818d61"
checksum = "a12a3eb39ee2c231be64487f1fcbe726c8f2514876a55480a5ab8559fc374252"
dependencies = [
"autocfg 1.0.1",
"bytes 0.6.0",
@@ -7059,7 +7022,7 @@ dependencies = [
"once_cell",
"pin-project-lite 0.1.11",
"tokio 0.2.23",
"tokio 0.3.4",
"tokio 0.3.5",
]
[[package]]
@@ -7072,7 +7035,7 @@ dependencies = [
"futures 0.1.30",
"iovec",
"log 0.4.11",
"mio 0.6.22",
"mio 0.6.23",
"scoped-tls 0.1.2",
"tokio 0.1.22",
"tokio-executor",
@@ -7129,7 +7092,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6654a6da4326b0b4228000891d44fbcbdaa1904c6ddfa06617230649073be8fb"
dependencies = [
"tokio 0.3.4",
"tokio 0.3.5",
]
[[package]]
@@ -7164,7 +7127,7 @@ dependencies = [
"futures 0.1.30",
"lazy_static",
"log 0.4.11",
"mio 0.6.22",
"mio 0.6.23",
"num_cpus",
"parking_lot 0.9.0",
"slab 0.4.2",
@@ -7192,7 +7155,7 @@ dependencies = [
"bytes 0.4.12",
"futures 0.1.30",
"iovec",
"mio 0.6.22",
"mio 0.6.23",
"tokio-io",
"tokio-reactor",
]
@@ -7266,7 +7229,7 @@ dependencies = [
"futures-util",
"log 0.4.11",
"pin-project 1.0.2",
"tokio 0.3.4",
"tokio 0.3.5",
"tungstenite",
]
@@ -7279,7 +7242,7 @@ dependencies = [
"bytes 0.4.12",
"futures 0.1.30",
"log 0.4.11",
"mio 0.6.22",
"mio 0.6.23",
"tokio-codec",
"tokio-io",
"tokio-reactor",
@@ -7296,7 +7259,7 @@ dependencies = [
"iovec",
"libc",
"log 0.3.9",
"mio 0.6.22",
"mio 0.6.23",
"mio-uds",
"tokio-core",
"tokio-io",
@@ -7313,7 +7276,7 @@ dependencies = [
"iovec",
"libc",
"log 0.4.11",
"mio 0.6.22",
"mio 0.6.23",
"mio-uds",
"tokio-codec",
"tokio-io",
@@ -7347,7 +7310,7 @@ dependencies = [
"log 0.4.11",
"pin-project-lite 0.1.11",
"slab 0.4.2",
"tokio 0.3.4",
"tokio 0.3.5",
]
[[package]]
@@ -7362,7 +7325,7 @@ dependencies = [
"log 0.4.11",
"pin-project-lite 0.1.11",
"slab 0.4.2",
"tokio 0.3.4",
"tokio 0.3.5",
]
[[package]]
@@ -7794,7 +7757,7 @@ dependencies = [
"slot_clock",
"tempdir",
"tempfile",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-compat-02",
"tree_hash",
"types",
@@ -7915,7 +7878,7 @@ dependencies = [
"serde",
"serde_json",
"serde_urlencoded",
"tokio 0.3.4",
"tokio 0.3.5",
"tokio-tungstenite",
"tower-service",
"tracing",
@@ -7934,7 +7897,7 @@ dependencies = [
"safe_arith",
"serde",
"state_processing",
"tokio 0.3.4",
"tokio 0.3.5",
"types",
"warp",
]
@@ -8142,20 +8105,6 @@ dependencies = [
"url 1.7.2",
]
[[package]]
name = "websocket_server"
version = "0.2.0"
dependencies = [
"futures 0.3.8",
"serde",
"serde_derive",
"slog",
"task_executor",
"tokio 0.3.4",
"types",
"ws",
]
[[package]]
name = "wepoll-sys"
version = "3.0.1"
@@ -8226,24 +8175,6 @@ dependencies = [
"winapi 0.3.9",
]
[[package]]
name = "ws"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c51a2c47b5798ccc774ffb93ff536aec7c4275d722fd9c740c83cdd1af1f2d94"
dependencies = [
"byteorder",
"bytes 0.4.12",
"httparse",
"log 0.4.11",
"mio 0.6.22",
"mio-extras",
"rand 0.7.3",
"sha-1 0.8.2",
"slab 0.4.2",
"url 2.2.0",
]
[[package]]
name = "ws2_32-sys"
version = "0.2.1"