WEBVTT
Kind: captions
Language: en

00:00:00.000 --> 00:00:04.350 align:start position:0%
 
foreign

00:00:04.350 --> 00:00:04.360 align:start position:0%
 
 

00:00:04.360 --> 00:00:14.470 align:start position:0%
 
[Music]

00:00:14.470 --> 00:00:14.480 align:start position:0%
 
 

00:00:14.480 --> 00:00:17.810 align:start position:0%
 
ER<00:00:15.480><c> I'm</c><00:00:15.900><c> CTO</c><00:00:16.199><c> at</c><00:00:16.440><c> streaming</c><00:00:16.800><c> fast</c><00:00:16.980><c> and</c><00:00:17.520><c> I'm</c>

00:00:17.810 --> 00:00:17.820 align:start position:0%
ER I'm CTO at streaming fast and I'm
 

00:00:17.820 --> 00:00:20.510 align:start position:0%
ER I'm CTO at streaming fast and I'm
also<00:00:18.119><c> a</c><00:00:18.300><c> Pianist</c><00:00:18.720><c> a</c><00:00:19.199><c> data</c><00:00:19.560><c> scientist</c><00:00:19.980><c> whatever</c>

00:00:20.510 --> 00:00:20.520 align:start position:0%
also a Pianist a data scientist whatever
 

00:00:20.520 --> 00:00:22.429 align:start position:0%
also a Pianist a data scientist whatever
that<00:00:20.820><c> means</c><00:00:21.119><c> I'm</c><00:00:21.600><c> a</c><00:00:21.779><c> father</c><00:00:21.960><c> of</c><00:00:22.260><c> eight</c>

00:00:22.429 --> 00:00:22.439 align:start position:0%
that means I'm a father of eight
 

00:00:22.439 --> 00:00:24.230 align:start position:0%
that means I'm a father of eight
beautiful<00:00:22.800><c> children</c><00:00:23.160><c> two</c><00:00:23.460><c> of</c><00:00:23.580><c> whom</c><00:00:23.699><c> which</c><00:00:23.880><c> are</c>

00:00:24.230 --> 00:00:24.240 align:start position:0%
beautiful children two of whom which are
 

00:00:24.240 --> 00:00:26.750 align:start position:0%
beautiful children two of whom which are
there<00:00:24.539><c> I</c><00:00:25.140><c> love</c><00:00:25.380><c> designing</c><00:00:26.100><c> and</c><00:00:26.279><c> crafting</c>

00:00:26.750 --> 00:00:26.760 align:start position:0%
there I love designing and crafting
 

00:00:26.760 --> 00:00:28.490 align:start position:0%
there I love designing and crafting
software<00:00:27.240><c> which</c><00:00:27.539><c> I've</c><00:00:27.660><c> done</c><00:00:27.840><c> since</c><00:00:27.960><c> I</c><00:00:28.199><c> was</c><00:00:28.320><c> 12</c>

00:00:28.490 --> 00:00:28.500 align:start position:0%
software which I've done since I was 12
 

00:00:28.500 --> 00:00:31.250 align:start position:0%
software which I've done since I was 12
and<00:00:29.220><c> I'm</c><00:00:29.400><c> here</c><00:00:29.640><c> today</c><00:00:29.820><c> because</c><00:00:30.480><c> one</c><00:00:30.900><c> day</c><00:00:31.080><c> in</c>

00:00:31.250 --> 00:00:31.260 align:start position:0%
and I'm here today because one day in
 

00:00:31.260 --> 00:00:34.670 align:start position:0%
and I'm here today because one day in
2013<00:00:32.120><c> I</c><00:00:33.120><c> read</c><00:00:33.360><c> the</c><00:00:33.600><c> Bitcoin</c><00:00:33.960><c> white</c><00:00:34.140><c> paper</c><00:00:34.380><c> and</c>

00:00:34.670 --> 00:00:34.680 align:start position:0%
2013 I read the Bitcoin white paper and
 

00:00:34.680 --> 00:00:36.350 align:start position:0%
2013 I read the Bitcoin white paper and
that<00:00:34.920><c> changed</c><00:00:35.399><c> the</c><00:00:35.460><c> trajectory</c><00:00:35.880><c> of</c><00:00:36.120><c> my</c><00:00:36.180><c> life</c>

00:00:36.350 --> 00:00:36.360 align:start position:0%
that changed the trajectory of my life
 

00:00:36.360 --> 00:00:38.450 align:start position:0%
that changed the trajectory of my life
and<00:00:36.960><c> fast</c><00:00:37.200><c> forward</c><00:00:37.380><c> to</c><00:00:37.620><c> today</c>

00:00:38.450 --> 00:00:38.460 align:start position:0%
and fast forward to today
 

00:00:38.460 --> 00:00:40.010 align:start position:0%
and fast forward to today
streaming<00:00:39.120><c> fast</c><00:00:39.239><c> a</c><00:00:39.480><c> company</c><00:00:39.600><c> based</c><00:00:39.960><c> in</c>

00:00:40.010 --> 00:00:40.020 align:start position:0%
streaming fast a company based in
 

00:00:40.020 --> 00:00:42.110 align:start position:0%
streaming fast a company based in
Montreal<00:00:40.440><c> Canada</c><00:00:40.739><c> is</c><00:00:41.399><c> now</c><00:00:41.579><c> one</c><00:00:41.700><c> of</c><00:00:41.879><c> the</c><00:00:41.940><c> core</c>

00:00:42.110 --> 00:00:42.120 align:start position:0%
Montreal Canada is now one of the core
 

00:00:42.120 --> 00:00:45.229 align:start position:0%
Montreal Canada is now one of the core
developers<00:00:42.660><c> of</c><00:00:43.980><c> the</c><00:00:44.460><c> graph</c>

00:00:45.229 --> 00:00:45.239 align:start position:0%
developers of the graph
 

00:00:45.239 --> 00:00:47.209 align:start position:0%
developers of the graph
and<00:00:45.719><c> we</c><00:00:45.899><c> joined</c><00:00:46.200><c> the</c><00:00:46.320><c> graph</c><00:00:46.620><c> a</c><00:00:46.860><c> bit</c><00:00:46.980><c> more</c><00:00:47.100><c> than</c>

00:00:47.209 --> 00:00:47.219 align:start position:0%
and we joined the graph a bit more than
 

00:00:47.219 --> 00:00:49.069 align:start position:0%
and we joined the graph a bit more than
a<00:00:47.280><c> year</c><00:00:47.399><c> ago</c><00:00:47.579><c> and</c><00:00:47.820><c> it</c><00:00:47.940><c> kind</c><00:00:48.180><c> of</c><00:00:48.300><c> bizarre</c><00:00:48.719><c> m</c><00:00:48.899><c> a</c>

00:00:49.069 --> 00:00:49.079 align:start position:0%
a year ago and it kind of bizarre m a
 

00:00:49.079 --> 00:00:51.529 align:start position:0%
a year ago and it kind of bizarre m a
2.0<00:00:49.739><c> fashion</c><00:00:50.340><c> or</c><00:00:50.820><c> lawyers</c><00:00:51.180><c> they</c><00:00:51.360><c> don't</c>

00:00:51.529 --> 00:00:51.539 align:start position:0%
2.0 fashion or lawyers they don't
 

00:00:51.539 --> 00:00:53.029 align:start position:0%
2.0 fashion or lawyers they don't
understand<00:00:51.660><c> what</c><00:00:51.960><c> happened</c><00:00:52.140><c> but</c><00:00:52.559><c> anyway</c><00:00:52.739><c> we</c>

00:00:53.029 --> 00:00:53.039 align:start position:0%
understand what happened but anyway we
 

00:00:53.039 --> 00:00:55.490 align:start position:0%
understand what happened but anyway we
said<00:00:53.280><c> thanks</c><00:00:53.640><c> and</c><00:00:54.000><c> goodbye</c><00:00:54.360><c> to</c><00:00:54.480><c> our</c><00:00:54.660><c> VCS</c><00:00:55.199><c> and</c>

00:00:55.490 --> 00:00:55.500 align:start position:0%
said thanks and goodbye to our VCS and
 

00:00:55.500 --> 00:00:57.529 align:start position:0%
said thanks and goodbye to our VCS and
shifted<00:00:55.920><c> our</c><00:00:56.100><c> Focus</c><00:00:56.280><c> to</c><00:00:56.520><c> make</c><00:00:56.579><c> the</c><00:00:56.879><c> graph</c><00:00:57.120><c> the</c>

00:00:57.529 --> 00:00:57.539 align:start position:0%
shifted our Focus to make the graph the
 

00:00:57.539 --> 00:00:59.750 align:start position:0%
shifted our Focus to make the graph the
greatest<00:00:57.719><c> data</c><00:00:58.500><c> platform</c><00:00:58.739><c> on</c><00:00:58.980><c> Earth</c>

00:00:59.750 --> 00:00:59.760 align:start position:0%
greatest data platform on Earth
 

00:00:59.760 --> 00:01:01.430 align:start position:0%
greatest data platform on Earth
so<00:01:00.180><c> today</c><00:01:00.360><c> I'm</c><00:01:00.600><c> here</c><00:01:00.840><c> to</c><00:01:01.020><c> introduce</c>

00:01:01.430 --> 00:01:01.440 align:start position:0%
so today I'm here to introduce
 

00:01:01.440 --> 00:01:04.130 align:start position:0%
so today I'm here to introduce
substreams<00:01:02.340><c> which</c><00:01:02.520><c> is</c><00:01:02.699><c> a</c><00:01:03.059><c> powerful</c><00:01:03.480><c> new</c>

00:01:04.130 --> 00:01:04.140 align:start position:0%
substreams which is a powerful new
 

00:01:04.140 --> 00:01:06.590 align:start position:0%
substreams which is a powerful new
paralyzed<00:01:04.860><c> engine</c><00:01:05.159><c> to</c><00:01:05.580><c> process</c><00:01:05.939><c> blockchain</c>

00:01:06.590 --> 00:01:06.600 align:start position:0%
paralyzed engine to process blockchain
 

00:01:06.600 --> 00:01:08.870 align:start position:0%
paralyzed engine to process blockchain
data<00:01:07.200><c> and</c><00:01:07.799><c> before</c><00:01:08.040><c> I</c><00:01:08.220><c> can</c><00:01:08.340><c> do</c><00:01:08.460><c> that</c><00:01:08.520><c> I</c><00:01:08.760><c> just</c>

00:01:08.870 --> 00:01:08.880 align:start position:0%
data and before I can do that I just
 

00:01:08.880 --> 00:01:10.609 align:start position:0%
data and before I can do that I just
want<00:01:09.000><c> to</c><00:01:09.119><c> set</c><00:01:09.299><c> a</c><00:01:09.479><c> bit</c><00:01:09.540><c> of</c><00:01:09.659><c> context</c><00:01:10.080><c> perhaps</c><00:01:10.439><c> you</c>

00:01:10.609 --> 00:01:10.619 align:start position:0%
want to set a bit of context perhaps you
 

00:01:10.619 --> 00:01:12.350 align:start position:0%
want to set a bit of context perhaps you
can<00:01:10.740><c> raise</c><00:01:10.920><c> your</c><00:01:11.100><c> hand</c><00:01:11.280><c> if</c><00:01:11.760><c> you</c><00:01:11.820><c> know</c><00:01:11.939><c> what</c><00:01:12.119><c> sub</c>

00:01:12.350 --> 00:01:12.360 align:start position:0%
can raise your hand if you know what sub
 

00:01:12.360 --> 00:01:14.810 align:start position:0%
can raise your hand if you know what sub
graphs<00:01:12.840><c> are</c><00:01:13.020><c> raise</c><00:01:13.260><c> your</c><00:01:13.439><c> hand</c><00:01:13.619><c> if</c><00:01:13.740><c> you</c><00:01:13.860><c> know</c>

00:01:14.810 --> 00:01:14.820 align:start position:0%
graphs are raise your hand if you know
 

00:01:14.820 --> 00:01:18.350 align:start position:0%
graphs are raise your hand if you know
you're<00:01:15.600><c> good</c><00:01:15.840><c> okay</c><00:01:16.799><c> so</c><00:01:17.580><c> slip</c><00:01:17.820><c> graphs</c><00:01:18.180><c> can</c><00:01:18.240><c> be</c>

00:01:18.350 --> 00:01:18.360 align:start position:0%
you're good okay so slip graphs can be
 

00:01:18.360 --> 00:01:21.530 align:start position:0%
you're good okay so slip graphs can be
thought<00:01:18.540><c> of</c><00:01:18.720><c> an</c><00:01:19.500><c> ETL</c><00:01:19.799><c> process</c><00:01:20.280><c> right</c><00:01:20.700><c> extract</c>

00:01:21.530 --> 00:01:21.540 align:start position:0%
thought of an ETL process right extract
 

00:01:21.540 --> 00:01:23.510 align:start position:0%
thought of an ETL process right extract
transform<00:01:21.960><c> and</c><00:01:22.140><c> load</c><00:01:22.500><c> and</c><00:01:22.740><c> subgraphs</c><00:01:23.400><c> add</c>

00:01:23.510 --> 00:01:23.520 align:start position:0%
transform and load and subgraphs add
 

00:01:23.520 --> 00:01:25.490 align:start position:0%
transform and load and subgraphs add
that<00:01:23.700><c> little</c><00:01:23.880><c> Q</c><00:01:24.119><c> there</c><00:01:24.420><c> that</c><00:01:24.659><c> graphql</c><00:01:25.200><c> layer</c>

00:01:25.490 --> 00:01:25.500 align:start position:0%
that little Q there that graphql layer
 

00:01:25.500 --> 00:01:27.890 align:start position:0%
that little Q there that graphql layer
to<00:01:25.680><c> it</c><00:01:25.799><c> and</c><00:01:26.520><c> some</c><00:01:26.880><c> grass</c><00:01:27.240><c> today</c><00:01:27.299><c> provide</c><00:01:27.720><c> that</c>

00:01:27.890 --> 00:01:27.900 align:start position:0%
to it and some grass today provide that
 

00:01:27.900 --> 00:01:30.530 align:start position:0%
to it and some grass today provide that
sort<00:01:28.140><c> of</c><00:01:28.320><c> simple</c><00:01:28.560><c> approachable</c><00:01:29.540><c> end-to-end</c>

00:01:30.530 --> 00:01:30.540 align:start position:0%
sort of simple approachable end-to-end
 

00:01:30.540 --> 00:01:32.810 align:start position:0%
sort of simple approachable end-to-end
solution<00:01:31.140><c> to</c><00:01:31.320><c> blockchain</c><00:01:31.740><c> indexing</c><00:01:32.280><c> and</c><00:01:32.640><c> the</c>

00:01:32.810 --> 00:01:32.820 align:start position:0%
solution to blockchain indexing and the
 

00:01:32.820 --> 00:01:34.550 align:start position:0%
solution to blockchain indexing and the
graph<00:01:33.000><c> node</c><00:01:33.299><c> is</c><00:01:33.360><c> responsible</c><00:01:33.900><c> for</c><00:01:34.259><c> all</c><00:01:34.439><c> of</c>

00:01:34.550 --> 00:01:34.560 align:start position:0%
graph node is responsible for all of
 

00:01:34.560 --> 00:01:36.950 align:start position:0%
graph node is responsible for all of
these<00:01:34.860><c> components</c><00:01:35.700><c> right</c><00:01:35.939><c> the</c><00:01:36.420><c> extraction</c><00:01:36.780><c> is</c>

00:01:36.950 --> 00:01:36.960 align:start position:0%
these components right the extraction is
 

00:01:36.960 --> 00:01:39.289 align:start position:0%
these components right the extraction is
done<00:01:37.140><c> through</c><00:01:37.320><c> hitting</c><00:01:38.040><c> Json</c><00:01:38.340><c> RPC</c><00:01:38.820><c> nodes</c><00:01:39.119><c> and</c>

00:01:39.289 --> 00:01:39.299 align:start position:0%
done through hitting Json RPC nodes and
 

00:01:39.299 --> 00:01:40.969 align:start position:0%
done through hitting Json RPC nodes and
then<00:01:39.360><c> transformation</c><00:01:39.780><c> you</c><00:01:40.500><c> provide</c><00:01:40.799><c> some</c>

00:01:40.969 --> 00:01:40.979 align:start position:0%
then transformation you provide some
 

00:01:40.979 --> 00:01:42.230 align:start position:0%
then transformation you provide some
assembly<00:01:41.340><c> script</c><00:01:41.520><c> you</c><00:01:41.759><c> guys</c><00:01:41.880><c> know</c><00:01:42.000><c> that</c>

00:01:42.230 --> 00:01:42.240 align:start position:0%
assembly script you guys know that
 

00:01:42.240 --> 00:01:44.030 align:start position:0%
assembly script you guys know that
composite<00:01:42.659><c> wasm</c><00:01:43.079><c> running</c><00:01:43.320><c> in</c><00:01:43.560><c> a</c><00:01:43.680><c> distributed</c>

00:01:44.030 --> 00:01:44.040 align:start position:0%
composite wasm running in a distributed
 

00:01:44.040 --> 00:01:45.950 align:start position:0%
composite wasm running in a distributed
environment<00:01:44.400><c> and</c><00:01:45.000><c> then</c><00:01:45.060><c> you</c><00:01:45.240><c> have</c><00:01:45.420><c> the</c><00:01:45.659><c> load</c>

00:01:45.950 --> 00:01:45.960 align:start position:0%
environment and then you have the load
 

00:01:45.960 --> 00:01:47.630 align:start position:0%
environment and then you have the load
aspect<00:01:46.200><c> which</c><00:01:46.380><c> the</c><00:01:46.560><c> graph</c><00:01:46.680><c> node</c><00:01:47.040><c> does</c><00:01:47.159><c> puts</c>

00:01:47.630 --> 00:01:47.640 align:start position:0%
aspect which the graph node does puts
 

00:01:47.640 --> 00:01:49.789 align:start position:0%
aspect which the graph node does puts
that<00:01:47.700><c> into</c><00:01:47.880><c> postgres</c><00:01:48.360><c> and</c><00:01:48.659><c> offers</c><00:01:48.960><c> you</c><00:01:49.200><c> a</c><00:01:49.680><c> rich</c>

00:01:49.789 --> 00:01:49.799 align:start position:0%
that into postgres and offers you a rich
 

00:01:49.799 --> 00:01:51.710 align:start position:0%
that into postgres and offers you a rich
you<00:01:50.040><c> know</c><00:01:50.100><c> and</c><00:01:50.280><c> beautiful</c><00:01:50.460><c> graphql</c><00:01:51.299><c> interface</c>

00:01:51.710 --> 00:01:51.720 align:start position:0%
you know and beautiful graphql interface
 

00:01:51.720 --> 00:01:53.510 align:start position:0%
you know and beautiful graphql interface
on<00:01:51.960><c> top</c><00:01:52.140><c> and</c><00:01:52.799><c> one</c><00:01:52.920><c> of</c><00:01:53.040><c> the</c><00:01:53.040><c> reason</c><00:01:53.100><c> one</c><00:01:53.399><c> of</c><00:01:53.460><c> the</c>

00:01:53.510 --> 00:01:53.520 align:start position:0%
on top and one of the reason one of the
 

00:01:53.520 --> 00:01:55.550 align:start position:0%
on top and one of the reason one of the
reasons<00:01:53.700><c> we</c><00:01:53.880><c> were</c><00:01:54.000><c> brought</c><00:01:54.240><c> in</c><00:01:54.420><c> was</c><00:01:54.960><c> that</c><00:01:55.140><c> so</c>

00:01:55.550 --> 00:01:55.560 align:start position:0%
reasons we were brought in was that so
 

00:01:55.560 --> 00:01:58.429 align:start position:0%
reasons we were brought in was that so
we<00:01:55.740><c> could</c><00:01:55.860><c> push</c><00:01:56.159><c> the</c><00:01:56.460><c> graph</c><00:01:56.759><c> to</c><00:01:57.240><c> New</c><00:01:57.479><c> Height</c><00:01:57.720><c> in</c>

00:01:58.429 --> 00:01:58.439 align:start position:0%
we could push the graph to New Height in
 

00:01:58.439 --> 00:02:01.609 align:start position:0%
we could push the graph to New Height in
terms<00:01:58.619><c> of</c><00:01:58.740><c> performances</c><00:01:59.460><c> so</c><00:02:00.060><c> to</c><00:02:00.299><c> do</c><00:02:00.540><c> that</c><00:02:00.720><c> we</c>

00:02:01.609 --> 00:02:01.619 align:start position:0%
terms of performances so to do that we
 

00:02:01.619 --> 00:02:03.649 align:start position:0%
terms of performances so to do that we
brought<00:02:02.040><c> first</c><00:02:02.579><c> thing</c><00:02:02.820><c> the</c><00:02:03.119><c> fire</c><00:02:03.420><c> hose</c>

00:02:03.649 --> 00:02:03.659 align:start position:0%
brought first thing the fire hose
 

00:02:03.659 --> 00:02:07.010 align:start position:0%
brought first thing the fire hose
something<00:02:04.140><c> at</c><00:02:04.560><c> the</c><00:02:04.979><c> extraction</c><00:02:05.460><c> layer</c><00:02:06.000><c> to</c><00:02:06.719><c> our</c>

00:02:07.010 --> 00:02:07.020 align:start position:0%
something at the extraction layer to our
 

00:02:07.020 --> 00:02:09.949 align:start position:0%
something at the extraction layer to our
take<00:02:07.259><c> to</c><00:02:07.500><c> boosting</c><00:02:07.920><c> performance</c><00:02:08.459><c> by</c><00:02:08.880><c> one</c><00:02:09.660><c> two</c>

00:02:09.949 --> 00:02:09.959 align:start position:0%
take to boosting performance by one two
 

00:02:09.959 --> 00:02:12.229 align:start position:0%
take to boosting performance by one two
three<00:02:10.380><c> orders</c><00:02:10.800><c> of</c><00:02:10.979><c> magnitude</c><00:02:11.520><c> the</c><00:02:12.060><c> first</c>

00:02:12.229 --> 00:02:12.239 align:start position:0%
three orders of magnitude the first
 

00:02:12.239 --> 00:02:14.449 align:start position:0%
three orders of magnitude the first
layer<00:02:12.540><c> extraction</c><00:02:12.959><c> it's</c><00:02:13.200><c> the</c><00:02:13.440><c> method</c><00:02:13.800><c> of</c>

00:02:14.449 --> 00:02:14.459 align:start position:0%
layer extraction it's the method of
 

00:02:14.459 --> 00:02:16.430 align:start position:0%
layer extraction it's the method of
extract<00:02:14.760><c> attracting</c><00:02:15.480><c> data</c><00:02:15.840><c> from</c><00:02:16.020><c> blockchain</c>

00:02:16.430 --> 00:02:16.440 align:start position:0%
extract attracting data from blockchain
 

00:02:16.440 --> 00:02:18.830 align:start position:0%
extract attracting data from blockchain
nodes<00:02:16.800><c> imagine</c><00:02:17.160><c> prying</c><00:02:17.819><c> an</c><00:02:17.940><c> egg</c><00:02:18.120><c> open</c><00:02:18.300><c> where</c>

00:02:18.830 --> 00:02:18.840 align:start position:0%
nodes imagine prying an egg open where
 

00:02:18.840 --> 00:02:20.630 align:start position:0%
nodes imagine prying an egg open where
the<00:02:19.020><c> data</c><00:02:19.260><c> is</c><00:02:19.379><c> exfiltrated</c><00:02:19.920><c> as</c><00:02:20.280><c> fast</c><00:02:20.459><c> as</c>

00:02:20.630 --> 00:02:20.640 align:start position:0%
the data is exfiltrated as fast as
 

00:02:20.640 --> 00:02:23.150 align:start position:0%
the data is exfiltrated as fast as
possible<00:02:20.940><c> and</c><00:02:21.180><c> all</c><00:02:21.420><c> the</c><00:02:21.599><c> juicy</c><00:02:21.959><c> data</c><00:02:22.319><c> gets</c>

00:02:23.150 --> 00:02:23.160 align:start position:0%
possible and all the juicy data gets
 

00:02:23.160 --> 00:02:26.809 align:start position:0%
possible and all the juicy data gets
then<00:02:23.280><c> thrown</c><00:02:23.819><c> in</c><00:02:24.360><c> a</c><00:02:24.620><c> grpc</c><00:02:25.620><c> stream</c><00:02:25.920><c> as</c><00:02:26.520><c> well</c><00:02:26.640><c> as</c>

00:02:26.809 --> 00:02:26.819 align:start position:0%
then thrown in a grpc stream as well as
 

00:02:26.819 --> 00:02:29.210 align:start position:0%
then thrown in a grpc stream as well as
into<00:02:27.120><c> flat</c><00:02:27.660><c> files</c><00:02:28.080><c> and</c><00:02:28.739><c> you</c><00:02:28.860><c> can</c><00:02:28.980><c> think</c><00:02:29.099><c> of</c>

00:02:29.210 --> 00:02:29.220 align:start position:0%
into flat files and you can think of
 

00:02:29.220 --> 00:02:30.949 align:start position:0%
into flat files and you can think of
that<00:02:29.400><c> as</c><00:02:29.580><c> sort</c><00:02:29.760><c> of</c><00:02:29.879><c> a</c><00:02:30.060><c> the</c><00:02:30.480><c> bin</c><00:02:30.780><c> log</c>

00:02:30.949 --> 00:02:30.959 align:start position:0%
that as sort of a the bin log
 

00:02:30.959 --> 00:02:33.830 align:start position:0%
that as sort of a the bin log
replication<00:02:31.680><c> stream</c><00:02:32.220><c> for</c><00:02:32.580><c> blockchains</c><00:02:33.420><c> where</c>

00:02:33.830 --> 00:02:33.840 align:start position:0%
replication stream for blockchains where
 

00:02:33.840 --> 00:02:35.270 align:start position:0%
replication stream for blockchains where
you'd<00:02:34.020><c> find</c><00:02:34.200><c> in</c><00:02:34.319><c> a</c><00:02:34.440><c> Master</c><00:02:34.560><c> Slave</c><00:02:34.860><c> replication</c>

00:02:35.270 --> 00:02:35.280 align:start position:0%
you'd find in a Master Slave replication
 

00:02:35.280 --> 00:02:37.309 align:start position:0%
you'd find in a Master Slave replication
engine<00:02:35.459><c> like</c><00:02:35.700><c> in</c><00:02:35.940><c> databases</c><00:02:36.599><c> so</c><00:02:37.020><c> we'll</c><00:02:37.140><c> get</c>

00:02:37.309 --> 00:02:37.319 align:start position:0%
engine like in databases so we'll get
 

00:02:37.319 --> 00:02:39.290 align:start position:0%
engine like in databases so we'll get
back<00:02:37.440><c> to</c><00:02:37.560><c> fire</c><00:02:37.739><c> hose</c><00:02:37.980><c> in</c><00:02:38.099><c> a</c><00:02:38.220><c> minute</c><00:02:38.280><c> then</c><00:02:39.060><c> sub</c>

00:02:39.290 --> 00:02:39.300 align:start position:0%
back to fire hose in a minute then sub
 

00:02:39.300 --> 00:02:41.509 align:start position:0%
back to fire hose in a minute then sub
streams<00:02:39.780><c> is</c><00:02:40.440><c> sort</c><00:02:40.739><c> of</c><00:02:40.860><c> a</c><00:02:40.920><c> reasoning</c><00:02:41.340><c> of</c><00:02:41.400><c> this</c>

00:02:41.509 --> 00:02:41.519 align:start position:0%
streams is sort of a reasoning of this
 

00:02:41.519 --> 00:02:43.850 align:start position:0%
streams is sort of a reasoning of this
rethinking<00:02:42.120><c> of</c><00:02:42.360><c> the</c><00:02:42.540><c> second</c><00:02:42.720><c> box</c><00:02:43.080><c> the</c>

00:02:43.850 --> 00:02:43.860 align:start position:0%
rethinking of the second box the
 

00:02:43.860 --> 00:02:47.089 align:start position:0%
rethinking of the second box the
transformation<00:02:44.519><c> layer</c><00:02:45.239><c> here</c><00:02:45.959><c> instead</c><00:02:46.860><c> of</c><00:02:46.920><c> the</c>

00:02:47.089 --> 00:02:47.099 align:start position:0%
transformation layer here instead of the
 

00:02:47.099 --> 00:02:48.890 align:start position:0%
transformation layer here instead of the
traditional<00:02:47.519><c> sub</c><00:02:47.879><c> graph</c><00:02:48.180><c> handlers</c><00:02:48.720><c> and</c>

00:02:48.890 --> 00:02:48.900 align:start position:0%
traditional sub graph handlers and
 

00:02:48.900 --> 00:02:50.690 align:start position:0%
traditional sub graph handlers and
assembly<00:02:49.319><c> script</c><00:02:49.620><c> you</c><00:02:50.340><c> will</c><00:02:50.519><c> write</c>

00:02:50.690 --> 00:02:50.700 align:start position:0%
assembly script you will write
 

00:02:50.700 --> 00:02:53.330 align:start position:0%
assembly script you will write
substreams<00:02:51.420><c> modules</c><00:02:51.840><c> in</c><00:02:52.200><c> Rust</c><00:02:52.500><c> and</c><00:02:52.920><c> those</c><00:02:53.099><c> can</c>

00:02:53.330 --> 00:02:53.340 align:start position:0%
substreams modules in Rust and those can
 

00:02:53.340 --> 00:02:56.270 align:start position:0%
substreams modules in Rust and those can
be<00:02:53.519><c> executed</c><00:02:54.120><c> in</c><00:02:54.300><c> real</c><00:02:54.540><c> time</c><00:02:54.780><c> as</c><00:02:55.739><c> well</c><00:02:55.920><c> as</c><00:02:56.040><c> in</c>

00:02:56.270 --> 00:02:56.280 align:start position:0%
be executed in real time as well as in
 

00:02:56.280 --> 00:02:59.150 align:start position:0%
be executed in real time as well as in
parallel<00:02:56.760><c> with</c><00:02:57.060><c> unprecedented</c><00:02:57.780><c> performance</c>

00:02:59.150 --> 00:02:59.160 align:start position:0%
parallel with unprecedented performance
 

00:02:59.160 --> 00:03:01.369 align:start position:0%
parallel with unprecedented performance
so<00:02:59.640><c> let</c><00:02:59.819><c> me</c><00:03:00.000><c> give</c><00:03:00.120><c> you</c><00:03:00.300><c> first</c><00:03:00.599><c> a</c><00:03:00.840><c> primer</c><00:03:01.200><c> on</c>

00:03:01.369 --> 00:03:01.379 align:start position:0%
so let me give you first a primer on
 

00:03:01.379 --> 00:03:02.809 align:start position:0%
so let me give you first a primer on
fire<00:03:01.560><c> hose</c><00:03:01.800><c> because</c><00:03:02.040><c> there's</c><00:03:02.340><c> a</c><00:03:02.519><c> lot</c><00:03:02.700><c> of</c>

00:03:02.809 --> 00:03:02.819 align:start position:0%
fire hose because there's a lot of
 

00:03:02.819 --> 00:03:05.150 align:start position:0%
fire hose because there's a lot of
benefits<00:03:03.360><c> of</c><00:03:03.959><c> substreams</c><00:03:04.620><c> that</c><00:03:04.980><c> come</c>

00:03:05.150 --> 00:03:05.160 align:start position:0%
benefits of substreams that come
 

00:03:05.160 --> 00:03:08.210 align:start position:0%
benefits of substreams that come
directly<00:03:05.640><c> from</c><00:03:06.060><c> the</c><00:03:06.480><c> fire</c><00:03:06.660><c> hose</c><00:03:07.019><c> so</c><00:03:07.739><c> a</c>

00:03:08.210 --> 00:03:08.220 align:start position:0%
directly from the fire hose so a
 

00:03:08.220 --> 00:03:09.650 align:start position:0%
directly from the fire hose so a
streaming<00:03:08.580><c> fast</c><00:03:08.700><c> for</c><00:03:09.000><c> many</c><00:03:09.120><c> years</c><00:03:09.300><c> we've</c><00:03:09.540><c> been</c>

00:03:09.650 --> 00:03:09.660 align:start position:0%
streaming fast for many years we've been
 

00:03:09.660 --> 00:03:11.270 align:start position:0%
streaming fast for many years we've been
thinking<00:03:09.959><c> hard</c><00:03:10.140><c> about</c><00:03:10.319><c> all</c><00:03:10.560><c> these</c><00:03:10.739><c> indexing</c>

00:03:11.270 --> 00:03:11.280 align:start position:0%
thinking hard about all these indexing
 

00:03:11.280 --> 00:03:13.790 align:start position:0%
thinking hard about all these indexing
problems<00:03:11.819><c> from</c><00:03:12.360><c> first</c><00:03:12.599><c> principles</c><00:03:13.140><c> and</c><00:03:13.680><c> we</c>

00:03:13.790 --> 00:03:13.800 align:start position:0%
problems from first principles and we
 

00:03:13.800 --> 00:03:16.309 align:start position:0%
problems from first principles and we
needed<00:03:14.099><c> a</c><00:03:14.220><c> first</c><00:03:14.459><c> a</c><00:03:14.760><c> robust</c><00:03:15.180><c> extraction</c><00:03:15.780><c> layer</c>

00:03:16.309 --> 00:03:16.319 align:start position:0%
needed a first a robust extraction layer
 

00:03:16.319 --> 00:03:18.470 align:start position:0%
needed a first a robust extraction layer
we<00:03:16.860><c> wanted</c><00:03:17.040><c> something</c><00:03:17.280><c> that</c><00:03:17.580><c> is</c><00:03:17.700><c> creamy</c><00:03:18.120><c> but</c>

00:03:18.470 --> 00:03:18.480 align:start position:0%
we wanted something that is creamy but
 

00:03:18.480 --> 00:03:20.630 align:start position:0%
we wanted something that is creamy but
that<00:03:18.720><c> was</c><00:03:18.780><c> extremely</c><00:03:19.200><c> low</c><00:03:19.440><c> latency</c><00:03:19.980><c> so</c><00:03:20.459><c> I'm</c>

00:03:20.630 --> 00:03:20.640 align:start position:0%
that was extremely low latency so I'm
 

00:03:20.640 --> 00:03:22.490 align:start position:0%
that was extremely low latency so I'm
thinking<00:03:20.819><c> that</c><00:03:21.000><c> would</c><00:03:21.239><c> push</c><00:03:21.599><c> data</c><00:03:21.959><c> out</c><00:03:22.140><c> the</c>

00:03:22.490 --> 00:03:22.500 align:start position:0%
thinking that would push data out the
 

00:03:22.500 --> 00:03:24.649 align:start position:0%
thinking that would push data out the
moment<00:03:22.800><c> the</c><00:03:23.519><c> transaction</c><00:03:23.940><c> was</c><00:03:24.239><c> executed</c>

00:03:24.649 --> 00:03:24.659 align:start position:0%
moment the transaction was executed
 

00:03:24.659 --> 00:03:26.930 align:start position:0%
moment the transaction was executed
within<00:03:25.019><c> a</c><00:03:25.140><c> block</c><00:03:25.260><c> within</c><00:03:25.739><c> a</c><00:03:25.860><c> blockchain</c><00:03:26.459><c> node</c>

00:03:26.930 --> 00:03:26.940 align:start position:0%
within a block within a blockchain node
 

00:03:26.940 --> 00:03:29.869 align:start position:0%
within a block within a blockchain node
Json<00:03:27.659><c> RPC</c><00:03:28.140><c> was</c><00:03:28.379><c> not</c><00:03:28.500><c> going</c><00:03:28.680><c> to</c><00:03:28.800><c> cut</c><00:03:28.980><c> it</c><00:03:29.220><c> and</c><00:03:29.760><c> we</c>

00:03:29.869 --> 00:03:29.879 align:start position:0%
Json RPC was not going to cut it and we
 

00:03:29.879 --> 00:03:31.729 align:start position:0%
Json RPC was not going to cut it and we
didn't<00:03:30.000><c> want</c><00:03:30.239><c> to</c><00:03:30.360><c> have</c><00:03:30.540><c> to</c><00:03:30.720><c> deal</c><00:03:30.900><c> with</c><00:03:31.200><c> those</c>

00:03:31.729 --> 00:03:31.739 align:start position:0%
didn't want to have to deal with those
 

00:03:31.739 --> 00:03:34.369 align:start position:0%
didn't want to have to deal with those
large<00:03:32.280><c> bulky</c><00:03:32.879><c> nodes</c><00:03:33.180><c> right</c><00:03:33.420><c> hang</c><00:03:33.599><c> on</c><00:03:33.840><c> a</c><00:03:34.080><c> thread</c>

00:03:34.369 --> 00:03:34.379 align:start position:0%
large bulky nodes right hang on a thread
 

00:03:34.379 --> 00:03:38.149 align:start position:0%
large bulky nodes right hang on a thread
occupied<00:03:35.340><c> due</c><00:03:35.940><c> to</c><00:03:36.060><c> with</c><00:03:37.019><c> uh</c><00:03:37.260><c> managing</c><00:03:37.739><c> high</c>

00:03:38.149 --> 00:03:38.159 align:start position:0%
occupied due to with uh managing high
 

00:03:38.159 --> 00:03:40.910 align:start position:0%
occupied due to with uh managing high
right<00:03:38.519><c> throughput</c><00:03:39.060><c> I</c><00:03:39.780><c> kept</c><00:03:40.319><c> everything</c><00:03:40.440><c> in</c><00:03:40.739><c> a</c>

00:03:40.910 --> 00:03:40.920 align:start position:0%
right throughput I kept everything in a
 

00:03:40.920 --> 00:03:43.369 align:start position:0%
right throughput I kept everything in a
key<00:03:41.040><c> Value</c><00:03:41.280><c> Store</c><00:03:41.640><c> behind</c><00:03:42.239><c> a</c><00:03:42.420><c> you</c><00:03:42.959><c> know</c><00:03:43.019><c> a</c><00:03:43.140><c> Json</c>

00:03:43.369 --> 00:03:43.379 align:start position:0%
key Value Store behind a you know a Json
 

00:03:43.379 --> 00:03:46.369 align:start position:0%
key Value Store behind a you know a Json
RPC<00:03:43.860><c> requests</c><00:03:44.340><c> and</c><00:03:45.180><c> it</c><00:03:45.360><c> was</c><00:03:45.540><c> really</c><00:03:45.780><c> heavy</c><00:03:46.140><c> in</c>

00:03:46.369 --> 00:03:46.379 align:start position:0%
RPC requests and it was really heavy in
 

00:03:46.379 --> 00:03:48.229 align:start position:0%
RPC requests and it was really heavy in
Ram<00:03:46.680><c> and</c><00:03:46.980><c> CPU</c><00:03:47.459><c> and</c><00:03:47.640><c> you</c><00:03:47.760><c> needed</c><00:03:48.000><c> super</c>

00:03:48.229 --> 00:03:48.239 align:start position:0%
Ram and CPU and you needed super
 

00:03:48.239 --> 00:03:50.630 align:start position:0%
Ram and CPU and you needed super
optimize<00:03:48.780><c> ssds</c><00:03:49.500><c> this</c><00:03:49.860><c> is</c><00:03:50.040><c> really</c><00:03:50.159><c> annoying</c>

00:03:50.630 --> 00:03:50.640 align:start position:0%
optimize ssds this is really annoying
 

00:03:50.640 --> 00:03:52.490 align:start position:0%
optimize ssds this is really annoying
and<00:03:50.940><c> all</c><00:03:51.060><c> these</c><00:03:51.239><c> things</c><00:03:51.360><c> are</c><00:03:51.659><c> much</c><00:03:51.959><c> costlier</c>

00:03:52.490 --> 00:03:52.500 align:start position:0%
and all these things are much costlier
 

00:03:52.500 --> 00:03:54.350 align:start position:0%
and all these things are much costlier
than<00:03:52.739><c> what's</c><00:03:52.980><c> needed</c><00:03:53.280><c> when</c><00:03:53.760><c> our</c><00:03:53.879><c> goal</c><00:03:54.120><c> was</c><00:03:54.180><c> to</c>

00:03:54.350 --> 00:03:54.360 align:start position:0%
than what's needed when our goal was to
 

00:03:54.360 --> 00:03:56.869 align:start position:0%
than what's needed when our goal was to
get<00:03:54.480><c> to</c><00:03:54.659><c> the</c><00:03:54.780><c> data</c><00:03:55.140><c> inside</c><00:03:55.319><c> so</c><00:03:56.220><c> we</c><00:03:56.340><c> also</c><00:03:56.700><c> wanted</c>

00:03:56.869 --> 00:03:56.879 align:start position:0%
get to the data inside so we also wanted
 

00:03:56.879 --> 00:04:00.410 align:start position:0%
get to the data inside so we also wanted
proper<00:03:57.720><c> decoupling</c><00:03:58.379><c> between</c><00:03:59.099><c> the</c><00:03:59.760><c> processes</c>

00:04:00.410 --> 00:04:00.420 align:start position:0%
proper decoupling between the processes
 

00:04:00.420 --> 00:04:02.210 align:start position:0%
proper decoupling between the processes
producing<00:04:01.200><c> the</c><00:04:01.319><c> data</c><00:04:01.560><c> so</c><00:04:01.680><c> the</c><00:04:01.920><c> blockchain</c>

00:04:02.210 --> 00:04:02.220 align:start position:0%
producing the data so the blockchain
 

00:04:02.220 --> 00:04:03.830 align:start position:0%
producing the data so the blockchain
knows<00:04:02.459><c> and</c><00:04:02.580><c> its</c><00:04:02.760><c> intricacies</c><00:04:03.180><c> and</c><00:04:03.480><c> it's</c><00:04:03.599><c> it's</c>

00:04:03.830 --> 00:04:03.840 align:start position:0%
knows and its intricacies and it's it's
 

00:04:03.840 --> 00:04:05.509 align:start position:0%
knows and its intricacies and it's it's
request<00:04:04.260><c> response</c><00:04:04.799><c> bottle</c><00:04:04.980><c> and</c><00:04:05.220><c> they're</c><00:04:05.340><c> all</c>

00:04:05.509 --> 00:04:05.519 align:start position:0%
request response bottle and they're all
 

00:04:05.519 --> 00:04:08.270 align:start position:0%
request response bottle and they're all
different<00:04:05.900><c> and</c><00:04:06.900><c> the</c><00:04:07.140><c> data</c><00:04:07.560><c> itself</c><00:04:07.799><c> we</c><00:04:08.099><c> wanted</c>

00:04:08.270 --> 00:04:08.280 align:start position:0%
different and the data itself we wanted
 

00:04:08.280 --> 00:04:11.390 align:start position:0%
different and the data itself we wanted
the<00:04:09.000><c> data</c><00:04:09.420><c> to</c><00:04:09.659><c> be</c><00:04:09.780><c> the</c><00:04:09.959><c> interface</c><00:04:10.500><c> and</c><00:04:11.220><c> we</c>

00:04:11.390 --> 00:04:11.400 align:start position:0%
the data to be the interface and we
 

00:04:11.400 --> 00:04:13.550 align:start position:0%
the data to be the interface and we
wanted<00:04:11.519><c> something</c><00:04:11.879><c> also</c><00:04:12.360><c> extremely</c><00:04:12.959><c> reliable</c>

00:04:13.550 --> 00:04:13.560 align:start position:0%
wanted something also extremely reliable
 

00:04:13.560 --> 00:04:16.310 align:start position:0%
wanted something also extremely reliable
in<00:04:14.400><c> the</c><00:04:14.640><c> sense</c><00:04:14.760><c> that</c><00:04:14.939><c> we</c><00:04:15.420><c> could</c><00:04:15.540><c> avoid</c><00:04:15.900><c> hitting</c>

00:04:16.310 --> 00:04:16.320 align:start position:0%
in the sense that we could avoid hitting
 

00:04:16.320 --> 00:04:19.069 align:start position:0%
in the sense that we could avoid hitting
load<00:04:16.739><c> balanced</c><00:04:17.220><c> nodes</c><00:04:17.639><c> that</c><00:04:17.880><c> had</c><00:04:18.180><c> all</c><00:04:18.540><c> sorts</c>

00:04:19.069 --> 00:04:19.079 align:start position:0%
load balanced nodes that had all sorts
 

00:04:19.079 --> 00:04:20.689 align:start position:0%
load balanced nodes that had all sorts
of<00:04:19.139><c> different</c><00:04:19.380><c> views</c><00:04:19.799><c> of</c><00:04:19.979><c> the</c><00:04:20.100><c> world</c><00:04:20.280><c> and</c><00:04:20.579><c> that</c>

00:04:20.689 --> 00:04:20.699 align:start position:0%
of different views of the world and that
 

00:04:20.699 --> 00:04:23.210 align:start position:0%
of different views of the world and that
we<00:04:20.880><c> need</c><00:04:21.000><c> to</c><00:04:21.120><c> have</c><00:04:21.239><c> like</c><00:04:21.540><c> client</c><00:04:22.139><c> code</c><00:04:22.380><c> to</c><00:04:22.680><c> like</c>

00:04:23.210 --> 00:04:23.220 align:start position:0%
we need to have like client code to like
 

00:04:23.220 --> 00:04:25.909 align:start position:0%
we need to have like client code to like
latency<00:04:23.940><c> inducing</c><00:04:24.540><c> code</c><00:04:24.780><c> to</c><00:04:24.960><c> to</c><00:04:25.320><c> resolve</c>

00:04:25.909 --> 00:04:25.919 align:start position:0%
latency inducing code to to resolve
 

00:04:25.919 --> 00:04:26.930 align:start position:0%
latency inducing code to to resolve
what's<00:04:26.100><c> happening</c><00:04:26.400><c> there</c><00:04:26.580><c> if</c><00:04:26.820><c> there's</c>

00:04:26.930 --> 00:04:26.940 align:start position:0%
what's happening there if there's
 

00:04:26.940 --> 00:04:29.090 align:start position:0%
what's happening there if there's
another<00:04:27.180><c> fourth</c><00:04:27.600><c> you</c><00:04:27.720><c> need</c><00:04:27.840><c> to</c><00:04:27.960><c> query</c><00:04:28.380><c> nodes</c>

00:04:29.090 --> 00:04:29.100 align:start position:0%
another fourth you need to query nodes
 

00:04:29.100 --> 00:04:31.370 align:start position:0%
another fourth you need to query nodes
again<00:04:29.340><c> and</c><00:04:30.120><c> and</c><00:04:30.540><c> you</c><00:04:30.840><c> know</c><00:04:30.960><c> for</c>

00:04:31.370 --> 00:04:31.380 align:start position:0%
again and and you know for
 

00:04:31.380 --> 00:04:33.170 align:start position:0%
again and and you know for
reorganization<00:04:32.040><c> heuristics</c><00:04:32.699><c> for</c><00:04:32.940><c> example</c>

00:04:33.170 --> 00:04:33.180 align:start position:0%
reorganization heuristics for example
 

00:04:33.180 --> 00:04:34.730 align:start position:0%
reorganization heuristics for example
but<00:04:33.660><c> also</c><00:04:33.900><c> you</c><00:04:34.139><c> know</c><00:04:34.199><c> we</c><00:04:34.320><c> wanted</c><00:04:34.500><c> something</c>

00:04:34.730 --> 00:04:34.740 align:start position:0%
but also you know we wanted something
 

00:04:34.740 --> 00:04:36.950 align:start position:0%
but also you know we wanted something
better<00:04:35.040><c> than</c><00:04:35.280><c> even</c><00:04:35.460><c> the</c><00:04:35.759><c> websocket</c><00:04:36.360><c> streams</c>

00:04:36.950 --> 00:04:36.960 align:start position:0%
better than even the websocket streams
 

00:04:36.960 --> 00:04:38.810 align:start position:0%
better than even the websocket streams
that<00:04:37.620><c> pretend</c><00:04:37.919><c> to</c><00:04:38.040><c> be</c><00:04:38.220><c> sort</c><00:04:38.400><c> of</c><00:04:38.520><c> you</c><00:04:38.699><c> know</c>

00:04:38.810 --> 00:04:38.820 align:start position:0%
that pretend to be sort of you know
 

00:04:38.820 --> 00:04:41.090 align:start position:0%
that pretend to be sort of you know
linear<00:04:39.180><c> uh</c><00:04:40.020><c> that</c><00:04:40.440><c> the</c><00:04:40.680><c> nodes</c><00:04:40.860><c> have</c>

00:04:41.090 --> 00:04:41.100 align:start position:0%
linear uh that the nodes have
 

00:04:41.100 --> 00:04:43.430 align:start position:0%
linear uh that the nodes have
implemented<00:04:41.580><c> because</c><00:04:41.880><c> when</c><00:04:42.840><c> they</c><00:04:43.020><c> would</c><00:04:43.199><c> send</c>

00:04:43.430 --> 00:04:43.440 align:start position:0%
implemented because when they would send
 

00:04:43.440 --> 00:04:45.770 align:start position:0%
implemented because when they would send
you<00:04:43.560><c> a</c><00:04:43.740><c> signal</c><00:04:44.100><c> that</c><00:04:44.699><c> would</c><00:04:45.060><c> say</c><00:04:45.240><c> this</c><00:04:45.600><c> block</c>

00:04:45.770 --> 00:04:45.780 align:start position:0%
you a signal that would say this block
 

00:04:45.780 --> 00:04:48.830 align:start position:0%
you a signal that would say this block
was<00:04:46.020><c> removed</c><00:04:46.500><c> it</c><00:04:47.280><c> can</c><00:04:47.460><c> leave</c><00:04:47.880><c> you</c><00:04:48.060><c> hang</c><00:04:48.300><c> if</c><00:04:48.660><c> if</c>

00:04:48.830 --> 00:04:48.840 align:start position:0%
was removed it can leave you hang if if
 

00:04:48.840 --> 00:04:50.749 align:start position:0%
was removed it can leave you hang if if
you<00:04:49.020><c> happen</c><00:04:49.440><c> to</c><00:04:49.620><c> be</c><00:04:49.800><c> disconnected</c><00:04:50.400><c> for</c><00:04:50.520><c> just</c>

00:04:50.749 --> 00:04:50.759 align:start position:0%
you happen to be disconnected for just
 

00:04:50.759 --> 00:04:53.150 align:start position:0%
you happen to be disconnected for just
half<00:04:50.940><c> a</c><00:04:51.120><c> second</c><00:04:51.300><c> you'd</c><00:04:52.020><c> reconnect</c><00:04:52.380><c> you'd</c><00:04:52.979><c> miss</c>

00:04:53.150 --> 00:04:53.160 align:start position:0%
half a second you'd reconnect you'd miss
 

00:04:53.160 --> 00:04:55.550 align:start position:0%
half a second you'd reconnect you'd miss
the<00:04:53.340><c> signal</c><00:04:53.639><c> so</c><00:04:54.000><c> the</c><00:04:54.360><c> reliability</c><00:04:54.900><c> was</c><00:04:55.320><c> not</c>

00:04:55.550 --> 00:04:55.560 align:start position:0%
the signal so the reliability was not
 

00:04:55.560 --> 00:04:56.930 align:start position:0%
the signal so the reliability was not
built<00:04:55.919><c> in</c><00:04:55.979><c> so</c><00:04:56.160><c> we</c><00:04:56.340><c> wanted</c><00:04:56.460><c> something</c><00:04:56.699><c> to</c>

00:04:56.930 --> 00:04:56.940 align:start position:0%
built in so we wanted something to
 

00:04:56.940 --> 00:04:58.730 align:start position:0%
built in so we wanted something to
address<00:04:57.000><c> that</c><00:04:57.300><c> and</c><00:04:57.780><c> above</c><00:04:58.139><c> all</c><00:04:58.320><c> we</c><00:04:58.620><c> wanted</c>

00:04:58.730 --> 00:04:58.740 align:start position:0%
address that and above all we wanted
 

00:04:58.740 --> 00:05:01.030 align:start position:0%
address that and above all we wanted
something<00:04:59.040><c> thing</c><00:04:59.520><c> that</c><00:04:59.699><c> is</c><00:04:59.880><c> able</c><00:05:00.120><c> to</c><00:05:00.240><c> process</c>

00:05:01.030 --> 00:05:01.040 align:start position:0%
something thing that is able to process
 

00:05:01.040 --> 00:05:04.670 align:start position:0%
something thing that is able to process
networks<00:05:02.040><c> in</c><00:05:02.580><c> 20</c><00:05:02.820><c> minutes</c><00:05:03.120><c> well</c><00:05:03.600><c> okay</c><00:05:03.900><c> an</c><00:05:04.500><c> hour</c>

00:05:04.670 --> 00:05:04.680 align:start position:0%
networks in 20 minutes well okay an hour
 

00:05:04.680 --> 00:05:07.189 align:start position:0%
networks in 20 minutes well okay an hour
or<00:05:04.919><c> two</c><00:05:05.100><c> but</c><00:05:05.340><c> you</c><00:05:05.639><c> know</c><00:05:05.759><c> never</c><00:05:06.240><c> three</c><00:05:06.660><c> weeks</c><00:05:07.020><c> or</c>

00:05:07.189 --> 00:05:07.199 align:start position:0%
or two but you know never three weeks or
 

00:05:07.199 --> 00:05:09.590 align:start position:0%
or two but you know never three weeks or
things<00:05:07.380><c> where</c><00:05:07.620><c> we're</c><00:05:07.860><c> waiting</c><00:05:08.220><c> linearly</c><00:05:08.639><c> and</c>

00:05:09.590 --> 00:05:09.600 align:start position:0%
things where we're waiting linearly and
 

00:05:09.600 --> 00:05:11.990 align:start position:0%
things where we're waiting linearly and
that's<00:05:09.960><c> still</c><00:05:10.199><c> our</c><00:05:10.380><c> goal</c><00:05:10.680><c> today</c><00:05:10.800><c> and</c><00:05:11.639><c> when</c><00:05:11.820><c> we</c>

00:05:11.990 --> 00:05:12.000 align:start position:0%
that's still our goal today and when we
 

00:05:12.000 --> 00:05:14.150 align:start position:0%
that's still our goal today and when we
say<00:05:12.180><c> Network</c><00:05:12.419><c> history</c><00:05:12.720><c> I</c><00:05:13.139><c> mean</c><00:05:13.259><c> executing</c>

00:05:14.150 --> 00:05:14.160 align:start position:0%
say Network history I mean executing
 

00:05:14.160 --> 00:05:17.030 align:start position:0%
say Network history I mean executing
guests<00:05:14.759><c> and</c><00:05:15.000><c> extracting</c><00:05:15.600><c> data</c><00:05:16.020><c> executed</c><00:05:16.620><c> into</c>

00:05:17.030 --> 00:05:17.040 align:start position:0%
guests and extracting data executed into
 

00:05:17.040 --> 00:05:18.830 align:start position:0%
guests and extracting data executed into
flat<00:05:17.460><c> files</c><00:05:17.759><c> that's</c><00:05:17.880><c> the</c><00:05:18.060><c> extraction</c><00:05:18.360><c> layer</c>

00:05:18.830 --> 00:05:18.840 align:start position:0%
flat files that's the extraction layer
 

00:05:18.840 --> 00:05:21.710 align:start position:0%
flat files that's the extraction layer
but<00:05:19.380><c> also</c><00:05:19.860><c> any</c><00:05:20.520><c> sort</c><00:05:20.699><c> of</c><00:05:20.820><c> indexing</c><00:05:21.240><c> after</c><00:05:21.479><c> the</c>

00:05:21.710 --> 00:05:21.720 align:start position:0%
but also any sort of indexing after the
 

00:05:21.720 --> 00:05:23.510 align:start position:0%
but also any sort of indexing after the
facts<00:05:22.020><c> we</c><00:05:22.199><c> wanted</c><00:05:22.380><c> to</c><00:05:22.620><c> be</c><00:05:22.800><c> able</c><00:05:22.979><c> to</c><00:05:23.220><c> have</c>

00:05:23.510 --> 00:05:23.520 align:start position:0%
facts we wanted to be able to have
 

00:05:23.520 --> 00:05:26.270 align:start position:0%
facts we wanted to be able to have
massive<00:05:24.360><c> parallelization</c><00:05:25.139><c> like</c><00:05:25.919><c> there</c><00:05:26.160><c> was</c>

00:05:26.270 --> 00:05:26.280 align:start position:0%
massive parallelization like there was
 

00:05:26.280 --> 00:05:28.850 align:start position:0%
massive parallelization like there was
no<00:05:26.460><c> other</c><00:05:26.580><c> way</c><00:05:26.820><c> to</c><00:05:27.120><c> have</c><00:05:27.300><c> reliable</c><00:05:27.960><c> and</c>

00:05:28.850 --> 00:05:28.860 align:start position:0%
no other way to have reliable and
 

00:05:28.860 --> 00:05:30.529 align:start position:0%
no other way to have reliable and
durable<00:05:29.460><c> in</c><00:05:29.820><c> performance</c><00:05:30.180><c> without</c>

00:05:30.529 --> 00:05:30.539 align:start position:0%
durable in performance without
 

00:05:30.539 --> 00:05:33.529 align:start position:0%
durable in performance without
parallelization<00:05:31.380><c> so</c><00:05:31.979><c> our</c><00:05:32.220><c> solution</c><00:05:32.520><c> was</c><00:05:32.940><c> the</c>

00:05:33.529 --> 00:05:33.539 align:start position:0%
parallelization so our solution was the
 

00:05:33.539 --> 00:05:35.629 align:start position:0%
parallelization so our solution was the
fire<00:05:33.780><c> hose</c><00:05:34.020><c> and</c><00:05:34.199><c> the</c><00:05:34.320><c> fire</c><00:05:34.440><c> host</c><00:05:34.740><c> of</c><00:05:34.979><c> all</c><00:05:35.400><c> of</c>

00:05:35.629 --> 00:05:35.639 align:start position:0%
fire hose and the fire host of all of
 

00:05:35.639 --> 00:05:38.930 align:start position:0%
fire hose and the fire host of all of
these<00:05:36.120><c> issues</c><00:05:36.479><c> in</c><00:05:37.139><c> a</c><00:05:37.259><c> radical</c><00:05:37.560><c> way</c><00:05:37.979><c> we</c><00:05:38.580><c> took</c><00:05:38.820><c> a</c>

00:05:38.930 --> 00:05:38.940 align:start position:0%
these issues in a radical way we took a
 

00:05:38.940 --> 00:05:40.249 align:start position:0%
these issues in a radical way we took a
radical<00:05:39.180><c> approach</c><00:05:39.479><c> because</c><00:05:39.660><c> we</c><00:05:39.900><c> wanted</c><00:05:40.080><c> to</c>

00:05:40.249 --> 00:05:40.259 align:start position:0%
radical approach because we wanted to
 

00:05:40.259 --> 00:05:43.430 align:start position:0%
radical approach because we wanted to
solve<00:05:40.560><c> those</c><00:05:40.680><c> problems</c><00:05:41.660><c> definitively</c><00:05:42.660><c> like</c>

00:05:43.430 --> 00:05:43.440 align:start position:0%
solve those problems definitively like
 

00:05:43.440 --> 00:05:45.350 align:start position:0%
solve those problems definitively like
meaning<00:05:43.860><c> that</c><00:05:44.100><c> there</c><00:05:44.280><c> would</c><00:05:44.400><c> be</c><00:05:44.580><c> no</c><00:05:44.940><c> further</c>

00:05:45.350 --> 00:05:45.360 align:start position:0%
meaning that there would be no further
 

00:05:45.360 --> 00:05:47.930 align:start position:0%
meaning that there would be no further
optimization<00:05:46.020><c> possible</c><00:05:46.680><c> except</c><00:05:47.460><c> attempting</c>

00:05:47.930 --> 00:05:47.940 align:start position:0%
optimization possible except attempting
 

00:05:47.940 --> 00:05:50.090 align:start position:0%
optimization possible except attempting
to<00:05:48.180><c> bend</c><00:05:48.419><c> sort</c><00:05:48.660><c> of</c><00:05:48.780><c> space-time</c><00:05:49.440><c> Continuum</c>

00:05:50.090 --> 00:05:50.100 align:start position:0%
to bend sort of space-time Continuum
 

00:05:50.100 --> 00:05:53.689 align:start position:0%
to bend sort of space-time Continuum
itself<00:05:51.000><c> right</c><00:05:51.240><c> so</c><00:05:51.720><c> with</c><00:05:51.960><c> streaming</c><00:05:52.500><c> we</c><00:05:53.340><c> with</c>

00:05:53.689 --> 00:05:53.699 align:start position:0%
itself right so with streaming we with
 

00:05:53.699 --> 00:05:56.210 align:start position:0%
itself right so with streaming we with
even<00:05:54.060><c> multiple</c><00:05:54.600><c> nodes</c><00:05:54.960><c> pushing</c><00:05:55.560><c> out</c><00:05:55.740><c> data</c>

00:05:56.210 --> 00:05:56.220 align:start position:0%
even multiple nodes pushing out data
 

00:05:56.220 --> 00:05:58.490 align:start position:0%
even multiple nodes pushing out data
multiple<00:05:56.940><c> nodes</c><00:05:57.240><c> are</c><00:05:57.419><c> actually</c><00:05:57.600><c> racing</c><00:05:58.380><c> to</c>

00:05:58.490 --> 00:05:58.500 align:start position:0%
multiple nodes are actually racing to
 

00:05:58.500 --> 00:06:00.409 align:start position:0%
multiple nodes are actually racing to
push<00:05:58.680><c> the</c><00:05:58.800><c> data</c><00:05:58.979><c> the</c><00:05:59.460><c> first</c><00:05:59.820><c> through</c><00:06:00.180><c> a</c>

00:06:00.409 --> 00:06:00.419 align:start position:0%
push the data the first through a
 

00:06:00.419 --> 00:06:02.029 align:start position:0%
push the data the first through a
consuming<00:06:00.720><c> process</c><00:06:01.020><c> gets</c><00:06:01.440><c> the</c><00:06:01.560><c> first</c><00:06:01.680><c> to</c><00:06:01.860><c> get</c>

00:06:02.029 --> 00:06:02.039 align:start position:0%
consuming process gets the first to get
 

00:06:02.039 --> 00:06:04.550 align:start position:0%
consuming process gets the first to get
out<00:06:02.220><c> like</c><00:06:02.699><c> you</c><00:06:03.000><c> can't</c><00:06:03.240><c> really</c><00:06:03.539><c> add</c><00:06:04.080><c> remove</c>

00:06:04.550 --> 00:06:04.560 align:start position:0%
out like you can't really add remove
 

00:06:04.560 --> 00:06:07.550 align:start position:0%
out like you can't really add remove
more<00:06:04.860><c> latency</c><00:06:05.220><c> there</c><00:06:05.580><c> and</c><00:06:06.720><c> um</c><00:06:06.720><c> there</c><00:06:07.320><c> can</c><00:06:07.440><c> be</c>

00:06:07.550 --> 00:06:07.560 align:start position:0%
more latency there and um there can be
 

00:06:07.560 --> 00:06:10.249 align:start position:0%
more latency there and um there can be
nothing<00:06:07.740><c> faster</c><00:06:08.280><c> than</c><00:06:08.520><c> immediately</c><00:06:09.080><c> when</c><00:06:10.080><c> the</c>

00:06:10.249 --> 00:06:10.259 align:start position:0%
nothing faster than immediately when the
 

00:06:10.259 --> 00:06:12.050 align:start position:0%
nothing faster than immediately when the
transaction<00:06:10.560><c> has</c><00:06:10.979><c> just</c><00:06:11.220><c> executed</c><00:06:11.759><c> from</c><00:06:11.940><c> your</c>

00:06:12.050 --> 00:06:12.060 align:start position:0%
transaction has just executed from your
 

00:06:12.060 --> 00:06:14.930 align:start position:0%
transaction has just executed from your
node<00:06:12.360><c> and</c><00:06:12.900><c> then</c><00:06:13.080><c> like</c><00:06:13.440><c> regarding</c><00:06:13.860><c> the</c><00:06:14.100><c> staple</c>

00:06:14.930 --> 00:06:14.940 align:start position:0%
node and then like regarding the staple
 

00:06:14.940 --> 00:06:16.969 align:start position:0%
node and then like regarding the staple
processes<00:06:15.360><c> and</c><00:06:15.600><c> cost</c><00:06:15.840><c> flat</c><00:06:16.320><c> files</c><00:06:16.620><c> flat</c><00:06:16.860><c> fast</c>

00:06:16.969 --> 00:06:16.979 align:start position:0%
processes and cost flat files flat fast
 

00:06:16.979 --> 00:06:18.469 align:start position:0%
processes and cost flat files flat fast
for<00:06:17.220><c> the</c><00:06:17.340><c> wind</c><00:06:17.460><c> we</c><00:06:17.639><c> have</c><00:06:17.759><c> a</c><00:06:17.820><c> hashtag</c><00:06:18.180><c> for</c><00:06:18.360><c> that</c>

00:06:18.469 --> 00:06:18.479 align:start position:0%
for the wind we have a hashtag for that
 

00:06:18.479 --> 00:06:20.930 align:start position:0%
for the wind we have a hashtag for that
right<00:06:18.660><c> flat</c><00:06:19.500><c> files</c><00:06:19.740><c> are</c><00:06:19.860><c> the</c><00:06:20.039><c> cheapest</c><00:06:20.400><c> much</c>

00:06:20.930 --> 00:06:20.940 align:start position:0%
right flat files are the cheapest much
 

00:06:20.940 --> 00:06:23.150 align:start position:0%
right flat files are the cheapest much
cheaper<00:06:21.300><c> than</c><00:06:21.479><c> processes</c><00:06:22.080><c> they're</c><00:06:22.620><c> easier</c><00:06:22.919><c> to</c>

00:06:23.150 --> 00:06:23.160 align:start position:0%
cheaper than processes they're easier to
 

00:06:23.160 --> 00:06:25.249 align:start position:0%
cheaper than processes they're easier to
work<00:06:23.280><c> with</c><00:06:23.460><c> there's</c><00:06:24.180><c> nothing</c><00:06:24.360><c> simpler</c><00:06:24.960><c> nor</c>

00:06:25.249 --> 00:06:25.259 align:start position:0%
work with there's nothing simpler nor
 

00:06:25.259 --> 00:06:26.809 align:start position:0%
work with there's nothing simpler nor
cheaper<00:06:25.620><c> in</c><00:06:25.740><c> terms</c><00:06:25.860><c> of</c><00:06:25.979><c> computing</c><00:06:26.340><c> resources</c>

00:06:26.809 --> 00:06:26.819 align:start position:0%
cheaper in terms of computing resources
 

00:06:26.819 --> 00:06:28.670 align:start position:0%
cheaper in terms of computing resources
these<00:06:27.240><c> storage</c><00:06:27.720><c> facilities</c><00:06:28.319><c> have</c><00:06:28.560><c> been</c>

00:06:28.670 --> 00:06:28.680 align:start position:0%
these storage facilities have been
 

00:06:28.680 --> 00:06:31.010 align:start position:0%
these storage facilities have been
optimized<00:06:29.100><c> like</c><00:06:29.280><c> crazy</c><00:06:29.580><c> and</c><00:06:30.360><c> it's</c><00:06:30.600><c> also</c><00:06:30.840><c> where</c>

00:06:31.010 --> 00:06:31.020 align:start position:0%
optimized like crazy and it's also where
 

00:06:31.020 --> 00:06:33.110 align:start position:0%
optimized like crazy and it's also where
data<00:06:31.380><c> science</c><00:06:31.440><c> is</c><00:06:31.680><c> headed</c><00:06:31.979><c> these</c><00:06:32.220><c> days</c><00:06:32.340><c> and</c>

00:06:33.110 --> 00:06:33.120 align:start position:0%
data science is headed these days and
 

00:06:33.120 --> 00:06:35.510 align:start position:0%
data science is headed these days and
there's<00:06:33.360><c> one</c><00:06:33.780><c> common</c><00:06:34.020><c> thing</c><00:06:34.440><c> to</c><00:06:35.280><c> every</c>

00:06:35.510 --> 00:06:35.520 align:start position:0%
there's one common thing to every
 

00:06:35.520 --> 00:06:37.189 align:start position:0%
there's one common thing to every
blockchain<00:06:35.940><c> protocol</c><00:06:36.360><c> and</c><00:06:36.720><c> that</c><00:06:36.960><c> it</c>

00:06:37.189 --> 00:06:37.199 align:start position:0%
blockchain protocol and that it
 

00:06:37.199 --> 00:06:40.730 align:start position:0%
blockchain protocol and that it
processes<00:06:37.940><c> data</c><00:06:38.960><c> data</c><00:06:39.960><c> is</c><00:06:40.080><c> also</c><00:06:40.319><c> the</c><00:06:40.560><c> right</c>

00:06:40.730 --> 00:06:40.740 align:start position:0%
processes data data is also the right
 

00:06:40.740 --> 00:06:43.010 align:start position:0%
processes data data is also the right
abstraction<00:06:41.340><c> for</c><00:06:41.639><c> this</c><00:06:41.880><c> technology</c><00:06:42.300><c> not</c><00:06:42.840><c> an</c>

00:06:43.010 --> 00:06:43.020 align:start position:0%
abstraction for this technology not an
 

00:06:43.020 --> 00:06:45.650 align:start position:0%
abstraction for this technology not an
API<00:06:43.380><c> that's</c><00:06:43.620><c> common</c><00:06:43.800><c> to</c><00:06:44.039><c> all</c><00:06:44.160><c> chain</c><00:06:44.419><c> data</c><00:06:45.419><c> so</c>

00:06:45.650 --> 00:06:45.660 align:start position:0%
API that's common to all chain data so
 

00:06:45.660 --> 00:06:47.529 align:start position:0%
API that's common to all chain data so
fire<00:06:46.020><c> hose</c><00:06:46.319><c> clearly</c><00:06:46.860><c> delineates</c>

00:06:47.529 --> 00:06:47.539 align:start position:0%
fire hose clearly delineates
 

00:06:47.539 --> 00:06:50.090 align:start position:0%
fire hose clearly delineates
responsibilities<00:06:48.539><c> and</c><00:06:49.500><c> and</c><00:06:49.680><c> the</c><00:06:49.860><c> contract</c>

00:06:50.090 --> 00:06:50.100 align:start position:0%
responsibilities and and the contract
 

00:06:50.100 --> 00:06:51.350 align:start position:0%
responsibilities and and the contract
between<00:06:50.340><c> the</c><00:06:50.639><c> extraction</c><00:06:51.060><c> and</c>

00:06:51.350 --> 00:06:51.360 align:start position:0%
between the extraction and
 

00:06:51.360 --> 00:06:53.930 align:start position:0%
between the extraction and
transformation<00:06:51.720><c> layers</c><00:06:52.319><c> is</c><00:06:52.979><c> again</c><00:06:53.160><c> the</c><00:06:53.520><c> data</c>

00:06:53.930 --> 00:06:53.940 align:start position:0%
transformation layers is again the data
 

00:06:53.940 --> 00:06:56.870 align:start position:0%
transformation layers is again the data
model<00:06:54.060><c> fire</c><00:06:54.660><c> hose</c><00:06:54.960><c> creates</c><00:06:55.860><c> and</c><00:06:56.340><c> for</c><00:06:56.759><c> every</c>

00:06:56.870 --> 00:06:56.880 align:start position:0%
model fire hose creates and for every
 

00:06:56.880 --> 00:07:00.230 align:start position:0%
model fire hose creates and for every
chain<00:06:57.060><c> you</c><00:06:57.300><c> can</c><00:06:57.419><c> imagine</c><00:06:57.720><c> the</c><00:06:58.919><c> best</c><00:06:59.699><c> data</c>

00:07:00.230 --> 00:07:00.240 align:start position:0%
chain you can imagine the best data
 

00:07:00.240 --> 00:07:02.150 align:start position:0%
chain you can imagine the best data
model<00:07:00.360><c> the</c><00:07:00.960><c> most</c><00:07:01.080><c> complete</c><00:07:01.560><c> and</c><00:07:01.919><c> that's</c><00:07:02.039><c> what</c>

00:07:02.150 --> 00:07:02.160 align:start position:0%
model the most complete and that's what
 

00:07:02.160 --> 00:07:04.370 align:start position:0%
model the most complete and that's what
he<00:07:02.340><c> done</c><00:07:02.520><c> for</c><00:07:02.699><c> fire</c><00:07:02.819><c> for</c><00:07:03.479><c> for</c><00:07:03.660><c> ethereum</c><00:07:04.139><c> for</c>

00:07:04.370 --> 00:07:04.380 align:start position:0%
he done for fire for for ethereum for
 

00:07:04.380 --> 00:07:06.950 align:start position:0%
he done for fire for for ethereum for
example<00:07:04.620><c> that</c><00:07:05.580><c> both</c><00:07:05.759><c> the</c><00:07:06.120><c> the</c><00:07:06.240><c> data</c><00:07:06.600><c> model</c><00:07:06.660><c> for</c>

00:07:06.950 --> 00:07:06.960 align:start position:0%
example that both the the data model for
 

00:07:06.960 --> 00:07:09.230 align:start position:0%
example that both the the data model for
ethereum<00:07:07.440><c> within</c><00:07:07.919><c> fire</c><00:07:08.100><c> hose</c><00:07:08.400><c> is</c><00:07:08.819><c> the</c><00:07:09.000><c> richest</c>

00:07:09.230 --> 00:07:09.240 align:start position:0%
ethereum within fire hose is the richest
 

00:07:09.240 --> 00:07:11.390 align:start position:0%
ethereum within fire hose is the richest
there<00:07:09.479><c> is</c><00:07:09.660><c> like</c><00:07:10.199><c> you</c><00:07:10.380><c> have</c><00:07:10.560><c> in</c><00:07:10.680><c> there</c><00:07:10.860><c> the</c><00:07:11.100><c> full</c>

00:07:11.390 --> 00:07:11.400 align:start position:0%
there is like you have in there the full
 

00:07:11.400 --> 00:07:13.909 align:start position:0%
there is like you have in there the full
call<00:07:11.759><c> tree</c><00:07:12.180><c> internal</c><00:07:12.960><c> transactions</c><00:07:13.560><c> you</c><00:07:13.740><c> have</c>

00:07:13.909 --> 00:07:13.919 align:start position:0%
call tree internal transactions you have
 

00:07:13.919 --> 00:07:16.129 align:start position:0%
call tree internal transactions you have
the<00:07:14.039><c> inputs</c><00:07:14.400><c> and</c><00:07:14.460><c> outputs</c><00:07:14.940><c> as</c><00:07:15.060><c> raw</c><00:07:15.360><c> bytes</c><00:07:15.780><c> you</c>

00:07:16.129 --> 00:07:16.139 align:start position:0%
the inputs and outputs as raw bytes you
 

00:07:16.139 --> 00:07:17.809 align:start position:0%
the inputs and outputs as raw bytes you
have<00:07:16.319><c> the</c><00:07:16.500><c> logs</c><00:07:16.800><c> obviously</c><00:07:17.220><c> you</c><00:07:17.400><c> have</c><00:07:17.580><c> the</c>

00:07:17.809 --> 00:07:17.819 align:start position:0%
have the logs obviously you have the
 

00:07:17.819 --> 00:07:20.089 align:start position:0%
have the logs obviously you have the
state<00:07:18.060><c> changes</c><00:07:18.600><c> like</c><00:07:19.139><c> you</c><00:07:19.259><c> see</c><00:07:19.380><c> on</c><00:07:19.500><c> etherscan</c>

00:07:20.089 --> 00:07:20.099 align:start position:0%
state changes like you see on etherscan
 

00:07:20.099 --> 00:07:23.150 align:start position:0%
state changes like you see on etherscan
down<00:07:20.639><c> to</c><00:07:20.819><c> the</c><00:07:21.440><c> internal</c><00:07:22.440><c> transaction</c><00:07:22.919><c> level</c>

00:07:23.150 --> 00:07:23.160 align:start position:0%
down to the internal transaction level
 

00:07:23.160 --> 00:07:25.070 align:start position:0%
down to the internal transaction level
you<00:07:23.460><c> have</c><00:07:23.639><c> balance</c><00:07:24.120><c> changes</c><00:07:24.539><c> the</c><00:07:24.780><c> same</c><00:07:24.900><c> way</c>

00:07:25.070 --> 00:07:25.080 align:start position:0%
you have balance changes the same way
 

00:07:25.080 --> 00:07:27.350 align:start position:0%
you have balance changes the same way
with<00:07:25.560><c> the</c><00:07:25.800><c> prior</c><00:07:26.099><c> value</c><00:07:26.400><c> and</c><00:07:26.759><c> the</c><00:07:26.940><c> next</c><00:07:27.120><c> value</c>

00:07:27.350 --> 00:07:27.360 align:start position:0%
with the prior value and the next value
 

00:07:27.360 --> 00:07:29.390 align:start position:0%
with the prior value and the next value
so<00:07:27.840><c> when</c><00:07:28.020><c> you're</c><00:07:28.139><c> doing</c><00:07:28.380><c> like</c><00:07:28.860><c> navigation</c>

00:07:29.390 --> 00:07:29.400 align:start position:0%
so when you're doing like navigation
 

00:07:29.400 --> 00:07:31.550 align:start position:0%
so when you're doing like navigation
backwards<00:07:29.940><c> or</c><00:07:30.060><c> forward</c><00:07:30.240><c> you</c><00:07:30.900><c> get</c><00:07:31.080><c> you</c><00:07:31.380><c> have</c>

00:07:31.550 --> 00:07:31.560 align:start position:0%
backwards or forward you get you have
 

00:07:31.560 --> 00:07:33.650 align:start position:0%
backwards or forward you get you have
the<00:07:31.740><c> data</c><00:07:32.039><c> you</c><00:07:32.160><c> need</c><00:07:32.340><c> you</c><00:07:32.940><c> have</c><00:07:33.060><c> also</c><00:07:33.360><c> gas</c>

00:07:33.650 --> 00:07:33.660 align:start position:0%
the data you need you have also gas
 

00:07:33.660 --> 00:07:35.450 align:start position:0%
the data you need you have also gas
costs<00:07:34.080><c> at</c><00:07:34.259><c> different</c><00:07:34.380><c> places</c><00:07:34.680><c> and</c><00:07:35.280><c> there's</c>

00:07:35.450 --> 00:07:35.460 align:start position:0%
costs at different places and there's
 

00:07:35.460 --> 00:07:37.670 align:start position:0%
costs at different places and there's
that<00:07:35.639><c> important</c><00:07:36.000><c> notion</c><00:07:36.360><c> of</c><00:07:36.599><c> total</c><00:07:37.199><c> ordering</c>

00:07:37.670 --> 00:07:37.680 align:start position:0%
that important notion of total ordering
 

00:07:37.680 --> 00:07:39.469 align:start position:0%
that important notion of total ordering
between<00:07:37.919><c> things</c><00:07:38.280><c> happening</c><00:07:38.580><c> within</c><00:07:38.940><c> the</c><00:07:39.120><c> logs</c>

00:07:39.469 --> 00:07:39.479 align:start position:0%
between things happening within the logs
 

00:07:39.479 --> 00:07:41.990 align:start position:0%
between things happening within the logs
State<00:07:39.780><c> changes</c><00:07:40.259><c> and</c><00:07:40.440><c> calls</c><00:07:40.800><c> all</c><00:07:41.639><c> of</c><00:07:41.759><c> these</c>

00:07:41.990 --> 00:07:42.000 align:start position:0%
State changes and calls all of these
 

00:07:42.000 --> 00:07:43.670 align:start position:0%
State changes and calls all of these
things<00:07:42.120><c> happening</c><00:07:42.539><c> during</c><00:07:42.840><c> execution</c><00:07:43.380><c> are</c>

00:07:43.670 --> 00:07:43.680 align:start position:0%
things happening during execution are
 

00:07:43.680 --> 00:07:45.469 align:start position:0%
things happening during execution are
totally<00:07:44.160><c> ordered</c><00:07:44.520><c> so</c><00:07:44.880><c> you</c><00:07:45.000><c> get</c><00:07:45.120><c> in</c><00:07:45.240><c> there</c>

00:07:45.469 --> 00:07:45.479 align:start position:0%
totally ordered so you get in there
 

00:07:45.479 --> 00:07:47.510 align:start position:0%
totally ordered so you get in there
everything<00:07:46.020><c> parity</c><00:07:46.560><c> traces</c><00:07:47.039><c> would</c><00:07:47.220><c> give</c><00:07:47.400><c> you</c>

00:07:47.510 --> 00:07:47.520 align:start position:0%
everything parity traces would give you
 

00:07:47.520 --> 00:07:49.850 align:start position:0%
everything parity traces would give you
and<00:07:48.120><c> more</c><00:07:48.360><c> and</c><00:07:48.960><c> everything</c><00:07:49.199><c> you</c><00:07:49.440><c> would</c><00:07:49.620><c> need</c>

00:07:49.850 --> 00:07:49.860 align:start position:0%
and more and everything you would need
 

00:07:49.860 --> 00:07:52.969 align:start position:0%
and more and everything you would need
to<00:07:50.220><c> rebuild</c><00:07:50.699><c> a</c><00:07:51.419><c> full</c><00:07:51.539><c> archive</c><00:07:51.960><c> node</c><00:07:52.319><c> from</c><00:07:52.620><c> Flat</c>

00:07:52.969 --> 00:07:52.979 align:start position:0%
to rebuild a full archive node from Flat
 

00:07:52.979 --> 00:07:55.189 align:start position:0%
to rebuild a full archive node from Flat
files<00:07:53.400><c> and</c><00:07:53.880><c> everything</c><00:07:54.060><c> there</c><00:07:54.360><c> is</c><00:07:54.660><c> goes</c><00:07:55.080><c> to</c>

00:07:55.189 --> 00:07:55.199 align:start position:0%
files and everything there is goes to
 

00:07:55.199 --> 00:07:58.070 align:start position:0%
files and everything there is goes to
the<00:07:55.440><c> transaction</c><00:07:55.860><c> level</c><00:07:56.280><c> not</c><00:07:57.240><c> rounded</c><00:07:57.780><c> at</c><00:07:57.960><c> the</c>

00:07:58.070 --> 00:07:58.080 align:start position:0%
the transaction level not rounded at the
 

00:07:58.080 --> 00:07:59.990 align:start position:0%
the transaction level not rounded at the
Block<00:07:58.199><c> Level</c><00:07:58.500><c> which</c><00:07:58.919><c> is</c><00:07:59.099><c> crucial</c><00:07:59.520><c> if</c><00:07:59.759><c> you</c><00:07:59.880><c> want</c>

00:07:59.990 --> 00:08:00.000 align:start position:0%
Block Level which is crucial if you want
 

00:08:00.000 --> 00:08:02.330 align:start position:0%
Block Level which is crucial if you want
to<00:08:00.120><c> index</c><00:08:00.360><c> with</c><00:08:00.539><c> Precision</c><00:08:01.080><c> right</c><00:08:01.680><c> it</c><00:08:02.160><c> doesn't</c>

00:08:02.330 --> 00:08:02.340 align:start position:0%
to index with Precision right it doesn't
 

00:08:02.340 --> 00:08:04.670 align:start position:0%
to index with Precision right it doesn't
rounding<00:08:03.120><c> of</c><00:08:03.240><c> blockchain</c><00:08:03.720><c> information</c><00:08:04.199><c> at</c>

00:08:04.670 --> 00:08:04.680 align:start position:0%
rounding of blockchain information at
 

00:08:04.680 --> 00:08:08.029 align:start position:0%
rounding of blockchain information at
the<00:08:04.860><c> Block</c><00:08:04.979><c> Level</c><00:08:05.280><c> is</c><00:08:06.060><c> sort</c><00:08:06.240><c> of</c><00:08:06.360><c> a</c><00:08:06.479><c> was</c><00:08:07.039><c> meant</c>

00:08:08.029 --> 00:08:08.039 align:start position:0%
the Block Level is sort of a was meant
 

00:08:08.039 --> 00:08:10.249 align:start position:0%
the Block Level is sort of a was meant
for<00:08:08.160><c> helping</c><00:08:08.759><c> in</c><00:08:08.880><c> consensus</c><00:08:09.539><c> right</c><00:08:10.020><c> but</c><00:08:10.139><c> it</c>

00:08:10.249 --> 00:08:10.259 align:start position:0%
for helping in consensus right but it
 

00:08:10.259 --> 00:08:11.809 align:start position:0%
for helping in consensus right but it
doesn't<00:08:10.380><c> mean</c><00:08:10.560><c> that</c><00:08:10.740><c> what</c><00:08:11.099><c> happens</c><00:08:11.220><c> mid</c><00:08:11.580><c> block</c>

00:08:11.809 --> 00:08:11.819 align:start position:0%
doesn't mean that what happens mid block
 

00:08:11.819 --> 00:08:13.550 align:start position:0%
doesn't mean that what happens mid block
is<00:08:12.060><c> of</c><00:08:12.180><c> less</c><00:08:12.419><c> value</c><00:08:12.660><c> than</c><00:08:12.960><c> what</c><00:08:13.139><c> happens</c><00:08:13.259><c> at</c>

00:08:13.550 --> 00:08:13.560 align:start position:0%
is of less value than what happens at
 

00:08:13.560 --> 00:08:16.730 align:start position:0%
is of less value than what happens at
the<00:08:13.740><c> boundaries</c><00:08:14.220><c> so</c><00:08:15.120><c> okay</c><00:08:15.840><c> so</c><00:08:16.380><c> that's</c><00:08:16.560><c> very</c>

00:08:16.730 --> 00:08:16.740 align:start position:0%
the boundaries so okay so that's very
 

00:08:16.740 --> 00:08:17.870 align:start position:0%
the boundaries so okay so that's very
interesting<00:08:17.099><c> and</c><00:08:17.220><c> now</c><00:08:17.400><c> regarding</c>

00:08:17.870 --> 00:08:17.880 align:start position:0%
interesting and now regarding
 

00:08:17.880 --> 00:08:20.270 align:start position:0%
interesting and now regarding
reliability<00:08:18.479><c> whoops</c><00:08:19.259><c> no</c><00:08:19.620><c> not</c><00:08:19.860><c> too</c><00:08:20.039><c> fast</c>

00:08:20.270 --> 00:08:20.280 align:start position:0%
reliability whoops no not too fast
 

00:08:20.280 --> 00:08:23.570 align:start position:0%
reliability whoops no not too fast
regarding<00:08:21.240><c> reliability</c><00:08:21.780><c> the</c><00:08:22.620><c> fire</c><00:08:22.740><c> hose</c><00:08:23.039><c> erpc</c>

00:08:23.570 --> 00:08:23.580 align:start position:0%
regarding reliability the fire hose erpc
 

00:08:23.580 --> 00:08:27.110 align:start position:0%
regarding reliability the fire hose erpc
stream<00:08:23.759><c> provides</c><00:08:24.620><c> reorg</c><00:08:25.620><c> messages</c><00:08:25.860><c> like</c><00:08:26.639><c> new</c>

00:08:27.110 --> 00:08:27.120 align:start position:0%
stream provides reorg messages like new
 

00:08:27.120 --> 00:08:29.330 align:start position:0%
stream provides reorg messages like new
block<00:08:27.360><c> or</c><00:08:27.780><c> undo</c><00:08:28.199><c> this</c><00:08:28.440><c> block</c><00:08:28.620><c> or</c><00:08:28.919><c> this</c><00:08:29.160><c> block</c>

00:08:29.330 --> 00:08:29.340 align:start position:0%
block or undo this block or this block
 

00:08:29.340 --> 00:08:32.510 align:start position:0%
block or undo this block or this block
is<00:08:29.580><c> now</c><00:08:29.759><c> final</c><00:08:30.500><c> accompanied</c><00:08:31.500><c> by</c><00:08:31.800><c> a</c><00:08:32.159><c> precious</c>

00:08:32.510 --> 00:08:32.520 align:start position:0%
is now final accompanied by a precious
 

00:08:32.520 --> 00:08:34.850 align:start position:0%
is now final accompanied by a precious
cursor<00:08:33.300><c> I</c><00:08:33.659><c> think</c><00:08:33.839><c> that's</c><00:08:34.020><c> really</c><00:08:34.380><c> key</c><00:08:34.680><c> here</c>

00:08:34.850 --> 00:08:34.860 align:start position:0%
cursor I think that's really key here
 

00:08:34.860 --> 00:08:37.370 align:start position:0%
cursor I think that's really key here
with<00:08:35.700><c> each</c><00:08:35.940><c> message</c><00:08:36.240><c> so</c><00:08:36.839><c> if</c><00:08:37.080><c> you</c><00:08:37.200><c> get</c>

00:08:37.370 --> 00:08:37.380 align:start position:0%
with each message so if you get
 

00:08:37.380 --> 00:08:39.709 align:start position:0%
with each message so if you get
disconnected<00:08:38.099><c> and</c><00:08:38.700><c> upon</c><00:08:39.120><c> reconnection</c><00:08:39.539><c> you</c>

00:08:39.709 --> 00:08:39.719 align:start position:0%
disconnected and upon reconnection you
 

00:08:39.719 --> 00:08:41.690 align:start position:0%
disconnected and upon reconnection you
give<00:08:39.899><c> back</c><00:08:40.140><c> that</c><00:08:40.380><c> cursor</c><00:08:40.860><c> you'll</c><00:08:41.520><c> continue</c>

00:08:41.690 --> 00:08:41.700 align:start position:0%
give back that cursor you'll continue
 

00:08:41.700 --> 00:08:43.790 align:start position:0%
give back that cursor you'll continue
exactly<00:08:42.419><c> where</c><00:08:42.599><c> you</c><00:08:42.779><c> left</c><00:08:42.959><c> off</c><00:08:43.200><c> and</c>

00:08:43.790 --> 00:08:43.800 align:start position:0%
exactly where you left off and
 

00:08:43.800 --> 00:08:45.410 align:start position:0%
exactly where you left off and
potentially<00:08:44.279><c> receiving</c><00:08:44.640><c> that</c><00:08:44.880><c> undo</c><00:08:45.240><c> say</c>

00:08:45.410 --> 00:08:45.420 align:start position:0%
potentially receiving that undo say
 

00:08:45.420 --> 00:08:47.990 align:start position:0%
potentially receiving that undo say
signal<00:08:45.959><c> that</c><00:08:46.320><c> you</c><00:08:46.680><c> would</c><00:08:46.860><c> not</c><00:08:47.100><c> have</c><00:08:47.399><c> seen</c><00:08:47.640><c> were</c>

00:08:47.990 --> 00:08:48.000 align:start position:0%
signal that you would not have seen were
 

00:08:48.000 --> 00:08:49.910 align:start position:0%
signal that you would not have seen were
you<00:08:48.180><c> disconnected</c><00:08:48.360><c> right</c><00:08:48.899><c> so</c><00:08:49.380><c> you</c><00:08:49.560><c> will</c><00:08:49.740><c> get</c>

00:08:49.910 --> 00:08:49.920 align:start position:0%
you disconnected right so you will get
 

00:08:49.920 --> 00:08:51.949 align:start position:0%
you disconnected right so you will get
it<00:08:50.040><c> so</c><00:08:50.279><c> with</c><00:08:50.459><c> the</c><00:08:50.640><c> guarantees</c><00:08:51.120><c> or</c><00:08:51.300><c> linearity</c>

00:08:51.949 --> 00:08:51.959 align:start position:0%
it so with the guarantees or linearity
 

00:08:51.959 --> 00:08:54.949 align:start position:0%
it so with the guarantees or linearity
of<00:08:52.860><c> the</c><00:08:53.040><c> stream</c><00:08:53.220><c> so</c><00:08:54.120><c> no</c><00:08:54.300><c> websocket</c>

00:08:54.949 --> 00:08:54.959 align:start position:0%
of the stream so no websocket
 

00:08:54.959 --> 00:08:56.509 align:start position:0%
of the stream so no websocket
implementation<00:08:55.380><c> would</c><00:08:55.920><c> do</c><00:08:56.100><c> that</c><00:08:56.160><c> because</c><00:08:56.339><c> it</c>

00:08:56.509 --> 00:08:56.519 align:start position:0%
implementation would do that because it
 

00:08:56.519 --> 00:08:58.610 align:start position:0%
implementation would do that because it
doesn't<00:08:56.940><c> make</c><00:08:57.180><c> sense</c><00:08:57.300><c> for</c><00:08:57.540><c> a</c><00:08:57.779><c> single</c><00:08:58.080><c> node</c><00:08:58.380><c> to</c>

00:08:58.610 --> 00:08:58.620 align:start position:0%
doesn't make sense for a single node to
 

00:08:58.620 --> 00:09:00.470 align:start position:0%
doesn't make sense for a single node to
track<00:08:58.920><c> all</c><00:08:59.220><c> the</c><00:08:59.399><c> force</c><00:08:59.700><c> possible</c><00:09:00.000><c> even</c><00:09:00.180><c> two</c>

00:09:00.470 --> 00:09:00.480 align:start position:0%
track all the force possible even two
 

00:09:00.480 --> 00:09:02.990 align:start position:0%
track all the force possible even two
days<00:09:00.660><c> after</c><00:09:00.959><c> the</c><00:09:01.260><c> fact</c><00:09:01.459><c> and</c><00:09:02.459><c> undue</c><00:09:02.820><c> messages</c>

00:09:02.990 --> 00:09:03.000 align:start position:0%
days after the fact and undue messages
 

00:09:03.000 --> 00:09:05.990 align:start position:0%
days after the fact and undue messages
come<00:09:03.540><c> with</c><00:09:03.839><c> full</c><00:09:04.260><c> payloads</c><00:09:05.040><c> so</c><00:09:05.519><c> you</c><00:09:05.700><c> get</c><00:09:05.820><c> all</c>

00:09:05.990 --> 00:09:06.000 align:start position:0%
come with full payloads so you get all
 

00:09:06.000 --> 00:09:07.610 align:start position:0%
come with full payloads so you get all
the<00:09:06.180><c> Delta</c><00:09:06.540><c> so</c><00:09:06.779><c> you</c><00:09:06.899><c> can</c><00:09:06.959><c> just</c><00:09:07.080><c> turn</c><00:09:07.260><c> around</c><00:09:07.380><c> to</c>

00:09:07.610 --> 00:09:07.620 align:start position:0%
the Delta so you can just turn around to
 

00:09:07.620 --> 00:09:09.650 align:start position:0%
the Delta so you can just turn around to
your<00:09:07.680><c> database</c><00:09:07.980><c> and</c><00:09:08.160><c> apply</c><00:09:08.459><c> the</c><00:09:08.580><c> reverse</c><00:09:09.000><c> or</c>

00:09:09.650 --> 00:09:09.660 align:start position:0%
your database and apply the reverse or
 

00:09:09.660 --> 00:09:12.410 align:start position:0%
your database and apply the reverse or
you<00:09:09.779><c> know</c><00:09:09.959><c> pluck</c><00:09:10.800><c> again</c><00:09:11.160><c> in</c><00:09:11.580><c> the</c><00:09:11.700><c> the</c><00:09:11.940><c> full</c>

00:09:12.410 --> 00:09:12.420 align:start position:0%
you know pluck again in the the full
 

00:09:12.420 --> 00:09:13.730 align:start position:0%
you know pluck again in the the full
payload<00:09:12.899><c> of</c><00:09:13.019><c> what</c><00:09:13.140><c> happened</c><00:09:13.260><c> in</c><00:09:13.500><c> the</c><00:09:13.620><c> block</c>

00:09:13.730 --> 00:09:13.740 align:start position:0%
payload of what happened in the block
 

00:09:13.740 --> 00:09:16.130 align:start position:0%
payload of what happened in the block
and<00:09:14.519><c> just</c><00:09:14.640><c> like</c><00:09:14.880><c> what</c><00:09:15.060><c> you</c><00:09:15.120><c> do</c><00:09:15.240><c> is</c><00:09:15.420><c> so</c><00:09:15.959><c> it</c>

00:09:16.130 --> 00:09:16.140 align:start position:0%
and just like what you do is so it
 

00:09:16.140 --> 00:09:18.110 align:start position:0%
and just like what you do is so it
doesn't<00:09:16.260><c> pose</c><00:09:16.560><c> on</c><00:09:16.680><c> the</c><00:09:16.860><c> reader</c><00:09:17.160><c> to</c><00:09:17.519><c> store</c><00:09:17.820><c> what</c>

00:09:18.110 --> 00:09:18.120 align:start position:0%
doesn't pose on the reader to store what
 

00:09:18.120 --> 00:09:20.150 align:start position:0%
doesn't pose on the reader to store what
happened<00:09:18.360><c> like</c><00:09:19.080><c> at</c><00:09:19.320><c> that</c><00:09:19.500><c> previous</c><00:09:19.620><c> block</c><00:09:19.920><c> if</c>

00:09:20.150 --> 00:09:20.160 align:start position:0%
happened like at that previous block if
 

00:09:20.160 --> 00:09:22.310 align:start position:0%
happened like at that previous block if
the<00:09:20.339><c> signal</c><00:09:20.640><c> was</c><00:09:20.820><c> just</c><00:09:21.000><c> remove</c><00:09:21.240><c> block</c><00:09:21.600><c> 7000</c>

00:09:22.310 --> 00:09:22.320 align:start position:0%
the signal was just remove block 7000
 

00:09:22.320 --> 00:09:24.590 align:start position:0%
the signal was just remove block 7000
right<00:09:22.560><c> okay</c><00:09:23.220><c> and</c><00:09:23.760><c> when</c><00:09:23.940><c> you</c><00:09:24.060><c> commit</c><00:09:24.360><c> that</c>

00:09:24.590 --> 00:09:24.600 align:start position:0%
right okay and when you commit that
 

00:09:24.600 --> 00:09:26.690 align:start position:0%
right okay and when you commit that
cursor<00:09:24.959><c> to</c><00:09:25.200><c> your</c><00:09:25.380><c> transfer</c><00:09:25.800><c> database</c><00:09:26.279><c> well</c>

00:09:26.690 --> 00:09:26.700 align:start position:0%
cursor to your transfer database well
 

00:09:26.700 --> 00:09:28.970 align:start position:0%
cursor to your transfer database well
you<00:09:26.880><c> get</c><00:09:27.060><c> through</c><00:09:27.240><c> that</c><00:09:27.480><c> you</c><00:09:28.260><c> know</c><00:09:28.500><c> finally</c>

00:09:28.970 --> 00:09:28.980 align:start position:0%
you get through that you know finally
 

00:09:28.980 --> 00:09:32.509 align:start position:0%
you get through that you know finally
some<00:09:29.339><c> consistency</c><00:09:29.940><c> guarantees</c><00:09:30.839><c> within</c><00:09:31.740><c> your</c>

00:09:32.509 --> 00:09:32.519 align:start position:0%
some consistency guarantees within your
 

00:09:32.519 --> 00:09:34.790 align:start position:0%
some consistency guarantees within your
you<00:09:32.820><c> know</c><00:09:32.940><c> your</c><00:09:33.240><c> your</c><00:09:33.540><c> back</c><00:09:33.779><c> end</c><00:09:33.899><c> so</c><00:09:34.440><c> some</c><00:09:34.680><c> of</c>

00:09:34.790 --> 00:09:34.800 align:start position:0%
you know your your back end so some of
 

00:09:34.800 --> 00:09:37.130 align:start position:0%
you know your your back end so some of
our<00:09:34.860><c> users</c><00:09:35.160><c> told</c><00:09:35.459><c> us</c><00:09:35.640><c> they</c><00:09:36.000><c> could</c><00:09:36.180><c> cut</c><00:09:36.480><c> ninety</c>

00:09:37.130 --> 00:09:37.140 align:start position:0%
our users told us they could cut ninety
 

00:09:37.140 --> 00:09:39.590 align:start position:0%
our users told us they could cut ninety
percent<00:09:37.260><c> nine</c><00:09:37.800><c> zero</c><00:09:38.100><c> of</c><00:09:38.519><c> their</c><00:09:38.700><c> code</c><00:09:38.940><c> reading</c>

00:09:39.590 --> 00:09:39.600 align:start position:0%
percent nine zero of their code reading
 

00:09:39.600 --> 00:09:41.630 align:start position:0%
percent nine zero of their code reading
the<00:09:39.779><c> chain</c><00:09:39.959><c> because</c><00:09:40.680><c> they</c><00:09:40.980><c> were</c><00:09:41.100><c> relying</c><00:09:41.459><c> on</c>

00:09:41.630 --> 00:09:41.640 align:start position:0%
the chain because they were relying on
 

00:09:41.640 --> 00:09:44.810 align:start position:0%
the chain because they were relying on
some<00:09:42.060><c> that</c><00:09:42.720><c> reliable</c><00:09:43.140><c> stream</c><00:09:43.920><c> and</c><00:09:44.339><c> okay</c><00:09:44.519><c> and</c>

00:09:44.810 --> 00:09:44.820 align:start position:0%
some that reliable stream and okay and
 

00:09:44.820 --> 00:09:47.090 align:start position:0%
some that reliable stream and okay and
it<00:09:44.940><c> also</c><00:09:45.240><c> lays</c><00:09:45.600><c> lies</c><00:09:46.380><c> down</c><00:09:46.500><c> the</c><00:09:46.740><c> foundation</c>

00:09:47.090 --> 00:09:47.100 align:start position:0%
it also lays lies down the foundation
 

00:09:47.100 --> 00:09:49.910 align:start position:0%
it also lays lies down the foundation
for<00:09:47.459><c> massively</c><00:09:47.940><c> paralyzed</c><00:09:48.480><c> operation</c><00:09:48.920><c> files</c>

00:09:49.910 --> 00:09:49.920 align:start position:0%
for massively paralyzed operation files
 

00:09:49.920 --> 00:09:52.430 align:start position:0%
for massively paralyzed operation files
plus<00:09:50.160><c> the</c><00:09:50.459><c> stream</c><00:09:50.700><c> and</c><00:09:51.660><c> so</c><00:09:51.959><c> this</c><00:09:52.140><c> is</c><00:09:52.260><c> the</c>

00:09:52.430 --> 00:09:52.440 align:start position:0%
plus the stream and so this is the
 

00:09:52.440 --> 00:09:55.009 align:start position:0%
plus the stream and so this is the
future<00:09:52.760><c> of</c><00:09:53.760><c> the</c><00:09:53.940><c> graph</c><00:09:54.300><c> unbeatable</c>

00:09:55.009 --> 00:09:55.019 align:start position:0%
future of the graph unbeatable
 

00:09:55.019 --> 00:09:57.110 align:start position:0%
future of the graph unbeatable
performance<00:09:55.620><c> and</c><00:09:56.339><c> it's</c><00:09:56.459><c> core</c><00:09:56.700><c> to</c><00:09:56.940><c> our</c>

00:09:57.110 --> 00:09:57.120 align:start position:0%
performance and it's core to our
 

00:09:57.120 --> 00:09:59.449 align:start position:0%
performance and it's core to our
multi-chain<00:09:57.720><c> strategy</c><00:09:58.200><c> because</c><00:09:58.500><c> you</c><00:09:59.339><c> know</c>

00:09:59.449 --> 00:09:59.459 align:start position:0%
multi-chain strategy because you know
 

00:09:59.459 --> 00:10:03.769 align:start position:0%
multi-chain strategy because you know
any<00:10:00.120><c> blockchain</c><00:10:00.660><c> can</c><00:10:01.380><c> have</c><00:10:01.620><c> that</c><00:10:01.980><c> data</c><00:10:02.519><c> model</c>

00:10:03.769 --> 00:10:03.779 align:start position:0%
any blockchain can have that data model
 

00:10:03.779 --> 00:10:06.110 align:start position:0%
any blockchain can have that data model
uh<00:10:04.320><c> now</c><00:10:04.500><c> let's</c><00:10:04.680><c> dig</c><00:10:04.860><c> into</c><00:10:04.980><c> sub</c><00:10:05.279><c> streams</c>

00:10:06.110 --> 00:10:06.120 align:start position:0%
uh now let's dig into sub streams
 

00:10:06.120 --> 00:10:08.750 align:start position:0%
uh now let's dig into sub streams
substreams<00:10:07.019><c> is</c><00:10:07.200><c> a</c><00:10:07.500><c> powerful</c><00:10:07.920><c> clustered</c>

00:10:08.750 --> 00:10:08.760 align:start position:0%
substreams is a powerful clustered
 

00:10:08.760 --> 00:10:11.449 align:start position:0%
substreams is a powerful clustered
engine<00:10:09.000><c> to</c><00:10:09.660><c> process</c><00:10:09.959><c> blockchain</c><00:10:10.500><c> data</c><00:10:10.980><c> it's</c><00:10:11.339><c> a</c>

00:10:11.449 --> 00:10:11.459 align:start position:0%
engine to process blockchain data it's a
 

00:10:11.459 --> 00:10:12.889 align:start position:0%
engine to process blockchain data it's a
streaming<00:10:11.760><c> first</c><00:10:11.940><c> engine</c><00:10:12.120><c> and</c><00:10:12.420><c> it's</c><00:10:12.600><c> powered</c>

00:10:12.889 --> 00:10:12.899 align:start position:0%
streaming first engine and it's powered
 

00:10:12.899 --> 00:10:14.990 align:start position:0%
streaming first engine and it's powered
by<00:10:13.019><c> the</c><00:10:13.140><c> fire</c><00:10:13.260><c> hose</c><00:10:13.500><c> underneath</c><00:10:13.800><c> and</c><00:10:14.339><c> its</c><00:10:14.700><c> data</c>

00:10:14.990 --> 00:10:15.000 align:start position:0%
by the fire hose underneath and its data
 

00:10:15.000 --> 00:10:17.269 align:start position:0%
by the fire hose underneath and its data
models<00:10:15.300><c> of</c><00:10:15.480><c> the</c><00:10:15.660><c> chain</c><00:10:15.779><c> so</c><00:10:16.080><c> let's</c><00:10:16.200><c> dig</c><00:10:16.380><c> in</c>

00:10:17.269 --> 00:10:17.279 align:start position:0%
models of the chain so let's dig in
 

00:10:17.279 --> 00:10:19.790 align:start position:0%
models of the chain so let's dig in
here<00:10:17.760><c> are</c><00:10:17.940><c> a</c><00:10:17.940><c> few</c><00:10:18.060><c> quick</c><00:10:18.240><c> facts</c><00:10:18.660><c> it's</c><00:10:19.320><c> invoked</c>

00:10:19.790 --> 00:10:19.800 align:start position:0%
here are a few quick facts it's invoked
 

00:10:19.800 --> 00:10:23.389 align:start position:0%
here are a few quick facts it's invoked
as<00:10:19.980><c> a</c><00:10:20.160><c> single</c><00:10:20.519><c> Jace</c><00:10:21.000><c> grpc</c><00:10:21.899><c> call</c><00:10:22.260><c> and</c><00:10:22.920><c> within</c>

00:10:23.389 --> 00:10:23.399 align:start position:0%
as a single Jace grpc call and within
 

00:10:23.399 --> 00:10:24.829 align:start position:0%
as a single Jace grpc call and within
the<00:10:23.519><c> request</c><00:10:23.760><c> we</c><00:10:23.940><c> provide</c><00:10:24.240><c> all</c><00:10:24.660><c> the</c>

00:10:24.829 --> 00:10:24.839 align:start position:0%
the request we provide all the
 

00:10:24.839 --> 00:10:26.810 align:start position:0%
the request we provide all the
transformation<00:10:25.200><c> code</c><00:10:25.740><c> like</c><00:10:26.160><c> you'll</c><00:10:26.459><c> have</c><00:10:26.640><c> in</c>

00:10:26.810 --> 00:10:26.820 align:start position:0%
transformation code like you'll have in
 

00:10:26.820 --> 00:10:28.610 align:start position:0%
transformation code like you'll have in
there<00:10:26.940><c> oh</c><00:10:27.180><c> it's</c><00:10:27.420><c> too</c><00:10:27.600><c> low</c><00:10:27.720><c> you'll</c><00:10:28.380><c> have</c><00:10:28.500><c> in</c>

00:10:28.610 --> 00:10:28.620 align:start position:0%
there oh it's too low you'll have in
 

00:10:28.620 --> 00:10:30.730 align:start position:0%
there oh it's too low you'll have in
there<00:10:28.740><c> the</c><00:10:29.100><c> code</c><00:10:29.339><c> from</c><00:10:29.580><c> some</c><00:10:29.820><c> wasm</c><00:10:30.300><c> modules</c>

00:10:30.730 --> 00:10:30.740 align:start position:0%
there the code from some wasm modules
 

00:10:30.740 --> 00:10:33.350 align:start position:0%
there the code from some wasm modules
relationships<00:10:31.740><c> within</c><00:10:32.040><c> the</c><00:10:32.160><c> modules</c><00:10:32.519><c> and</c><00:10:33.180><c> uh</c>

00:10:33.350 --> 00:10:33.360 align:start position:0%
relationships within the modules and uh
 

00:10:33.360 --> 00:10:34.910 align:start position:0%
relationships within the modules and uh
you<00:10:33.540><c> know</c><00:10:33.660><c> all</c><00:10:33.839><c> the</c><00:10:34.019><c> transaction</c><00:10:34.380><c> the</c>

00:10:34.910 --> 00:10:34.920 align:start position:0%
you know all the transaction the
 

00:10:34.920 --> 00:10:37.009 align:start position:0%
you know all the transaction the
Transformations<00:10:35.580><c> within</c><00:10:36.180><c> the</c><00:10:36.300><c> request</c><00:10:36.540><c> it's</c>

00:10:37.009 --> 00:10:37.019 align:start position:0%
Transformations within the request it's
 

00:10:37.019 --> 00:10:38.810 align:start position:0%
Transformations within the request it's
not<00:10:37.320><c> a</c><00:10:37.500><c> long</c><00:10:37.620><c> running</c><00:10:37.800><c> process</c><00:10:38.220><c> except</c><00:10:38.519><c> if</c><00:10:38.640><c> you</c>

00:10:38.810 --> 00:10:38.820 align:start position:0%
not a long running process except if you
 

00:10:38.820 --> 00:10:40.670 align:start position:0%
not a long running process except if you
run<00:10:39.000><c> it</c><00:10:39.120><c> for</c><00:10:39.180><c> long</c><00:10:39.360><c> it's</c><00:10:39.540><c> not</c><00:10:39.779><c> a</c><00:10:39.959><c> service</c><00:10:40.320><c> you</c>

00:10:40.670 --> 00:10:40.680 align:start position:0%
run it for long it's not a service you
 

00:10:40.680 --> 00:10:43.310 align:start position:0%
run it for long it's not a service you
you<00:10:40.860><c> spin</c><00:10:41.160><c> up</c><00:10:41.339><c> right</c><00:10:41.760><c> and</c><00:10:42.480><c> the</c><00:10:42.779><c> backing</c><00:10:43.080><c> nodes</c>

00:10:43.310 --> 00:10:43.320 align:start position:0%
you spin up right and the backing nodes
 

00:10:43.320 --> 00:10:44.930 align:start position:0%
you spin up right and the backing nodes
are<00:10:43.500><c> stateless</c><00:10:43.920><c> which</c><00:10:44.279><c> provide</c><00:10:44.579><c> nice</c>

00:10:44.930 --> 00:10:44.940 align:start position:0%
are stateless which provide nice
 

00:10:44.940 --> 00:10:47.690 align:start position:0%
are stateless which provide nice
scalability<00:10:45.600><c> properties</c><00:10:46.279><c> modules</c><00:10:47.279><c> for</c>

00:10:47.690 --> 00:10:47.700 align:start position:0%
scalability properties modules for
 

00:10:47.700 --> 00:10:49.610 align:start position:0%
scalability properties modules for
Transformations<00:10:48.120><c> are</c><00:10:48.420><c> written</c><00:10:48.779><c> in</c><00:10:48.899><c> Rust</c><00:10:49.200><c> they</c>

00:10:49.610 --> 00:10:49.620 align:start position:0%
Transformations are written in Rust they
 

00:10:49.620 --> 00:10:51.170 align:start position:0%
Transformations are written in Rust they
compile<00:10:49.860><c> to</c><00:10:50.100><c> wasm</c><00:10:50.459><c> and</c><00:10:50.640><c> they're</c><00:10:50.700><c> running</c><00:10:50.880><c> a</c>

00:10:51.170 --> 00:10:51.180 align:start position:0%
compile to wasm and they're running a
 

00:10:51.180 --> 00:10:53.449 align:start position:0%
compile to wasm and they're running a
secure<00:10:51.420><c> sandbox</c><00:10:52.019><c> on</c><00:10:52.620><c> on</c><00:10:52.800><c> the</c><00:10:52.980><c> infrastructure</c>

00:10:53.449 --> 00:10:53.459 align:start position:0%
secure sandbox on on the infrastructure
 

00:10:53.459 --> 00:10:55.069 align:start position:0%
secure sandbox on on the infrastructure
they're<00:10:53.579><c> similar</c><00:10:53.940><c> to</c><00:10:54.000><c> the</c><00:10:54.120><c> sub</c><00:10:54.240><c> graphs</c><00:10:54.660><c> and</c>

00:10:55.069 --> 00:10:55.079 align:start position:0%
they're similar to the sub graphs and
 

00:10:55.079 --> 00:10:56.630 align:start position:0%
they're similar to the sub graphs and
the<00:10:55.260><c> ultimate</c><00:10:55.560><c> data</c><00:10:55.860><c> source</c><00:10:56.160><c> being</c><00:10:56.339><c> the</c>

00:10:56.630 --> 00:10:56.640 align:start position:0%
the ultimate data source being the
 

00:10:56.640 --> 00:10:59.810 align:start position:0%
the ultimate data source being the
blockchain<00:10:57.120><c> data</c><00:10:57.660><c> being</c><00:10:58.079><c> deterministic</c><00:10:58.980><c> all</c>

00:10:59.810 --> 00:10:59.820 align:start position:0%
blockchain data being deterministic all
 

00:10:59.820 --> 00:11:01.790 align:start position:0%
blockchain data being deterministic all
the<00:11:00.000><c> transformation</c><00:11:00.420><c> outputs</c><00:11:01.200><c> are</c><00:11:01.380><c> also</c>

00:11:01.790 --> 00:11:01.800 align:start position:0%
the transformation outputs are also
 

00:11:01.800 --> 00:11:04.550 align:start position:0%
the transformation outputs are also
deterministic<00:11:02.700><c> and</c><00:11:03.600><c> the</c><00:11:03.720><c> request</c><00:11:04.079><c> if</c><00:11:04.380><c> the</c>

00:11:04.550 --> 00:11:04.560 align:start position:0%
deterministic and the request if the
 

00:11:04.560 --> 00:11:07.130 align:start position:0%
deterministic and the request if the
request<00:11:04.860><c> you</c><00:11:05.040><c> send</c><00:11:05.220><c> involves</c><00:11:05.760><c> process</c><00:11:06.300><c> prior</c>

00:11:07.130 --> 00:11:07.140 align:start position:0%
request you send involves process prior
 

00:11:07.140 --> 00:11:09.290 align:start position:0%
request you send involves process prior
history<00:11:07.440><c> even</c><00:11:07.980><c> if</c><00:11:08.220><c> it's</c><00:11:08.339><c> 15</c><00:11:08.579><c> million</c><00:11:09.000><c> blocks</c>

00:11:09.290 --> 00:11:09.300 align:start position:0%
history even if it's 15 million blocks
 

00:11:09.300 --> 00:11:10.850 align:start position:0%
history even if it's 15 million blocks
well<00:11:09.480><c> the</c><00:11:09.720><c> substream's</c><00:11:10.200><c> runtime</c><00:11:10.500><c> will</c><00:11:10.740><c> then</c>

00:11:10.850 --> 00:11:10.860 align:start position:0%
well the substream's runtime will then
 

00:11:10.860 --> 00:11:13.130 align:start position:0%
well the substream's runtime will then
turn<00:11:11.100><c> around</c><00:11:11.300><c> and</c><00:11:12.300><c> orchestrate</c><00:11:12.899><c> the</c>

00:11:13.130 --> 00:11:13.140 align:start position:0%
turn around and orchestrate the
 

00:11:13.140 --> 00:11:15.290 align:start position:0%
turn around and orchestrate the
execution<00:11:13.620><c> of</c><00:11:13.920><c> a</c><00:11:14.100><c> multitude</c><00:11:14.579><c> of</c><00:11:14.700><c> smaller</c><00:11:15.120><c> jobs</c>

00:11:15.290 --> 00:11:15.300 align:start position:0%
execution of a multitude of smaller jobs
 

00:11:15.300 --> 00:11:18.290 align:start position:0%
execution of a multitude of smaller jobs
in<00:11:16.140><c> parallel</c><00:11:16.560><c> fuse</c><00:11:17.040><c> the</c><00:11:17.220><c> is</c><00:11:17.640><c> lost</c><00:11:17.820><c> on</c><00:11:18.060><c> the</c><00:11:18.240><c> Fly</c>

00:11:18.290 --> 00:11:18.300 align:start position:0%
in parallel fuse the is lost on the Fly
 

00:11:18.300 --> 00:11:20.810 align:start position:0%
in parallel fuse the is lost on the Fly
for<00:11:18.600><c> you</c><00:11:18.720><c> and</c><00:11:18.959><c> aggregate</c><00:11:19.500><c> the</c><00:11:20.100><c> results</c><00:11:20.220><c> to</c>

00:11:20.810 --> 00:11:20.820 align:start position:0%
for you and aggregate the results to
 

00:11:20.820 --> 00:11:22.790 align:start position:0%
for you and aggregate the results to
simulate<00:11:21.240><c> a</c><00:11:21.480><c> linear</c><00:11:21.779><c> execution</c><00:11:22.320><c> so</c><00:11:22.500><c> you</c><00:11:22.680><c> would</c>

00:11:22.790 --> 00:11:22.800 align:start position:0%
simulate a linear execution so you would
 

00:11:22.800 --> 00:11:24.710 align:start position:0%
simulate a linear execution so you would
see<00:11:22.980><c> a</c><00:11:23.100><c> dime</c><00:11:23.279><c> in</c><00:11:23.519><c> the</c><00:11:23.700><c> difference</c><00:11:23.880><c> and</c><00:11:24.420><c> all</c><00:11:24.600><c> the</c>

00:11:24.710 --> 00:11:24.720 align:start position:0%
see a dime in the difference and all the
 

00:11:24.720 --> 00:11:26.449 align:start position:0%
see a dime in the difference and all the
results<00:11:24.899><c> are</c><00:11:25.200><c> streamed</c><00:11:25.680><c> back</c><00:11:25.800><c> to</c><00:11:25.980><c> you</c><00:11:26.100><c> as</c><00:11:26.279><c> fast</c>

00:11:26.449 --> 00:11:26.459 align:start position:0%
results are streamed back to you as fast
 

00:11:26.459 --> 00:11:28.009 align:start position:0%
results are streamed back to you as fast
as<00:11:26.700><c> possible</c><00:11:27.000><c> with</c><00:11:27.240><c> same</c><00:11:27.540><c> guarantees</c>

00:11:28.009 --> 00:11:28.019 align:start position:0%
as possible with same guarantees
 

00:11:28.019 --> 00:11:29.990 align:start position:0%
as possible with same guarantees
provided<00:11:28.380><c> by</c><00:11:28.560><c> the</c><00:11:28.680><c> fire</c><00:11:28.860><c> hose</c><00:11:29.160><c> with</c><00:11:29.700><c> a</c><00:11:29.880><c> block</c>

00:11:29.990 --> 00:11:30.000 align:start position:0%
provided by the fire hose with a block
 

00:11:30.000 --> 00:11:32.810 align:start position:0%
provided by the fire hose with a block
per<00:11:30.240><c> block</c><00:11:30.480><c> cursor</c><00:11:31.019><c> and</c><00:11:31.860><c> a</c><00:11:32.220><c> transparent</c>

00:11:32.810 --> 00:11:32.820 align:start position:0%
per block cursor and a transparent
 

00:11:32.820 --> 00:11:35.150 align:start position:0%
per block cursor and a transparent
handoff<00:11:33.300><c> from</c><00:11:33.600><c> batching</c><00:11:34.200><c> into</c><00:11:34.500><c> a</c><00:11:34.800><c> historical</c>

00:11:35.150 --> 00:11:35.160 align:start position:0%
handoff from batching into a historical
 

00:11:35.160 --> 00:11:37.670 align:start position:0%
handoff from batching into a historical
processing<00:11:35.760><c> to</c><00:11:36.360><c> the</c><00:11:36.540><c> real-time</c><00:11:36.959><c> low</c><00:11:37.260><c> latency</c>

00:11:37.670 --> 00:11:37.680 align:start position:0%
processing to the real-time low latency
 

00:11:37.680 --> 00:11:40.850 align:start position:0%
processing to the real-time low latency
rewards<00:11:38.279><c> aware</c><00:11:38.940><c> stream</c><00:11:39.779><c> of</c><00:11:40.140><c> the</c><00:11:40.320><c> head</c><00:11:40.500><c> of</c><00:11:40.680><c> the</c>

00:11:40.850 --> 00:11:40.860 align:start position:0%
rewards aware stream of the head of the
 

00:11:40.860 --> 00:11:43.190 align:start position:0%
rewards aware stream of the head of the
chain<00:11:41.040><c> so</c><00:11:41.820><c> let</c><00:11:42.060><c> me</c><00:11:42.180><c> show</c><00:11:42.360><c> you</c><00:11:42.779><c> if</c><00:11:43.019><c> you're</c>

00:11:43.190 --> 00:11:43.200 align:start position:0%
chain so let me show you if you're
 

00:11:43.200 --> 00:11:45.110 align:start position:0%
chain so let me show you if you're
interested<00:11:43.560><c> how</c><00:11:44.220><c> we</c><00:11:44.399><c> create</c><00:11:44.579><c> one</c><00:11:44.820><c> of</c><00:11:44.940><c> these</c>

00:11:45.110 --> 00:11:45.120 align:start position:0%
interested how we create one of these
 

00:11:45.120 --> 00:11:46.490 align:start position:0%
interested how we create one of these
things<00:11:45.240><c> raise</c><00:11:45.540><c> your</c><00:11:45.720><c> hand</c><00:11:45.839><c> if</c><00:11:46.019><c> you're</c><00:11:46.140><c> curious</c>

00:11:46.490 --> 00:11:46.500 align:start position:0%
things raise your hand if you're curious
 

00:11:46.500 --> 00:11:49.490 align:start position:0%
things raise your hand if you're curious
okay<00:11:47.279><c> you're</c><00:11:47.640><c> good</c><00:11:47.820><c> okay</c><00:11:48.480><c> so</c><00:11:48.899><c> let's</c><00:11:49.079><c> start</c><00:11:49.320><c> we</c>

00:11:49.490 --> 00:11:49.500 align:start position:0%
okay you're good okay so let's start we
 

00:11:49.500 --> 00:11:51.470 align:start position:0%
okay you're good okay so let's start we
start<00:11:49.680><c> with</c><00:11:49.860><c> a</c><00:11:50.100><c> manifest</c><00:11:50.579><c> like</c><00:11:51.000><c> that</c><00:11:51.180><c> do</c><00:11:51.360><c> you</c>

00:11:51.470 --> 00:11:51.480 align:start position:0%
start with a manifest like that do you
 

00:11:51.480 --> 00:11:53.750 align:start position:0%
start with a manifest like that do you
see<00:11:51.600><c> that</c><00:11:51.779><c> down</c><00:11:52.019><c> here</c><00:11:52.320><c> can</c><00:11:52.980><c> move</c><00:11:53.220><c> the</c><00:11:53.279><c> podium</c><00:11:53.519><c> I</c>

00:11:53.750 --> 00:11:53.760 align:start position:0%
see that down here can move the podium I
 

00:11:53.760 --> 00:11:56.389 align:start position:0%
see that down here can move the podium I
can't<00:11:53.959><c> so</c><00:11:54.959><c> there's</c><00:11:55.140><c> package</c><00:11:55.620><c> information</c><00:11:55.860><c> you</c>

00:11:56.389 --> 00:11:56.399 align:start position:0%
can't so there's package information you
 

00:11:56.399 --> 00:11:58.069 align:start position:0%
can't so there's package information you
know<00:11:56.519><c> some</c><00:11:56.820><c> metadata</c><00:11:57.300><c> there</c><00:11:57.480><c> you</c><00:11:57.899><c> have</c>

00:11:58.069 --> 00:11:58.079 align:start position:0%
know some metadata there you have
 

00:11:58.079 --> 00:12:00.050 align:start position:0%
know some metadata there you have
pointers<00:11:58.500><c> to</c><00:11:58.740><c> the</c><00:11:58.920><c> Proto</c><00:11:59.279><c> buff</c><00:11:59.519><c> that</c><00:11:59.880><c> you'll</c>

00:12:00.050 --> 00:12:00.060 align:start position:0%
pointers to the Proto buff that you'll
 

00:12:00.060 --> 00:12:02.449 align:start position:0%
pointers to the Proto buff that you'll
use<00:12:00.240><c> again</c><00:12:00.839><c> contracts</c><00:12:01.680><c> between</c><00:12:01.860><c> modules</c><00:12:02.279><c> are</c>

00:12:02.449 --> 00:12:02.459 align:start position:0%
use again contracts between modules are
 

00:12:02.459 --> 00:12:04.430 align:start position:0%
use again contracts between modules are
about<00:12:02.640><c> data</c><00:12:03.120><c> so</c><00:12:03.240><c> there</c><00:12:03.480><c> are</c><00:12:03.600><c> protobuf</c><00:12:04.079><c> models</c>

00:12:04.430 --> 00:12:04.440 align:start position:0%
about data so there are protobuf models
 

00:12:04.440 --> 00:12:06.290 align:start position:0%
about data so there are protobuf models
similar<00:12:04.920><c> to</c><00:12:05.040><c> the</c><00:12:05.160><c> protobuf</c><00:12:05.700><c> models</c><00:12:05.940><c> of</c><00:12:06.120><c> the</c>

00:12:06.290 --> 00:12:06.300 align:start position:0%
similar to the protobuf models of the
 

00:12:06.300 --> 00:12:08.090 align:start position:0%
similar to the protobuf models of the
root<00:12:06.540><c> chain</c><00:12:06.720><c> of</c><00:12:06.959><c> the</c><00:12:07.079><c> chains</c><00:12:07.380><c> the</c><00:12:07.560><c> layer</c><00:12:07.860><c> ones</c>

00:12:08.090 --> 00:12:08.100 align:start position:0%
root chain of the chains the layer ones
 

00:12:08.100 --> 00:12:10.069 align:start position:0%
root chain of the chains the layer ones
and<00:12:08.399><c> you</c><00:12:08.579><c> have</c><00:12:08.700><c> pointers</c><00:12:09.060><c> to</c><00:12:09.240><c> the</c><00:12:09.360><c> binary</c><00:12:09.720><c> that</c>

00:12:10.069 --> 00:12:10.079 align:start position:0%
and you have pointers to the binary that
 

00:12:10.079 --> 00:12:11.210 align:start position:0%
and you have pointers to the binary that
you're<00:12:10.200><c> working</c><00:12:10.380><c> on</c><00:12:10.560><c> your</c><00:12:10.680><c> drive</c><00:12:10.800><c> and</c><00:12:11.040><c> all</c>

00:12:11.210 --> 00:12:11.220 align:start position:0%
you're working on your drive and all
 

00:12:11.220 --> 00:12:13.069 align:start position:0%
you're working on your drive and all
that<00:12:11.339><c> and</c><00:12:11.640><c> you</c><00:12:11.760><c> have</c><00:12:11.940><c> Imports</c><00:12:12.480><c> and</c><00:12:12.600><c> imports</c>

00:12:13.069 --> 00:12:13.079 align:start position:0%
that and you have Imports and imports
 

00:12:13.079 --> 00:12:14.269 align:start position:0%
that and you have Imports and imports
are<00:12:13.200><c> actually</c><00:12:13.560><c> very</c><00:12:13.800><c> interesting</c><00:12:14.160><c> because</c>

00:12:14.269 --> 00:12:14.279 align:start position:0%
are actually very interesting because
 

00:12:14.279 --> 00:12:17.150 align:start position:0%
are actually very interesting because
you<00:12:14.640><c> can</c><00:12:14.700><c> import</c><00:12:15.260><c> third-party</c><00:12:16.260><c> substreams</c>

00:12:17.150 --> 00:12:17.160 align:start position:0%
you can import third-party substreams
 

00:12:17.160 --> 00:12:20.630 align:start position:0%
you can import third-party substreams
packages<00:12:18.000><c> and</c><00:12:18.600><c> these</c><00:12:18.839><c> yamo</c><00:12:19.800><c> can</c><00:12:19.980><c> be</c><00:12:20.100><c> packaged</c>

00:12:20.630 --> 00:12:20.640 align:start position:0%
packages and these yamo can be packaged
 

00:12:20.640 --> 00:12:22.310 align:start position:0%
packages and these yamo can be packaged
and<00:12:21.180><c> so</c><00:12:21.360><c> you</c><00:12:21.540><c> can</c><00:12:21.600><c> import</c><00:12:21.779><c> from</c><00:12:22.140><c> someone</c>

00:12:22.310 --> 00:12:22.320 align:start position:0%
and so you can import from someone
 

00:12:22.320 --> 00:12:24.230 align:start position:0%
and so you can import from someone
else's<00:12:22.680><c> package</c><00:12:23.040><c> you</c><00:12:23.160><c> can</c><00:12:23.279><c> write</c><00:12:23.459><c> your</c><00:12:23.640><c> own</c><00:12:23.820><c> or</c>

00:12:24.230 --> 00:12:24.240 align:start position:0%
else's package you can write your own or
 

00:12:24.240 --> 00:12:26.810 align:start position:0%
else's package you can write your own or
combine<00:12:24.660><c> both</c><00:12:25.019><c> that</c><00:12:25.800><c> means</c><00:12:26.100><c> substreams</c>

00:12:26.810 --> 00:12:26.820 align:start position:0%
combine both that means substreams
 

00:12:26.820 --> 00:12:30.170 align:start position:0%
combine both that means substreams
enables<00:12:27.860><c> composition</c><00:12:28.860><c> at</c><00:12:29.700><c> transformation</c>

00:12:30.170 --> 00:12:30.180 align:start position:0%
enables composition at transformation
 

00:12:30.180 --> 00:12:32.690 align:start position:0%
enables composition at transformation
time<00:12:30.779><c> which</c><00:12:31.380><c> I</c><00:12:31.500><c> think</c><00:12:31.620><c> is</c><00:12:31.800><c> pretty</c><00:12:31.980><c> unique</c><00:12:32.220><c> in</c><00:12:32.459><c> a</c>

00:12:32.690 --> 00:12:32.700 align:start position:0%
time which I think is pretty unique in a
 

00:12:32.700 --> 00:12:35.389 align:start position:0%
time which I think is pretty unique in a
pretty<00:12:32.880><c> Game</c><00:12:33.240><c> Changer</c><00:12:33.779><c> and</c><00:12:34.440><c> then</c><00:12:34.620><c> follow</c><00:12:35.220><c> up</c>

00:12:35.389 --> 00:12:35.399 align:start position:0%
pretty Game Changer and then follow up
 

00:12:35.399 --> 00:12:37.250 align:start position:0%
pretty Game Changer and then follow up
and<00:12:35.820><c> there</c><00:12:36.000><c> you</c><00:12:36.180><c> have</c><00:12:36.300><c> the</c><00:12:36.480><c> module</c><00:12:36.839><c> sections</c>

00:12:37.250 --> 00:12:37.260 align:start position:0%
and there you have the module sections
 

00:12:37.260 --> 00:12:39.829 align:start position:0%
and there you have the module sections
which<00:12:37.500><c> defines</c><00:12:38.100><c> the</c><00:12:38.640><c> relation</c><00:12:39.120><c> between</c><00:12:39.540><c> the</c>

00:12:39.829 --> 00:12:39.839 align:start position:0%
which defines the relation between the
 

00:12:39.839 --> 00:12:42.410 align:start position:0%
which defines the relation between the
different<00:12:39.959><c> modules</c><00:12:40.700><c> and</c><00:12:41.700><c> you</c><00:12:41.820><c> see</c><00:12:42.000><c> it</c><00:12:42.120><c> defines</c>

00:12:42.410 --> 00:12:42.420 align:start position:0%
different modules and you see it defines
 

00:12:42.420 --> 00:12:45.009 align:start position:0%
different modules and you see it defines
it<00:12:42.540><c> directed</c><00:12:43.200><c> a</c><00:12:43.380><c> cyclic</c><00:12:43.620><c> graph</c><00:12:44.040><c> you</c><00:12:44.459><c> have</c>

00:12:45.009 --> 00:12:45.019 align:start position:0%
it directed a cyclic graph you have
 

00:12:45.019 --> 00:12:48.710 align:start position:0%
it directed a cyclic graph you have
modules<00:12:46.019><c> that</c><00:12:46.260><c> slowly</c><00:12:46.620><c> refine</c><00:12:47.339><c> the</c><00:12:47.639><c> data</c><00:12:48.060><c> and</c>

00:12:48.710 --> 00:12:48.720 align:start position:0%
modules that slowly refine the data and
 

00:12:48.720 --> 00:12:51.110 align:start position:0%
modules that slowly refine the data and
so<00:12:48.839><c> there's</c><00:12:49.079><c> two</c><00:12:49.380><c> types</c><00:12:49.620><c> of</c><00:12:49.740><c> modules</c><00:12:50.220><c> one</c><00:12:50.820><c> the</c>

00:12:51.110 --> 00:12:51.120 align:start position:0%
so there's two types of modules one the
 

00:12:51.120 --> 00:12:53.509 align:start position:0%
so there's two types of modules one the
mapper<00:12:51.420><c> the</c><00:12:51.660><c> first</c><00:12:51.779><c> up</c><00:12:52.019><c> there</c><00:12:52.200><c> map</c><00:12:52.500><c> pools</c><00:12:53.040><c> and</c>

00:12:53.509 --> 00:12:53.519 align:start position:0%
mapper the first up there map pools and
 

00:12:53.519 --> 00:12:55.490 align:start position:0%
mapper the first up there map pools and
this<00:12:53.760><c> one</c><00:12:53.940><c> takes</c><00:12:54.720><c> inputs</c><00:12:55.200><c> does</c>

00:12:55.490 --> 00:12:55.500 align:start position:0%
this one takes inputs does
 

00:12:55.500 --> 00:12:57.650 align:start position:0%
this one takes inputs does
transformation<00:12:55.920><c> and</c><00:12:56.279><c> outputs</c><00:12:57.060><c> it's</c>

00:12:57.650 --> 00:12:57.660 align:start position:0%
transformation and outputs it's
 

00:12:57.660 --> 00:12:59.810 align:start position:0%
transformation and outputs it's
parallelizable<00:12:58.440><c> down</c><00:12:58.800><c> to</c><00:12:58.980><c> its</c><00:12:59.279><c> core</c><00:12:59.399><c> block</c>

00:12:59.810 --> 00:12:59.820 align:start position:0%
parallelizable down to its core block
 

00:12:59.820 --> 00:13:01.670 align:start position:0%
parallelizable down to its core block
wise<00:13:00.240><c> though</c><00:13:00.480><c> massively</c><00:13:00.899><c> paralyzable</c><00:13:01.380><c> and</c>

00:13:01.670 --> 00:13:01.680 align:start position:0%
wise though massively paralyzable and
 

00:13:01.680 --> 00:13:03.410 align:start position:0%
wise though massively paralyzable and
then<00:13:01.860><c> there's</c><00:13:02.040><c> the</c><00:13:02.279><c> store</c><00:13:02.639><c> input</c><00:13:03.060><c> I</c><00:13:03.300><c> think</c>

00:13:03.410 --> 00:13:03.420 align:start position:0%
then there's the store input I think
 

00:13:03.420 --> 00:13:06.710 align:start position:0%
then there's the store input I think
it's<00:13:03.540><c> awesome</c><00:13:04.040><c> this</c><00:13:05.040><c> one</c><00:13:05.220><c> takes</c><00:13:05.880><c> any</c><00:13:06.120><c> inputs</c>

00:13:06.710 --> 00:13:06.720 align:start position:0%
it's awesome this one takes any inputs
 

00:13:06.720 --> 00:13:10.610 align:start position:0%
it's awesome this one takes any inputs
and<00:13:07.200><c> outputs</c><00:13:07.800><c> a</c><00:13:08.220><c> key</c><00:13:08.459><c> value</c><00:13:08.760><c> store</c><00:13:09.320><c> that</c><00:13:10.320><c> or</c>

00:13:10.610 --> 00:13:10.620 align:start position:0%
and outputs a key value store that or
 

00:13:10.620 --> 00:13:12.530 align:start position:0%
and outputs a key value store that or
something<00:13:10.800><c> accumulated</c><00:13:11.399><c> in</c><00:13:11.639><c> a</c><00:13:11.820><c> stateful</c><00:13:12.240><c> way</c>

00:13:12.530 --> 00:13:12.540 align:start position:0%
something accumulated in a stateful way
 

00:13:12.540 --> 00:13:15.350 align:start position:0%
something accumulated in a stateful way
and<00:13:13.440><c> stores</c><00:13:13.740><c> can</c><00:13:14.220><c> then</c><00:13:14.399><c> be</c><00:13:14.639><c> queried</c><00:13:15.000><c> by</c>

00:13:15.350 --> 00:13:15.360 align:start position:0%
and stores can then be queried by
 

00:13:15.360 --> 00:13:18.410 align:start position:0%
and stores can then be queried by
Downstream<00:13:15.959><c> modules</c><00:13:16.459><c> and</c><00:13:17.459><c> uh</c><00:13:17.639><c> okay</c><00:13:17.940><c> so</c><00:13:18.180><c> we'll</c>

00:13:18.410 --> 00:13:18.420 align:start position:0%
Downstream modules and uh okay so we'll
 

00:13:18.420 --> 00:13:19.910 align:start position:0%
Downstream modules and uh okay so we'll
see<00:13:18.540><c> a</c><00:13:18.720><c> bit</c><00:13:18.899><c> more</c><00:13:19.019><c> after</c><00:13:19.139><c> then</c><00:13:19.500><c> the</c><00:13:19.800><c> name</c>

00:13:19.910 --> 00:13:19.920 align:start position:0%
see a bit more after then the name
 

00:13:19.920 --> 00:13:21.650 align:start position:0%
see a bit more after then the name
corresponds<00:13:20.459><c> to</c><00:13:20.519><c> the</c><00:13:20.700><c> function</c><00:13:20.940><c> in</c><00:13:21.120><c> the</c><00:13:21.300><c> wasm</c>

00:13:21.650 --> 00:13:21.660 align:start position:0%
corresponds to the function in the wasm
 

00:13:21.660 --> 00:13:24.530 align:start position:0%
corresponds to the function in the wasm
code<00:13:21.899><c> and</c><00:13:22.680><c> the</c><00:13:22.860><c> inputs</c><00:13:23.279><c> can</c><00:13:23.459><c> be</c><00:13:23.639><c> of</c><00:13:24.120><c> a</c><00:13:24.420><c> few</c>

00:13:24.530 --> 00:13:24.540 align:start position:0%
code and the inputs can be of a few
 

00:13:24.540 --> 00:13:27.050 align:start position:0%
code and the inputs can be of a few
things<00:13:24.720><c> either</c><00:13:25.079><c> the</c><00:13:25.440><c> raw</c><00:13:25.740><c> fire</c><00:13:25.980><c> hose</c><00:13:26.279><c> feed</c><00:13:26.519><c> so</c>

00:13:27.050 --> 00:13:27.060 align:start position:0%
things either the raw fire hose feed so
 

00:13:27.060 --> 00:13:28.910 align:start position:0%
things either the raw fire hose feed so
for<00:13:27.300><c> example</c><00:13:27.540><c> The</c><00:13:27.839><c> Source</c><00:13:28.200><c> here</c><00:13:28.320><c> that</c><00:13:28.560><c> means</c>

00:13:28.910 --> 00:13:28.920 align:start position:0%
for example The Source here that means
 

00:13:28.920 --> 00:13:31.850 align:start position:0%
for example The Source here that means
the<00:13:29.519><c> block</c><00:13:29.820><c> with</c><00:13:30.360><c> all</c><00:13:30.540><c> transactions</c><00:13:31.260><c> you</c><00:13:31.740><c> know</c>

00:13:31.850 --> 00:13:31.860 align:start position:0%
the block with all transactions you know
 

00:13:31.860 --> 00:13:34.009 align:start position:0%
the block with all transactions you know
for<00:13:32.040><c> for</c><00:13:32.220><c> that</c><00:13:32.399><c> particular</c><00:13:32.700><c> block</c><00:13:32.940><c> and</c><00:13:33.779><c> it</c><00:13:33.959><c> can</c>

00:13:34.009 --> 00:13:34.019 align:start position:0%
for for that particular block and it can
 

00:13:34.019 --> 00:13:35.509 align:start position:0%
for for that particular block and it can
be<00:13:34.139><c> the</c><00:13:34.260><c> output</c><00:13:34.500><c> of</c><00:13:34.680><c> another</c><00:13:34.800><c> module</c><00:13:35.220><c> like</c><00:13:35.399><c> you</c>

00:13:35.509 --> 00:13:35.519 align:start position:0%
be the output of another module like you
 

00:13:35.519 --> 00:13:37.550 align:start position:0%
be the output of another module like you
see<00:13:35.700><c> down</c><00:13:35.880><c> here</c><00:13:36.000><c> the</c><00:13:36.180><c> input</c><00:13:36.420><c> of</c><00:13:36.600><c> map</c><00:13:36.779><c> map</c><00:13:37.079><c> pools</c>

00:13:37.550 --> 00:13:37.560 align:start position:0%
see down here the input of map map pools
 

00:13:37.560 --> 00:13:40.370 align:start position:0%
see down here the input of map map pools
so<00:13:38.100><c> you'll</c><00:13:38.399><c> get</c><00:13:38.579><c> the</c><00:13:38.880><c> data</c><00:13:39.180><c> as</c><00:13:39.420><c> bytes</c><00:13:39.839><c> and</c><00:13:40.260><c> it</c>

00:13:40.370 --> 00:13:40.380 align:start position:0%
so you'll get the data as bytes and it
 

00:13:40.380 --> 00:13:42.530 align:start position:0%
so you'll get the data as bytes and it
also<00:13:40.680><c> be</c><00:13:40.920><c> a</c><00:13:41.639><c> store</c><00:13:41.820><c> which</c><00:13:42.180><c> would</c><00:13:42.300><c> be</c><00:13:42.420><c> a</c>

00:13:42.530 --> 00:13:42.540 align:start position:0%
also be a store which would be a
 

00:13:42.540 --> 00:13:43.850 align:start position:0%
also be a store which would be a
reference<00:13:42.779><c> we'll</c><00:13:43.019><c> see</c><00:13:43.200><c> in</c><00:13:43.260><c> the</c><00:13:43.380><c> next</c><00:13:43.500><c> slide</c>

00:13:43.850 --> 00:13:43.860 align:start position:0%
reference we'll see in the next slide
 

00:13:43.860 --> 00:13:45.829 align:start position:0%
reference we'll see in the next slide
there<00:13:43.980><c> and</c><00:13:44.639><c> on</c><00:13:44.760><c> the</c><00:13:44.940><c> store</c><00:13:45.060><c> pools</c><00:13:45.540><c> here</c><00:13:45.660><c> you</c>

00:13:45.829 --> 00:13:45.839 align:start position:0%
there and on the store pools here you
 

00:13:45.839 --> 00:13:49.430 align:start position:0%
there and on the store pools here you
see<00:13:46.019><c> there's</c><00:13:46.200><c> an</c><00:13:46.500><c> update</c><00:13:47.220><c> policy</c><00:13:48.000><c> which</c><00:13:48.899><c> sets</c>

00:13:49.430 --> 00:13:49.440 align:start position:0%
see there's an update policy which sets
 

00:13:49.440 --> 00:13:50.990 align:start position:0%
see there's an update policy which sets
constraints<00:13:49.860><c> on</c><00:13:50.100><c> what</c><00:13:50.279><c> you</c><00:13:50.399><c> can</c><00:13:50.459><c> do</c><00:13:50.639><c> with</c><00:13:50.820><c> the</c>

00:13:50.990 --> 00:13:51.000 align:start position:0%
constraints on what you can do with the
 

00:13:51.000 --> 00:13:53.569 align:start position:0%
constraints on what you can do with the
store<00:13:51.240><c> and</c><00:13:51.959><c> it</c><00:13:52.079><c> defines</c><00:13:52.440><c> a</c><00:13:52.680><c> merged</c><00:13:53.040><c> strategy</c>

00:13:53.569 --> 00:13:53.579 align:start position:0%
store and it defines a merged strategy
 

00:13:53.579 --> 00:13:55.250 align:start position:0%
store and it defines a merged strategy
for<00:13:53.880><c> when</c><00:13:54.060><c> you're</c><00:13:54.240><c> running</c><00:13:54.480><c> paralyzed</c>

00:13:55.250 --> 00:13:55.260 align:start position:0%
for when you're running paralyzed
 

00:13:55.260 --> 00:13:56.150 align:start position:0%
for when you're running paralyzed
operation

00:13:56.150 --> 00:13:56.160 align:start position:0%
operation
 

00:13:56.160 --> 00:13:57.590 align:start position:0%
operation
okay<00:13:56.519><c> I'll</c><00:13:56.760><c> get</c><00:13:56.880><c> to</c><00:13:57.000><c> that</c><00:13:57.060><c> also</c><00:13:57.360><c> a</c><00:13:57.540><c> little</c>

00:13:57.590 --> 00:13:57.600 align:start position:0%
okay I'll get to that also a little
 

00:13:57.600 --> 00:13:59.870 align:start position:0%
okay I'll get to that also a little
later<00:13:57.779><c> and</c><00:13:58.200><c> the</c><00:13:58.320><c> value</c><00:13:58.500><c> type</c><00:13:58.860><c> field</c><00:13:59.160><c> will</c><00:13:59.700><c> help</c>

00:13:59.870 --> 00:13:59.880 align:start position:0%
later and the value type field will help
 

00:13:59.880 --> 00:14:02.150 align:start position:0%
later and the value type field will help
anyone<00:14:00.240><c> decoding</c><00:14:00.839><c> understand</c><00:14:01.260><c> what</c><00:14:01.740><c> bytes</c>

00:14:02.150 --> 00:14:02.160 align:start position:0%
anyone decoding understand what bytes
 

00:14:02.160 --> 00:14:03.829 align:start position:0%
anyone decoding understand what bytes
there<00:14:02.279><c> is</c><00:14:02.459><c> in</c><00:14:02.700><c> that</c><00:14:02.880><c> store</c><00:14:03.120><c> so</c><00:14:03.480><c> you're</c><00:14:03.720><c> going</c>

00:14:03.829 --> 00:14:03.839 align:start position:0%
there is in that store so you're going
 

00:14:03.839 --> 00:14:05.750 align:start position:0%
there is in that store so you're going
to<00:14:03.899><c> UI</c><00:14:04.139><c> you</c><00:14:04.320><c> can</c><00:14:04.440><c> jsonify</c><00:14:05.040><c> them</c><00:14:05.220><c> and</c><00:14:05.399><c> your</c><00:14:05.579><c> code</c>

00:14:05.750 --> 00:14:05.760 align:start position:0%
to UI you can jsonify them and your code
 

00:14:05.760 --> 00:14:07.490 align:start position:0%
to UI you can jsonify them and your code
consuming<00:14:06.420><c> can</c><00:14:06.660><c> automatically</c><00:14:07.079><c> you</c><00:14:07.380><c> know</c>

00:14:07.490 --> 00:14:07.500 align:start position:0%
consuming can automatically you know
 

00:14:07.500 --> 00:14:09.470 align:start position:0%
consuming can automatically you know
decode<00:14:07.860><c> them</c><00:14:08.040><c> with</c><00:14:08.220><c> protobuf</c><00:14:08.880><c> all</c><00:14:09.120><c> languages</c>

00:14:09.470 --> 00:14:09.480 align:start position:0%
decode them with protobuf all languages
 

00:14:09.480 --> 00:14:11.629 align:start position:0%
decode them with protobuf all languages
supported<00:14:09.959><c> otherwise</c><00:14:10.740><c> the</c><00:14:11.160><c> key</c><00:14:11.279><c> value</c><00:14:11.459><c> is</c>

00:14:11.629 --> 00:14:11.639 align:start position:0%
supported otherwise the key value is
 

00:14:11.639 --> 00:14:14.509 align:start position:0%
supported otherwise the key value is
just<00:14:11.820><c> Keys</c><00:14:12.420><c> as</c><00:14:12.540><c> strings</c><00:14:12.899><c> bytes</c><00:14:13.680><c> values</c><00:14:14.100><c> very</c>

00:14:14.509 --> 00:14:14.519 align:start position:0%
just Keys as strings bytes values very
 

00:14:14.519 --> 00:14:16.370 align:start position:0%
just Keys as strings bytes values very
simple<00:14:14.760><c> and</c><00:14:15.420><c> one</c><00:14:15.600><c> thing</c><00:14:15.720><c> to</c><00:14:15.899><c> note</c><00:14:16.019><c> here</c><00:14:16.260><c> is</c>

00:14:16.370 --> 00:14:16.380 align:start position:0%
simple and one thing to note here is
 

00:14:16.380 --> 00:14:18.470 align:start position:0%
simple and one thing to note here is
that<00:14:16.560><c> because</c><00:14:16.860><c> it</c><00:14:17.279><c> has</c><00:14:17.399><c> deterministic</c><00:14:18.120><c> input</c>

00:14:18.470 --> 00:14:18.480 align:start position:0%
that because it has deterministic input
 

00:14:18.480 --> 00:14:22.129 align:start position:0%
that because it has deterministic input
it's<00:14:19.380><c> possible</c><00:14:19.800><c> to</c><00:14:20.220><c> Hash</c><00:14:20.880><c> a</c><00:14:21.120><c> module</c><00:14:21.540><c> like</c><00:14:21.959><c> the</c>

00:14:22.129 --> 00:14:22.139 align:start position:0%
it's possible to Hash a module like the
 

00:14:22.139 --> 00:14:24.650 align:start position:0%
it's possible to Hash a module like the
kind<00:14:22.380><c> and</c><00:14:22.980><c> all</c><00:14:23.100><c> of</c><00:14:23.220><c> its</c><00:14:23.519><c> inputs</c><00:14:24.000><c> and</c><00:14:24.480><c> the</c>

00:14:24.650 --> 00:14:24.660 align:start position:0%
kind and all of its inputs and the
 

00:14:24.660 --> 00:14:26.449 align:start position:0%
kind and all of its inputs and the
pointers<00:14:25.019><c> to</c><00:14:25.200><c> its</c><00:14:25.500><c> parents</c><00:14:25.860><c> and</c><00:14:26.100><c> including</c>

00:14:26.449 --> 00:14:26.459 align:start position:0%
pointers to its parents and including
 

00:14:26.459 --> 00:14:29.030 align:start position:0%
pointers to its parents and including
the<00:14:26.579><c> initial</c><00:14:26.880><c> block</c><00:14:27.120><c> so</c><00:14:27.839><c> you</c><00:14:28.019><c> have</c><00:14:28.260><c> a</c><00:14:28.620><c> fully</c>

00:14:29.030 --> 00:14:29.040 align:start position:0%
the initial block so you have a fully
 

00:14:29.040 --> 00:14:31.850 align:start position:0%
the initial block so you have a fully
determined<00:14:29.760><c> and</c><00:14:30.000><c> hashable</c><00:14:30.660><c> let's</c><00:14:31.019><c> say</c><00:14:31.260><c> cache</c>

00:14:31.850 --> 00:14:31.860 align:start position:0%
determined and hashable let's say cache
 

00:14:31.860 --> 00:14:34.190 align:start position:0%
determined and hashable let's say cache
location<00:14:32.120><c> for</c><00:14:33.120><c> all</c><00:14:33.360><c> of</c><00:14:33.480><c> the</c><00:14:33.600><c> history</c><00:14:33.720><c> similar</c>

00:14:34.190 --> 00:14:34.200 align:start position:0%
location for all of the history similar
 

00:14:34.200 --> 00:14:36.050 align:start position:0%
location for all of the history similar
to<00:14:34.320><c> git</c><00:14:34.560><c> right</c><00:14:34.740><c> all</c><00:14:35.040><c> the</c><00:14:35.279><c> history</c><00:14:35.459><c> of</c><00:14:35.700><c> data</c>

00:14:36.050 --> 00:14:36.060 align:start position:0%
to git right all the history of data
 

00:14:36.060 --> 00:14:38.449 align:start position:0%
to git right all the history of data
produced<00:14:36.480><c> by</c><00:14:37.079><c> by</c><00:14:37.380><c> and</c><00:14:37.740><c> you'd</c><00:14:37.920><c> hash</c><00:14:38.100><c> also</c><00:14:38.279><c> the</c>

00:14:38.449 --> 00:14:38.459 align:start position:0%
produced by by and you'd hash also the
 

00:14:38.459 --> 00:14:41.689 align:start position:0%
produced by by and you'd hash also the
wasm<00:14:38.880><c> code</c><00:14:39.120><c> right</c><00:14:39.380><c> so</c><00:14:40.380><c> it</c><00:14:40.920><c> makes</c><00:14:41.040><c> it</c><00:14:41.279><c> for</c><00:14:41.459><c> an</c>

00:14:41.689 --> 00:14:41.699 align:start position:0%
wasm code right so it makes it for an
 

00:14:41.699 --> 00:14:44.389 align:start position:0%
wasm code right so it makes it for an
extremely<00:14:42.120><c> cachable</c><00:14:42.779><c> system</c><00:14:43.139><c> and</c><00:14:44.040><c> highly</c>

00:14:44.389 --> 00:14:44.399 align:start position:0%
extremely cachable system and highly
 

00:14:44.399 --> 00:14:47.569 align:start position:0%
extremely cachable system and highly
shareable<00:14:45.000><c> and</c><00:14:45.779><c> cross</c><00:14:46.079><c> verifiable</c><00:14:46.860><c> output</c><00:14:47.399><c> of</c>

00:14:47.569 --> 00:14:47.579 align:start position:0%
shareable and cross verifiable output of
 

00:14:47.579 --> 00:14:49.250 align:start position:0%
shareable and cross verifiable output of
modules<00:14:48.000><c> which</c><00:14:48.300><c> opens</c><00:14:48.660><c> really</c><00:14:48.839><c> interesting</c>

00:14:49.250 --> 00:14:49.260 align:start position:0%
modules which opens really interesting
 

00:14:49.260 --> 00:14:51.410 align:start position:0%
modules which opens really interesting
possibilities<00:14:49.860><c> you</c><00:14:50.699><c> know</c><00:14:50.820><c> for</c><00:14:51.180><c> uh</c>

00:14:51.410 --> 00:14:51.420 align:start position:0%
possibilities you know for uh
 

00:14:51.420 --> 00:14:53.150 align:start position:0%
possibilities you know for uh
collaboration<00:14:51.959><c> within</c><00:14:52.440><c> the</c><00:14:52.560><c> graph</c><00:14:52.740><c> ecosystem</c>

00:14:53.150 --> 00:14:53.160 align:start position:0%
collaboration within the graph ecosystem
 

00:14:53.160 --> 00:14:55.790 align:start position:0%
collaboration within the graph ecosystem
and<00:14:54.060><c> imagine</c><00:14:54.240><c> one</c><00:14:54.839><c> has</c><00:14:55.079><c> large</c><00:14:55.320><c> disks</c><00:14:55.740><c> and</c>

00:14:55.790 --> 00:14:55.800 align:start position:0%
and imagine one has large disks and
 

00:14:55.800 --> 00:14:57.470 align:start position:0%
and imagine one has large disks and
everyone<00:14:55.920><c> has</c><00:14:56.100><c> large</c><00:14:56.519><c> CPUs</c><00:14:57.000><c> or</c><00:14:57.240><c> you</c><00:14:57.360><c> know</c>

00:14:57.470 --> 00:14:57.480 align:start position:0%
everyone has large CPUs or you know
 

00:14:57.480 --> 00:14:59.629 align:start position:0%
everyone has large CPUs or you know
sleeping<00:14:57.720><c> CPUs</c><00:14:58.139><c> they</c><00:14:58.680><c> could</c><00:14:58.800><c> pull</c><00:14:59.040><c> resources</c>

00:14:59.629 --> 00:14:59.639 align:start position:0%
sleeping CPUs they could pull resources
 

00:14:59.639 --> 00:15:01.009 align:start position:0%
sleeping CPUs they could pull resources
together<00:14:59.880><c> to</c><00:15:00.180><c> build</c><00:15:00.300><c> something</c><00:15:00.540><c> bigger</c><00:15:00.899><c> than</c>

00:15:01.009 --> 00:15:01.019 align:start position:0%
together to build something bigger than
 

00:15:01.019 --> 00:15:02.389 align:start position:0%
together to build something bigger than
themselves

00:15:02.389 --> 00:15:02.399 align:start position:0%
themselves
 

00:15:02.399 --> 00:15:04.250 align:start position:0%
themselves
okay<00:15:02.820><c> you</c><00:15:03.000><c> see</c><00:15:03.180><c> the</c><00:15:03.300><c> relation</c><00:15:03.420><c> there</c><00:15:03.779><c> so</c><00:15:04.019><c> this</c>

00:15:04.250 --> 00:15:04.260 align:start position:0%
okay you see the relation there so this
 

00:15:04.260 --> 00:15:06.350 align:start position:0%
okay you see the relation there so this
gets<00:15:04.560><c> piped</c><00:15:04.800><c> to</c><00:15:04.920><c> that</c><00:15:05.100><c> and</c><00:15:05.519><c> if</c><00:15:05.699><c> we</c><00:15:05.820><c> add</c><00:15:06.000><c> another</c>

00:15:06.350 --> 00:15:06.360 align:start position:0%
gets piped to that and if we add another
 

00:15:06.360 --> 00:15:08.329 align:start position:0%
gets piped to that and if we add another
module<00:15:06.899><c> here</c><00:15:07.139><c> you</c><00:15:07.320><c> see</c><00:15:07.440><c> how</c><00:15:07.620><c> the</c><00:15:07.740><c> graph</c><00:15:07.980><c> comes</c>

00:15:08.329 --> 00:15:08.339 align:start position:0%
module here you see how the graph comes
 

00:15:08.339 --> 00:15:10.610 align:start position:0%
module here you see how the graph comes
together<00:15:08.519><c> this</c><00:15:09.300><c> one</c><00:15:09.480><c> computes</c><00:15:10.139><c> the</c><00:15:10.380><c> price</c>

00:15:10.610 --> 00:15:10.620 align:start position:0%
together this one computes the price
 

00:15:10.620 --> 00:15:13.430 align:start position:0%
together this one computes the price
this<00:15:10.920><c> is</c><00:15:11.040><c> unit</c><00:15:11.220><c> swap</c><00:15:11.579><c> V3</c><00:15:11.940><c> thing</c><00:15:12.180><c> it</c><00:15:13.079><c> computes</c>

00:15:13.430 --> 00:15:13.440 align:start position:0%
this is unit swap V3 thing it computes
 

00:15:13.440 --> 00:15:15.050 align:start position:0%
this is unit swap V3 thing it computes
the<00:15:13.500><c> price</c><00:15:13.740><c> but</c><00:15:13.980><c> it</c><00:15:14.160><c> you</c><00:15:14.519><c> want</c><00:15:14.639><c> to</c><00:15:14.760><c> get</c><00:15:14.880><c> them</c>

00:15:15.050 --> 00:15:15.060 align:start position:0%
the price but it you want to get them
 

00:15:15.060 --> 00:15:16.430 align:start position:0%
the price but it you want to get them
for<00:15:15.300><c> certain</c><00:15:15.480><c> pools</c><00:15:15.899><c> because</c><00:15:16.019><c> maybe</c><00:15:16.199><c> you</c><00:15:16.380><c> want</c>

00:15:16.430 --> 00:15:16.440 align:start position:0%
for certain pools because maybe you want
 

00:15:16.440 --> 00:15:17.990 align:start position:0%
for certain pools because maybe you want
to<00:15:16.560><c> use</c><00:15:16.620><c> the</c><00:15:16.860><c> decimal</c><00:15:17.279><c> placements</c><00:15:17.760><c> in</c><00:15:17.880><c> the</c>

00:15:17.990 --> 00:15:18.000 align:start position:0%
to use the decimal placements in the
 

00:15:18.000 --> 00:15:19.910 align:start position:0%
to use the decimal placements in the
pool<00:15:18.060><c> we'll</c><00:15:18.300><c> see</c><00:15:18.480><c> a</c><00:15:18.720><c> little</c><00:15:18.839><c> bit</c><00:15:18.959><c> more</c><00:15:19.079><c> there</c>

00:15:19.910 --> 00:15:19.920 align:start position:0%
pool we'll see a little bit more there
 

00:15:19.920 --> 00:15:21.650 align:start position:0%
pool we'll see a little bit more there
and<00:15:20.519><c> when</c><00:15:20.820><c> you're</c><00:15:20.940><c> running</c><00:15:21.120><c> let's</c><00:15:21.360><c> say</c><00:15:21.480><c> you're</c>

00:15:21.650 --> 00:15:21.660 align:start position:0%
and when you're running let's say you're
 

00:15:21.660 --> 00:15:24.470 align:start position:0%
and when you're running let's say you're
running<00:15:21.839><c> that</c><00:15:22.019><c> at</c><00:15:22.320><c> block</c><00:15:22.620><c> 15</c><00:15:23.040><c> million</c>

00:15:24.470 --> 00:15:24.480 align:start position:0%
running that at block 15 million
 

00:15:24.480 --> 00:15:27.650 align:start position:0%
running that at block 15 million
well<00:15:25.680><c> you're</c><00:15:26.339><c> guaranteed</c><00:15:26.880><c> the</c><00:15:27.240><c> runtime</c>

00:15:27.650 --> 00:15:27.660 align:start position:0%
well you're guaranteed the runtime
 

00:15:27.660 --> 00:15:31.129 align:start position:0%
well you're guaranteed the runtime
guarantees<00:15:28.320><c> that</c><00:15:28.680><c> the</c><00:15:29.519><c> store</c><00:15:29.880><c> you'll</c><00:15:30.660><c> have</c><00:15:30.899><c> to</c>

00:15:31.129 --> 00:15:31.139 align:start position:0%
guarantees that the store you'll have to
 

00:15:31.139 --> 00:15:33.170 align:start position:0%
guarantees that the store you'll have to
execute<00:15:31.500><c> code</c><00:15:31.680><c> at</c><00:15:31.860><c> block</c><00:15:32.040><c> 50</c><00:15:32.279><c> million</c><00:15:32.579><c> will</c>

00:15:33.170 --> 00:15:33.180 align:start position:0%
execute code at block 50 million will
 

00:15:33.180 --> 00:15:34.689 align:start position:0%
execute code at block 50 million will
have<00:15:33.420><c> been</c><00:15:33.660><c> synced</c>

00:15:34.689 --> 00:15:34.699 align:start position:0%
have been synced
 

00:15:34.699 --> 00:15:37.189 align:start position:0%
have been synced
linearly<00:15:35.699><c> or</c><00:15:36.180><c> in</c><00:15:36.420><c> parallel</c><00:15:36.779><c> but</c><00:15:36.959><c> you</c><00:15:37.139><c> wouldn't</c>

00:15:37.189 --> 00:15:37.199 align:start position:0%
linearly or in parallel but you wouldn't
 

00:15:37.199 --> 00:15:39.230 align:start position:0%
linearly or in parallel but you wouldn't
know<00:15:37.440><c> but</c><00:15:37.620><c> it'll</c><00:15:37.800><c> give</c><00:15:38.040><c> you</c><00:15:38.160><c> a</c><00:15:38.459><c> full</c><00:15:38.579><c> in-memory</c>

00:15:39.230 --> 00:15:39.240 align:start position:0%
know but it'll give you a full in-memory
 

00:15:39.240 --> 00:15:40.850 align:start position:0%
know but it'll give you a full in-memory
store<00:15:39.480><c> eventually</c><00:15:40.019><c> backed</c><00:15:40.320><c> by</c><00:15:40.380><c> some</c><00:15:40.500><c> disk</c><00:15:40.800><c> but</c>

00:15:40.850 --> 00:15:40.860 align:start position:0%
store eventually backed by some disk but
 

00:15:40.860 --> 00:15:43.129 align:start position:0%
store eventually backed by some disk but
whatever<00:15:41.040><c> and</c><00:15:41.820><c> you</c><00:15:42.000><c> can</c><00:15:42.120><c> query</c><00:15:42.480><c> the</c><00:15:42.779><c> key</c><00:15:42.959><c> value</c>

00:15:43.129 --> 00:15:43.139 align:start position:0%
whatever and you can query the key value
 

00:15:43.139 --> 00:15:45.290 align:start position:0%
whatever and you can query the key value
store<00:15:43.560><c> at</c><00:15:44.100><c> each</c><00:15:44.279><c> block</c><00:15:44.519><c> it's</c><00:15:44.760><c> guaranteed</c><00:15:45.180><c> to</c>

00:15:45.290 --> 00:15:45.300 align:start position:0%
store at each block it's guaranteed to
 

00:15:45.300 --> 00:15:47.329 align:start position:0%
store at each block it's guaranteed to
be<00:15:45.420><c> synced</c><00:15:45.839><c> for</c><00:15:45.959><c> you</c><00:15:46.139><c> that's</c><00:15:46.560><c> exciting</c><00:15:46.980><c> no</c>

00:15:47.329 --> 00:15:47.339 align:start position:0%
be synced for you that's exciting no
 

00:15:47.339 --> 00:15:50.090 align:start position:0%
be synced for you that's exciting no
okay<00:15:47.699><c> uh</c><00:15:48.480><c> so</c><00:15:48.720><c> you</c><00:15:48.899><c> see</c><00:15:49.019><c> the</c><00:15:49.260><c> dags</c><00:15:49.680><c> fully</c><00:15:49.920><c> being</c>

00:15:50.090 --> 00:15:50.100 align:start position:0%
okay uh so you see the dags fully being
 

00:15:50.100 --> 00:15:52.910 align:start position:0%
okay uh so you see the dags fully being
built<00:15:50.519><c> huh</c><00:15:50.940><c> right</c><00:15:51.240><c> so</c><00:15:51.480><c> the</c><00:15:51.720><c> dependency</c><00:15:52.079><c> so</c><00:15:52.740><c> now</c>

00:15:52.910 --> 00:15:52.920 align:start position:0%
built huh right so the dependency so now
 

00:15:52.920 --> 00:15:54.470 align:start position:0%
built huh right so the dependency so now
let's<00:15:53.220><c> let's</c>

00:15:54.470 --> 00:15:54.480 align:start position:0%
let's let's
 

00:15:54.480 --> 00:15:57.590 align:start position:0%
let's let's
this<00:15:55.019><c> leads</c><00:15:55.320><c> us</c><00:15:55.440><c> to</c><00:15:55.740><c> composability</c><00:15:56.579><c> see</c><00:15:57.360><c> each</c>

00:15:57.590 --> 00:15:57.600 align:start position:0%
this leads us to composability see each
 

00:15:57.600 --> 00:16:00.110 align:start position:0%
this leads us to composability see each
color<00:15:57.779><c> here</c><00:15:58.019><c> means</c><00:15:58.380><c> a</c><00:15:58.500><c> different</c><00:15:58.620><c> author</c><00:15:59.339><c> and</c>

00:16:00.110 --> 00:16:00.120 align:start position:0%
color here means a different author and
 

00:16:00.120 --> 00:16:01.810 align:start position:0%
color here means a different author and
modules<00:16:00.540><c> written</c><00:16:00.839><c> by</c><00:16:00.959><c> different</c><00:16:01.199><c> people</c>

00:16:01.810 --> 00:16:01.820 align:start position:0%
modules written by different people
 

00:16:01.820 --> 00:16:04.430 align:start position:0%
modules written by different people
ideally<00:16:02.820><c> the</c><00:16:03.060><c> most</c><00:16:03.240><c> competent</c><00:16:03.839><c> for</c><00:16:04.139><c> each</c>

00:16:04.430 --> 00:16:04.440 align:start position:0%
ideally the most competent for each
 

00:16:04.440 --> 00:16:07.129 align:start position:0%
ideally the most competent for each
right<00:16:04.620><c> like</c><00:16:04.800><c> we</c><00:16:05.040><c> would</c><00:16:05.279><c> hope</c><00:16:05.600><c> they</c><00:16:06.600><c> would</c><00:16:06.779><c> crop</c>

00:16:07.129 --> 00:16:07.139 align:start position:0%
right like we would hope they would crop
 

00:16:07.139 --> 00:16:08.930 align:start position:0%
right like we would hope they would crop
you<00:16:07.380><c> know</c><00:16:07.500><c> analyze</c><00:16:07.920><c> what's</c><00:16:08.100><c> on</c><00:16:08.279><c> chain</c><00:16:08.519><c> and</c>

00:16:08.930 --> 00:16:08.940 align:start position:0%
you know analyze what's on chain and
 

00:16:08.940 --> 00:16:12.050 align:start position:0%
you know analyze what's on chain and
refine<00:16:09.600><c> the</c><00:16:09.899><c> data</c><00:16:10.320><c> and</c><00:16:10.860><c> Abstract</c><00:16:11.339><c> it</c><00:16:11.579><c> to</c><00:16:11.820><c> new</c>

00:16:12.050 --> 00:16:12.060 align:start position:0%
refine the data and Abstract it to new
 

00:16:12.060 --> 00:16:13.009 align:start position:0%
refine the data and Abstract it to new
heights

00:16:13.009 --> 00:16:13.019 align:start position:0%
heights
 

00:16:13.019 --> 00:16:15.350 align:start position:0%
heights
and<00:16:13.620><c> the</c><00:16:13.920><c> contract</c><00:16:14.220><c> between</c><00:16:14.459><c> the</c><00:16:14.699><c> handoffs</c><00:16:15.180><c> is</c>

00:16:15.350 --> 00:16:15.360 align:start position:0%
and the contract between the handoffs is
 

00:16:15.360 --> 00:16:18.290 align:start position:0%
and the contract between the handoffs is
always<00:16:15.600><c> data</c><00:16:16.500><c> it's</c><00:16:17.100><c> the</c><00:16:17.339><c> model</c><00:16:17.519><c> of</c><00:16:17.820><c> data</c><00:16:18.120><c> so</c>

00:16:18.290 --> 00:16:18.300 align:start position:0%
always data it's the model of data so
 

00:16:18.300 --> 00:16:20.750 align:start position:0%
always data it's the model of data so
you<00:16:18.480><c> take</c><00:16:18.660><c> a</c><00:16:18.779><c> modulus</c><00:16:19.199><c> bytes</c><00:16:19.680><c> in</c><00:16:19.800><c> bytes</c><00:16:20.639><c> out</c>

00:16:20.750 --> 00:16:20.760 align:start position:0%
you take a modulus bytes in bytes out
 

00:16:20.760 --> 00:16:22.670 align:start position:0%
you take a modulus bytes in bytes out
and<00:16:21.540><c> so</c><00:16:21.720><c> you</c><00:16:21.839><c> see</c><00:16:21.959><c> here</c><00:16:22.139><c> we</c><00:16:22.260><c> can</c><00:16:22.380><c> get</c><00:16:22.500><c> the</c>

00:16:22.670 --> 00:16:22.680 align:start position:0%
and so you see here we can get the
 

00:16:22.680 --> 00:16:25.009 align:start position:0%
and so you see here we can get the
prices<00:16:22.860><c> from</c><00:16:23.160><c> using</c><00:16:23.459><c> V2</c><00:16:23.940><c> and</c><00:16:24.660><c> price</c><00:16:24.839><c> this</c>

00:16:25.009 --> 00:16:25.019 align:start position:0%
prices from using V2 and price this
 

00:16:25.019 --> 00:16:26.810 align:start position:0%
prices from using V2 and price this
version<00:16:25.260><c> of</c><00:16:25.620><c> B3</c><00:16:25.860><c> and</c><00:16:26.040><c> Sushi</c><00:16:26.399><c> and</c><00:16:26.519><c> chain</c><00:16:26.639><c> link</c>

00:16:26.810 --> 00:16:26.820 align:start position:0%
version of B3 and Sushi and chain link
 

00:16:26.820 --> 00:16:29.090 align:start position:0%
version of B3 and Sushi and chain link
and<00:16:27.060><c> whatever</c><00:16:27.300><c> and</c><00:16:27.839><c> have</c><00:16:28.139><c> someone</c><00:16:28.380><c> reality</c><00:16:28.920><c> a</c>

00:16:29.090 --> 00:16:29.100 align:start position:0%
and whatever and have someone reality a
 

00:16:29.100 --> 00:16:30.470 align:start position:0%
and whatever and have someone reality a
module<00:16:29.339><c> that</c><00:16:29.459><c> takes</c><00:16:29.699><c> these</c><00:16:29.940><c> input</c><00:16:30.240><c> at</c>

00:16:30.470 --> 00:16:30.480 align:start position:0%
module that takes these input at
 

00:16:30.480 --> 00:16:31.850 align:start position:0%
module that takes these input at
transformation<00:16:30.839><c> time</c>

00:16:31.850 --> 00:16:31.860 align:start position:0%
transformation time
 

00:16:31.860 --> 00:16:34.069 align:start position:0%
transformation time
and<00:16:32.339><c> then</c><00:16:32.459><c> averages</c><00:16:33.000><c> them</c><00:16:33.300><c> out</c><00:16:33.480><c> and</c><00:16:33.660><c> whatnot</c>

00:16:34.069 --> 00:16:34.079 align:start position:0%
and then averages them out and whatnot
 

00:16:34.079 --> 00:16:35.810 align:start position:0%
and then averages them out and whatnot
right<00:16:34.500><c> and</c><00:16:34.740><c> then</c><00:16:34.860><c> that</c><00:16:35.040><c> you'd</c><00:16:35.279><c> have</c><00:16:35.399><c> like</c><00:16:35.579><c> sort</c>

00:16:35.810 --> 00:16:35.820 align:start position:0%
right and then that you'd have like sort
 

00:16:35.820 --> 00:16:38.210 align:start position:0%
right and then that you'd have like sort
of<00:16:35.940><c> one</c><00:16:36.180><c> beautiful</c><00:16:36.360><c> Universal</c><00:16:37.199><c> price</c><00:16:37.620><c> module</c>

00:16:38.210 --> 00:16:38.220 align:start position:0%
of one beautiful Universal price module
 

00:16:38.220 --> 00:16:41.030 align:start position:0%
of one beautiful Universal price module
that<00:16:38.940><c> you</c><00:16:39.180><c> can</c><00:16:39.300><c> then</c><00:16:39.600><c> hook</c><00:16:39.899><c> on</c><00:16:40.620><c> top</c><00:16:40.680><c> and</c><00:16:40.920><c> and</c>

00:16:41.030 --> 00:16:41.040 align:start position:0%
that you can then hook on top and and
 

00:16:41.040 --> 00:16:42.710 align:start position:0%
that you can then hook on top and and
feed<00:16:41.399><c> to</c><00:16:41.579><c> some</c><00:16:41.699><c> who</c><00:16:41.940><c> knows</c><00:16:42.120><c> maybe</c><00:16:42.300><c> if</c><00:16:42.480><c> someone</c>

00:16:42.710 --> 00:16:42.720 align:start position:0%
feed to some who knows maybe if someone
 

00:16:42.720 --> 00:16:44.509 align:start position:0%
feed to some who knows maybe if someone
feeds<00:16:43.139><c> that</c><00:16:43.259><c> back</c><00:16:43.500><c> onto</c><00:16:43.800><c> the</c><00:16:43.980><c> chain</c><00:16:44.100><c> for</c><00:16:44.399><c> some</c>

00:16:44.509 --> 00:16:44.519 align:start position:0%
feeds that back onto the chain for some
 

00:16:44.519 --> 00:16:47.629 align:start position:0%
feeds that back onto the chain for some
reason<00:16:44.699><c> and</c><00:16:45.660><c> then</c><00:16:45.839><c> soon</c><00:16:46.199><c> enough</c><00:16:46.380><c> you</c><00:16:46.800><c> know</c><00:16:46.860><c> all</c>

00:16:47.629 --> 00:16:47.639 align:start position:0%
reason and then soon enough you know all
 

00:16:47.639 --> 00:16:49.670 align:start position:0%
reason and then soon enough you know all
of<00:16:47.820><c> that</c><00:16:48.060><c> while</c><00:16:48.600><c> someone</c><00:16:48.839><c> wants</c><00:16:49.199><c> to</c><00:16:49.259><c> build</c><00:16:49.440><c> on</c>

00:16:49.670 --> 00:16:49.680 align:start position:0%
of that while someone wants to build on
 

00:16:49.680 --> 00:16:52.129 align:start position:0%
of that while someone wants to build on
top<00:16:49.860><c> of</c><00:16:50.040><c> it</c><00:16:50.699><c> ah</c><00:16:51.360><c> something</c><00:16:51.600><c> like</c><00:16:51.839><c> that</c><00:16:51.959><c> if</c>

00:16:52.129 --> 00:16:52.139 align:start position:0%
top of it ah something like that if
 

00:16:52.139 --> 00:16:54.350 align:start position:0%
top of it ah something like that if
someone<00:16:52.380><c> wants</c><00:16:52.800><c> to</c><00:16:52.860><c> compute</c><00:16:53.459><c> you</c><00:16:53.940><c> know</c><00:16:54.060><c> the</c>

00:16:54.350 --> 00:16:54.360 align:start position:0%
someone wants to compute you know the
 

00:16:54.360 --> 00:16:57.290 align:start position:0%
someone wants to compute you know the
USD<00:16:55.139><c> denominated</c><00:16:55.860><c> volumes</c><00:16:56.519><c> aggregation</c><00:16:57.060><c> of</c>

00:16:57.290 --> 00:16:57.300 align:start position:0%
USD denominated volumes aggregation of
 

00:16:57.300 --> 00:16:59.689 align:start position:0%
USD denominated volumes aggregation of
nft<00:16:57.600><c> sales</c><00:16:57.959><c> on</c><00:16:58.199><c> openc</c><00:16:58.620><c> you</c><00:16:58.860><c> know</c><00:16:58.980><c> you'll</c><00:16:59.519><c> take</c>

00:16:59.689 --> 00:16:59.699 align:start position:0%
nft sales on openc you know you'll take
 

00:16:59.699 --> 00:17:01.670 align:start position:0%
nft sales on openc you know you'll take
some<00:17:00.060><c> sales</c><00:17:00.360><c> you</c><00:17:00.779><c> merge</c><00:17:01.139><c> it</c><00:17:01.199><c> with</c><00:17:01.320><c> the</c><00:17:01.440><c> price</c>

00:17:01.670 --> 00:17:01.680 align:start position:0%
some sales you merge it with the price
 

00:17:01.680 --> 00:17:04.309 align:start position:0%
some sales you merge it with the price
and<00:17:02.279><c> we</c><00:17:02.519><c> see</c><00:17:02.639><c> here</c><00:17:02.820><c> that</c><00:17:03.060><c> little</c><00:17:03.240><c> Trader</c><00:17:03.899><c> Inc</c>

00:17:04.309 --> 00:17:04.319 align:start position:0%
and we see here that little Trader Inc
 

00:17:04.319 --> 00:17:07.250 align:start position:0%
and we see here that little Trader Inc
he<00:17:05.100><c> seems</c><00:17:05.400><c> he</c><00:17:05.520><c> maybe</c><00:17:05.699><c> he</c><00:17:06.000><c> wants</c><00:17:06.299><c> to</c><00:17:06.360><c> feed</c><00:17:07.020><c> that</c>

00:17:07.250 --> 00:17:07.260 align:start position:0%
he seems he maybe he wants to feed that
 

00:17:07.260 --> 00:17:09.530 align:start position:0%
he seems he maybe he wants to feed that
into<00:17:07.439><c> his</c><00:17:07.740><c> trading</c><00:17:08.280><c> bot</c><00:17:08.640><c> because</c><00:17:09.120><c> it's</c><00:17:09.360><c> a</c>

00:17:09.530 --> 00:17:09.540 align:start position:0%
into his trading bot because it's a
 

00:17:09.540 --> 00:17:10.730 align:start position:0%
into his trading bot because it's a
streaming<00:17:09.900><c> engine</c><00:17:10.020><c> we're</c><00:17:10.199><c> not</c><00:17:10.380><c> storing</c><00:17:10.620><c> that</c>

00:17:10.730 --> 00:17:10.740 align:start position:0%
streaming engine we're not storing that
 

00:17:10.740 --> 00:17:12.890 align:start position:0%
streaming engine we're not storing that
in<00:17:10.799><c> the</c><00:17:10.919><c> database</c><00:17:11.220><c> yet</c><00:17:11.459><c> right</c><00:17:11.699><c> but</c><00:17:12.419><c> this</c><00:17:12.540><c> begs</c>

00:17:12.890 --> 00:17:12.900 align:start position:0%
in the database yet right but this begs
 

00:17:12.900 --> 00:17:14.270 align:start position:0%
in the database yet right but this begs
the<00:17:13.020><c> question</c><00:17:13.140><c> where</c><00:17:13.620><c> is</c><00:17:13.799><c> that</c><00:17:13.919><c> all</c><00:17:14.040><c> that</c>

00:17:14.270 --> 00:17:14.280 align:start position:0%
the question where is that all that
 

00:17:14.280 --> 00:17:16.010 align:start position:0%
the question where is that all that
beautiful<00:17:14.459><c> data</c><00:17:14.939><c> at</c><00:17:15.120><c> land</c><00:17:15.419><c> where</c><00:17:15.660><c> does</c><00:17:15.780><c> it</c><00:17:15.900><c> get</c>

00:17:16.010 --> 00:17:16.020 align:start position:0%
beautiful data at land where does it get
 

00:17:16.020 --> 00:17:18.530 align:start position:0%
beautiful data at land where does it get
piped<00:17:16.439><c> that's</c><00:17:16.980><c> where</c><00:17:17.280><c> it</c><00:17:17.520><c> thinks</c><00:17:18.059><c> head</c><00:17:18.360><c> up</c>

00:17:18.530 --> 00:17:18.540 align:start position:0%
piped that's where it thinks head up
 

00:17:18.540 --> 00:17:21.890 align:start position:0%
piped that's where it thinks head up
like<00:17:19.760><c> substreams</c><00:17:20.760><c> being</c><00:17:21.000><c> limited</c><00:17:21.480><c> to</c><00:17:21.720><c> the</c>

00:17:21.890 --> 00:17:21.900 align:start position:0%
like substreams being limited to the
 

00:17:21.900 --> 00:17:23.929 align:start position:0%
like substreams being limited to the
transformation<00:17:22.319><c> stage</c><00:17:22.799><c> of</c><00:17:22.980><c> the</c><00:17:23.280><c> ETL</c><00:17:23.520><c> analogy</c>

00:17:23.929 --> 00:17:23.939 align:start position:0%
transformation stage of the ETL analogy
 

00:17:23.939 --> 00:17:25.850 align:start position:0%
transformation stage of the ETL analogy
remember<00:17:24.120><c> it</c><00:17:24.959><c> doesn't</c><00:17:25.079><c> really</c><00:17:25.319><c> care</c><00:17:25.559><c> where</c>

00:17:25.850 --> 00:17:25.860 align:start position:0%
remember it doesn't really care where
 

00:17:25.860 --> 00:17:27.829 align:start position:0%
remember it doesn't really care where
you<00:17:25.980><c> load</c><00:17:26.339><c> it</c><00:17:26.459><c> and</c><00:17:26.819><c> that</c><00:17:27.000><c> could</c><00:17:27.179><c> be</c><00:17:27.360><c> anywhere</c>

00:17:27.829 --> 00:17:27.839 align:start position:0%
you load it and that could be anywhere
 

00:17:27.839 --> 00:17:29.870 align:start position:0%
you load it and that could be anywhere
these<00:17:28.679><c> are</c><00:17:28.740><c> just</c><00:17:28.860><c> a</c><00:17:28.980><c> few</c><00:17:29.100><c> examples</c><00:17:29.460><c> you</c><00:17:29.700><c> can</c>

00:17:29.870 --> 00:17:29.880 align:start position:0%
these are just a few examples you can
 

00:17:29.880 --> 00:17:31.549 align:start position:0%
these are just a few examples you can
load<00:17:30.120><c> that</c><00:17:30.240><c> in</c><00:17:30.360><c> databases</c><00:17:30.780><c> we</c><00:17:31.140><c> already</c><00:17:31.260><c> have</c><00:17:31.440><c> a</c>

00:17:31.549 --> 00:17:31.559 align:start position:0%
load that in databases we already have a
 

00:17:31.559 --> 00:17:33.590 align:start position:0%
load that in databases we already have a
sync<00:17:31.860><c> for</c><00:17:31.980><c> postgres</c><00:17:32.580><c> and</c><00:17:33.120><c> you</c><00:17:33.240><c> hook</c><00:17:33.419><c> to</c>

00:17:33.590 --> 00:17:33.600 align:start position:0%
sync for postgres and you hook to
 

00:17:33.600 --> 00:17:35.450 align:start position:0%
sync for postgres and you hook to
sub<00:17:33.720><c> streams</c><00:17:34.080><c> and</c><00:17:34.200><c> it</c><00:17:34.380><c> just</c><00:17:34.559><c> loads</c><00:17:35.220><c> it</c><00:17:35.340><c> into</c>

00:17:35.450 --> 00:17:35.460 align:start position:0%
sub streams and it just loads it into
 

00:17:35.460 --> 00:17:37.490 align:start position:0%
sub streams and it just loads it into
postgres<00:17:36.000><c> with</c><00:17:36.600><c> a</c><00:17:36.780><c> data</c><00:17:37.080><c> model</c><00:17:37.140><c> that</c><00:17:37.380><c> we've</c>

00:17:37.490 --> 00:17:37.500 align:start position:0%
postgres with a data model that we've
 

00:17:37.500 --> 00:17:39.230 align:start position:0%
postgres with a data model that we've
agreed<00:17:37.799><c> upon</c><00:17:38.039><c> right</c><00:17:38.280><c> if</c><00:17:38.640><c> you</c><00:17:38.760><c> write</c><00:17:38.880><c> it</c><00:17:39.000><c> in</c><00:17:39.120><c> a</c>

00:17:39.230 --> 00:17:39.240 align:start position:0%
agreed upon right if you write it in a
 

00:17:39.240 --> 00:17:40.789 align:start position:0%
agreed upon right if you write it in a
certain<00:17:39.360><c> way</c><00:17:39.539><c> it</c><00:17:39.960><c> just</c><00:17:40.140><c> thinks</c><00:17:40.440><c> over</c><00:17:40.559><c> there</c>

00:17:40.789 --> 00:17:40.799 align:start position:0%
certain way it just thinks over there
 

00:17:40.799 --> 00:17:43.370 align:start position:0%
certain way it just thinks over there
and<00:17:41.400><c> or</c><00:17:41.640><c> message</c><00:17:41.940><c> cues</c><00:17:42.419><c> or</c><00:17:42.600><c> whatever</c><00:17:42.840><c> you</c><00:17:43.260><c> know</c>

00:17:43.370 --> 00:17:43.380 align:start position:0%
and or message cues or whatever you know
 

00:17:43.380 --> 00:17:45.950 align:start position:0%
and or message cues or whatever you know
data<00:17:44.160><c> lakes</c><00:17:44.400><c> or</c><00:17:44.700><c> some</c><00:17:44.940><c> Bots</c><00:17:45.240><c> or</c><00:17:45.480><c> some</c><00:17:45.660><c> trading</c>

00:17:45.950 --> 00:17:45.960 align:start position:0%
data lakes or some Bots or some trading
 

00:17:45.960 --> 00:17:47.330 align:start position:0%
data lakes or some Bots or some trading
already<00:17:46.140><c> you</c><00:17:46.440><c> know</c><00:17:46.559><c> so</c><00:17:46.740><c> I</c><00:17:46.980><c> don't</c><00:17:47.100><c> know</c><00:17:47.160><c> some</c>

00:17:47.330 --> 00:17:47.340 align:start position:0%
already you know so I don't know some
 

00:17:47.340 --> 00:17:49.549 align:start position:0%
already you know so I don't know some
whale<00:17:47.700><c> detector</c><00:17:48.240><c> you</c><00:17:48.480><c> want</c><00:17:48.660><c> to</c><00:17:48.840><c> hook</c><00:17:49.080><c> directly</c>

00:17:49.549 --> 00:17:49.559 align:start position:0%
whale detector you want to hook directly
 

00:17:49.559 --> 00:17:51.890 align:start position:0%
whale detector you want to hook directly
on<00:17:49.679><c> the</c><00:17:49.799><c> stream</c><00:17:49.980><c> or</c><00:17:50.400><c> also</c><00:17:50.640><c> so</c><00:17:51.000><c> something</c><00:17:51.360><c> I</c>

00:17:51.890 --> 00:17:51.900 align:start position:0%
on the stream or also so something I
 

00:17:51.900 --> 00:17:54.529 align:start position:0%
on the stream or also so something I
think<00:17:52.020><c> big</c><00:17:52.260><c> for</c><00:17:53.039><c> doing</c><00:17:53.400><c> some</c><00:17:53.640><c> ad</c><00:17:53.880><c> hoc</c><00:17:54.120><c> data</c>

00:17:54.529 --> 00:17:54.539 align:start position:0%
think big for doing some ad hoc data
 

00:17:54.539 --> 00:17:55.789 align:start position:0%
think big for doing some ad hoc data
science<00:17:54.660><c> because</c><00:17:54.960><c> you</c><00:17:55.140><c> know</c><00:17:55.200><c> you</c><00:17:55.440><c> have</c><00:17:55.559><c> a</c>

00:17:55.789 --> 00:17:55.799 align:start position:0%
science because you know you have a
 

00:17:55.799 --> 00:17:57.710 align:start position:0%
science because you know you have a
really<00:17:55.860><c> fast</c><00:17:56.160><c> engine</c><00:17:56.460><c> allows</c><00:17:57.240><c> you</c><00:17:57.299><c> to</c><00:17:57.480><c> process</c>

00:17:57.710 --> 00:17:57.720 align:start position:0%
really fast engine allows you to process
 

00:17:57.720 --> 00:18:00.110 align:start position:0%
really fast engine allows you to process
the<00:17:57.960><c> whole</c><00:17:58.140><c> history</c><00:17:58.320><c> in</c><00:17:59.100><c> like</c><00:17:59.400><c> it</c><00:17:59.700><c> can</c><00:17:59.820><c> take</c><00:17:59.940><c> a</c>

00:18:00.110 --> 00:18:00.120 align:start position:0%
the whole history in like it can take a
 

00:18:00.120 --> 00:18:01.909 align:start position:0%
the whole history in like it can take a
few<00:18:00.299><c> minutes</c><00:18:00.480><c> to</c><00:18:01.080><c> process</c><00:18:01.440><c> the</c><00:18:01.620><c> whole</c><00:18:01.679><c> of</c><00:18:01.799><c> it</c>

00:18:01.909 --> 00:18:01.919 align:start position:0%
few minutes to process the whole of it
 

00:18:01.919 --> 00:18:03.350 align:start position:0%
few minutes to process the whole of it
here<00:18:02.039><c> image</c><00:18:02.220><c> to</c><00:18:02.460><c> go</c><00:18:02.580><c> and</c><00:18:02.700><c> pluck</c><00:18:02.940><c> some</c><00:18:03.120><c> new</c>

00:18:03.350 --> 00:18:03.360 align:start position:0%
here image to go and pluck some new
 

00:18:03.360 --> 00:18:05.690 align:start position:0%
here image to go and pluck some new
insights<00:18:03.780><c> so</c><00:18:04.080><c> you</c><00:18:04.200><c> can</c><00:18:04.320><c> write</c><00:18:04.559><c> your</c><00:18:04.860><c> code</c><00:18:05.039><c> send</c>

00:18:05.690 --> 00:18:05.700 align:start position:0%
insights so you can write your code send
 

00:18:05.700 --> 00:18:07.250 align:start position:0%
insights so you can write your code send
it<00:18:05.820><c> to</c><00:18:05.940><c> the</c><00:18:06.000><c> network</c><00:18:06.179><c> and</c><00:18:06.539><c> then</c><00:18:06.720><c> you</c><00:18:07.200><c> know</c>

00:18:07.250 --> 00:18:07.260 align:start position:0%
it to the network and then you know
 

00:18:07.260 --> 00:18:09.289 align:start position:0%
it to the network and then you know
stream<00:18:07.559><c> out</c><00:18:07.799><c> the</c><00:18:07.980><c> results</c><00:18:08.100><c> similar</c><00:18:08.580><c> to</c><00:18:08.700><c> for</c>

00:18:09.289 --> 00:18:09.299 align:start position:0%
stream out the results similar to for
 

00:18:09.299 --> 00:18:11.270 align:start position:0%
stream out the results similar to for
those<00:18:09.419><c> who</c><00:18:09.600><c> know</c><00:18:09.780><c> big</c><00:18:10.080><c> query</c><00:18:10.620><c> you</c><00:18:11.039><c> know</c><00:18:11.160><c> the</c>

00:18:11.270 --> 00:18:11.280 align:start position:0%
those who know big query you know the
 

00:18:11.280 --> 00:18:13.370 align:start position:0%
those who know big query you know the
cluster<00:18:11.640><c> the</c><00:18:11.880><c> big</c><00:18:12.299><c> cluster</c><00:18:12.660><c> the</c><00:18:12.780><c> service</c><00:18:13.080><c> by</c>

00:18:13.370 --> 00:18:13.380 align:start position:0%
cluster the big cluster the service by
 

00:18:13.380 --> 00:18:15.230 align:start position:0%
cluster the big cluster the service by
Google<00:18:13.620><c> that's</c><00:18:14.280><c> what</c><00:18:14.520><c> they</c><00:18:14.640><c> do</c><00:18:14.760><c> you</c><00:18:14.940><c> send</c><00:18:15.059><c> the</c>

00:18:15.230 --> 00:18:15.240 align:start position:0%
Google that's what they do you send the
 

00:18:15.240 --> 00:18:16.730 align:start position:0%
Google that's what they do you send the
request<00:18:15.480><c> they</c><00:18:15.780><c> just</c><00:18:15.960><c> shot</c><00:18:16.440><c> at</c><00:18:16.620><c> everything</c>

00:18:16.730 --> 00:18:16.740 align:start position:0%
request they just shot at everything
 

00:18:16.740 --> 00:18:18.590 align:start position:0%
request they just shot at everything
they<00:18:17.039><c> send</c><00:18:17.220><c> you</c><00:18:17.340><c> back</c><00:18:17.460><c> the</c><00:18:17.640><c> request</c><00:18:17.880><c> well</c><00:18:18.360><c> all</c>

00:18:18.590 --> 00:18:18.600 align:start position:0%
they send you back the request well all
 

00:18:18.600 --> 00:18:20.390 align:start position:0%
they send you back the request well all
of<00:18:18.720><c> a</c><00:18:18.720><c> sudden</c><00:18:18.840><c> substream's</c><00:18:19.559><c> engine</c><00:18:19.679><c> can</c><00:18:20.100><c> allow</c>

00:18:20.390 --> 00:18:20.400 align:start position:0%
of a sudden substream's engine can allow
 

00:18:20.400 --> 00:18:22.190 align:start position:0%
of a sudden substream's engine can allow
you<00:18:20.460><c> to</c><00:18:20.580><c> do</c><00:18:20.760><c> some</c><00:18:21.000><c> things</c><00:18:21.240><c> like</c><00:18:21.480><c> that</c><00:18:21.660><c> ad</c><00:18:22.020><c> hoc</c>

00:18:22.190 --> 00:18:22.200 align:start position:0%
you to do some things like that ad hoc
 

00:18:22.200 --> 00:18:25.490 align:start position:0%
you to do some things like that ad hoc
and<00:18:22.799><c> it</c><00:18:23.160><c> you</c><00:18:23.580><c> can</c><00:18:23.700><c> write</c><00:18:23.820><c> any</c><00:18:24.059><c> program</c><00:18:24.299><c> uh</c><00:18:25.260><c> that</c>

00:18:25.490 --> 00:18:25.500 align:start position:0%
and it you can write any program uh that
 

00:18:25.500 --> 00:18:27.710 align:start position:0%
and it you can write any program uh that
that<00:18:25.679><c> supports</c><00:18:26.160><c> grpc</c><00:18:26.760><c> in</c><00:18:26.880><c> protobuf</c><00:18:27.480><c> which</c><00:18:27.600><c> are</c>

00:18:27.710 --> 00:18:27.720 align:start position:0%
that supports grpc in protobuf which are
 

00:18:27.720 --> 00:18:29.750 align:start position:0%
that supports grpc in protobuf which are
many<00:18:27.900><c> and</c><00:18:28.559><c> the</c><00:18:28.740><c> last</c><00:18:28.860><c> one</c><00:18:28.980><c> here</c><00:18:29.220><c> not</c><00:18:29.400><c> the</c><00:18:29.640><c> least</c>

00:18:29.750 --> 00:18:29.760 align:start position:0%
many and the last one here not the least
 

00:18:29.760 --> 00:18:33.110 align:start position:0%
many and the last one here not the least
subgras<00:18:30.419><c> through</c><00:18:30.660><c> graph</c><00:18:31.020><c> node</c><00:18:31.440><c> well</c><00:18:32.340><c> so</c><00:18:33.000><c> we're</c>

00:18:33.110 --> 00:18:33.120 align:start position:0%
subgras through graph node well so we're
 

00:18:33.120 --> 00:18:35.270 align:start position:0%
subgras through graph node well so we're
working<00:18:33.360><c> to</c><00:18:33.660><c> make</c><00:18:33.840><c> substreams</c><00:18:34.440><c> feed</c><00:18:34.740><c> directly</c>

00:18:35.270 --> 00:18:35.280 align:start position:0%
working to make substreams feed directly
 

00:18:35.280 --> 00:18:38.150 align:start position:0%
working to make substreams feed directly
into<00:18:35.520><c> into</c><00:18:36.059><c> graph</c><00:18:36.419><c> node</c><00:18:36.780><c> to</c><00:18:37.440><c> then</c><00:18:37.620><c> provide</c><00:18:37.980><c> the</c>

00:18:38.150 --> 00:18:38.160 align:start position:0%
into into graph node to then provide the
 

00:18:38.160 --> 00:18:39.590 align:start position:0%
into into graph node to then provide the
same<00:18:38.340><c> loading</c><00:18:38.760><c> experience</c><00:18:39.120><c> and</c><00:18:39.480><c> then</c>

00:18:39.590 --> 00:18:39.600 align:start position:0%
same loading experience and then
 

00:18:39.600 --> 00:18:41.210 align:start position:0%
same loading experience and then
querying<00:18:40.140><c> experience</c><00:18:40.500><c> that</c><00:18:40.679><c> you've</c><00:18:40.919><c> come</c><00:18:41.100><c> to</c>

00:18:41.210 --> 00:18:41.220 align:start position:0%
querying experience that you've come to
 

00:18:41.220 --> 00:18:43.190 align:start position:0%
querying experience that you've come to
know<00:18:41.460><c> and</c><00:18:42.179><c> love</c><00:18:42.360><c> and</c><00:18:42.600><c> you'll</c><00:18:42.840><c> be</c><00:18:42.960><c> able</c><00:18:43.080><c> to</c>

00:18:43.190 --> 00:18:43.200 align:start position:0%
know and love and you'll be able to
 

00:18:43.200 --> 00:18:45.169 align:start position:0%
know and love and you'll be able to
deploy<00:18:43.679><c> a</c><00:18:44.220><c> sub</c><00:18:44.340><c> grasp</c><00:18:44.760><c> this</c><00:18:44.940><c> time</c><00:18:45.000><c> not</c>

00:18:45.169 --> 00:18:45.179 align:start position:0%
deploy a sub grasp this time not
 

00:18:45.179 --> 00:18:47.090 align:start position:0%
deploy a sub grasp this time not
containing<00:18:45.600><c> assembly</c><00:18:46.020><c> script</c><00:18:46.320><c> but</c><00:18:46.679><c> a</c><00:18:46.860><c> stud</c>

00:18:47.090 --> 00:18:47.100 align:start position:0%
containing assembly script but a stud
 

00:18:47.100 --> 00:18:50.029 align:start position:0%
containing assembly script but a stud
streams<00:18:47.520><c> package</c><00:18:47.880><c> with</c><00:18:48.059><c> an</c><00:18:48.179><c> entry</c><00:18:48.480><c> point</c><00:18:49.039><c> and</c>

00:18:50.029 --> 00:18:50.039 align:start position:0%
streams package with an entry point and
 

00:18:50.039 --> 00:18:52.130 align:start position:0%
streams package with an entry point and
would<00:18:50.580><c> process</c><00:18:51.059><c> the</c><00:18:51.299><c> history</c><00:18:51.419><c> in</c><00:18:51.660><c> parallel</c>

00:18:52.130 --> 00:18:52.140 align:start position:0%
would process the history in parallel
 

00:18:52.140 --> 00:18:53.870 align:start position:0%
would process the history in parallel
and<00:18:52.679><c> load</c><00:18:52.919><c> that</c><00:18:53.039><c> in</c><00:18:53.160><c> your</c><00:18:53.280><c> database</c><00:18:53.580><c> in</c><00:18:53.700><c> Crazy</c>

00:18:53.870 --> 00:18:53.880 align:start position:0%
and load that in your database in Crazy
 

00:18:53.880 --> 00:18:56.690 align:start position:0%
and load that in your database in Crazy
speeds<00:18:54.419><c> so</c><00:18:54.960><c> stay</c><00:18:55.200><c> tuned</c><00:18:55.380><c> for</c><00:18:55.500><c> that</c><00:18:55.679><c> that's</c><00:18:56.520><c> not</c>

00:18:56.690 --> 00:18:56.700 align:start position:0%
speeds so stay tuned for that that's not
 

00:18:56.700 --> 00:18:59.150 align:start position:0%
speeds so stay tuned for that that's not
out<00:18:56.880><c> yet</c><00:18:57.000><c> but</c><00:18:57.299><c> you</c><00:18:57.480><c> know</c><00:18:57.660><c> soon</c><00:18:57.960><c> okay</c><00:18:58.559><c> and</c><00:18:58.980><c> so</c>

00:18:59.150 --> 00:18:59.160 align:start position:0%
out yet but you know soon okay and so
 

00:18:59.160 --> 00:19:01.789 align:start position:0%
out yet but you know soon okay and so
this<00:18:59.400><c> is</c><00:18:59.580><c> a</c><00:18:59.700><c> simple</c><00:19:00.059><c> example</c><00:19:00.539><c> in</c><00:19:00.720><c> Python</c>

00:19:01.789 --> 00:19:01.799 align:start position:0%
this is a simple example in Python
 

00:19:01.799 --> 00:19:03.529 align:start position:0%
this is a simple example in Python
it's<00:19:02.340><c> not</c><00:19:02.520><c> really</c><00:19:02.700><c> longer</c><00:19:03.059><c> than</c><00:19:03.179><c> that</c><00:19:03.360><c> you</c>

00:19:03.529 --> 00:19:03.539 align:start position:0%
it's not really longer than that you
 

00:19:03.539 --> 00:19:04.970 align:start position:0%
it's not really longer than that you
have<00:19:03.720><c> two</c><00:19:03.900><c> one</c><00:19:04.080><c> or</c><00:19:04.200><c> two</c><00:19:04.320><c> dependencies</c><00:19:04.740><c> like</c>

00:19:04.970 --> 00:19:04.980 align:start position:0%
have two one or two dependencies like
 

00:19:04.980 --> 00:19:07.070 align:start position:0%
have two one or two dependencies like
grpc<00:19:05.640><c> so</c><00:19:06.059><c> that</c><00:19:06.179><c> you</c><00:19:06.299><c> can</c><00:19:06.419><c> use</c><00:19:06.539><c> the</c><00:19:06.660><c> query</c><00:19:06.900><c> so</c>

00:19:07.070 --> 00:19:07.080 align:start position:0%
grpc so that you can use the query so
 

00:19:07.080 --> 00:19:10.010 align:start position:0%
grpc so that you can use the query so
we're<00:19:07.200><c> leveraging</c><00:19:07.559><c> a</c><00:19:07.799><c> lot</c><00:19:07.980><c> there</c><00:19:08.700><c> and</c><00:19:09.059><c> you</c><00:19:09.840><c> can</c>

00:19:10.010 --> 00:19:10.020 align:start position:0%
we're leveraging a lot there and you can
 

00:19:10.020 --> 00:19:13.010 align:start position:0%
we're leveraging a lot there and you can
uh<00:19:10.380><c> you</c><00:19:10.620><c> know</c><00:19:10.679><c> see</c><00:19:11.100><c> that</c><00:19:11.280><c> spkg</c><00:19:12.059><c> there</c><00:19:12.360><c> we</c><00:19:12.900><c> can</c>

00:19:13.010 --> 00:19:13.020 align:start position:0%
uh you know see that spkg there we can
 

00:19:13.020 --> 00:19:15.650 align:start position:0%
uh you know see that spkg there we can
use<00:19:13.260><c> that</c><00:19:13.620><c> to</c><00:19:13.919><c> code</c><00:19:14.160><c> gen</c><00:19:14.460><c> python</c><00:19:15.059><c> classes</c><00:19:15.480><c> and</c>

00:19:15.650 --> 00:19:15.660 align:start position:0%
use that to code gen python classes and
 

00:19:15.660 --> 00:19:17.930 align:start position:0%
use that to code gen python classes and
helpers<00:19:16.020><c> and</c><00:19:16.140><c> all</c><00:19:16.260><c> of</c><00:19:16.440><c> that</c><00:19:16.559><c> because</c><00:19:17.220><c> it</c><00:19:17.460><c> turns</c>

00:19:17.930 --> 00:19:17.940 align:start position:0%
helpers and all of that because it turns
 

00:19:17.940 --> 00:19:20.750 align:start position:0%
helpers and all of that because it turns
out<00:19:18.000><c> that</c><00:19:18.240><c> the</c><00:19:18.660><c> Manifest</c><00:19:19.080><c> through</c><00:19:19.980><c> the</c><00:19:20.160><c> spkg</c>

00:19:20.750 --> 00:19:20.760 align:start position:0%
out that the Manifest through the spkg
 

00:19:20.760 --> 00:19:22.909 align:start position:0%
out that the Manifest through the spkg
there<00:19:21.059><c> is</c><00:19:21.660><c> for</c><00:19:21.840><c> those</c><00:19:21.960><c> who</c><00:19:22.080><c> know</c><00:19:22.260><c> protobuf</c><00:19:22.799><c> is</c>

00:19:22.909 --> 00:19:22.919 align:start position:0%
there is for those who know protobuf is
 

00:19:22.919 --> 00:19:26.330 align:start position:0%
there is for those who know protobuf is
they<00:19:23.160><c> file</c><00:19:23.460><c> descriptor</c><00:19:24.179><c> set</c><00:19:24.360><c> it</c><00:19:24.960><c> contains</c><00:19:25.559><c> all</c>

00:19:26.330 --> 00:19:26.340 align:start position:0%
they file descriptor set it contains all
 

00:19:26.340 --> 00:19:28.310 align:start position:0%
they file descriptor set it contains all
of<00:19:26.460><c> the</c><00:19:26.820><c> things</c><00:19:27.000><c> all</c><00:19:27.660><c> the</c><00:19:27.840><c> protobuf</c>

00:19:28.310 --> 00:19:28.320 align:start position:0%
of the things all the protobuf
 

00:19:28.320 --> 00:19:30.650 align:start position:0%
of the things all the protobuf
definitions<00:19:28.799><c> so</c><00:19:29.280><c> the</c><00:19:29.460><c> spkg</c><00:19:30.059><c> also</c><00:19:30.360><c> contains</c>

00:19:30.650 --> 00:19:30.660 align:start position:0%
definitions so the spkg also contains
 

00:19:30.660 --> 00:19:33.169 align:start position:0%
definitions so the spkg also contains
all<00:19:30.840><c> the</c><00:19:31.020><c> wasm</c><00:19:31.559><c> code</c><00:19:31.799><c> the</c><00:19:32.460><c> module</c><00:19:32.760><c> graph</c>

00:19:33.169 --> 00:19:33.179 align:start position:0%
all the wasm code the module graph
 

00:19:33.179 --> 00:19:34.430 align:start position:0%
all the wasm code the module graph
information<00:19:33.360><c> you</c><00:19:33.780><c> know</c><00:19:33.900><c> the</c><00:19:34.080><c> dependencies</c>

00:19:34.430 --> 00:19:34.440 align:start position:0%
information you know the dependencies
 

00:19:34.440 --> 00:19:36.289 align:start position:0%
information you know the dependencies
the<00:19:34.679><c> inputs</c><00:19:35.039><c> and</c><00:19:35.100><c> all</c><00:19:35.280><c> that</c><00:19:35.400><c> and</c><00:19:35.940><c> even</c><00:19:36.000><c> some</c>

00:19:36.289 --> 00:19:36.299 align:start position:0%
the inputs and all that and even some
 

00:19:36.299 --> 00:19:38.510 align:start position:0%
the inputs and all that and even some
documentation<00:19:36.780><c> everything</c><00:19:37.200><c> is</c><00:19:37.380><c> needed</c><00:19:37.740><c> is</c><00:19:38.280><c> in</c>

00:19:38.510 --> 00:19:38.520 align:start position:0%
documentation everything is needed is in
 

00:19:38.520 --> 00:19:41.150 align:start position:0%
documentation everything is needed is in
there<00:19:38.700><c> so</c><00:19:39.059><c> you</c><00:19:39.539><c> can</c><00:19:39.660><c> pass</c><00:19:39.960><c> it</c><00:19:40.200><c> down</c><00:19:40.440><c> to</c><00:19:40.679><c> the</c><00:19:40.860><c> you</c>

00:19:41.150 --> 00:19:41.160 align:start position:0%
there so you can pass it down to the you
 

00:19:41.160 --> 00:19:43.010 align:start position:0%
there so you can pass it down to the you
know<00:19:41.340><c> modules</c><00:19:41.820><c> you</c><00:19:42.000><c> take</c><00:19:42.179><c> it</c><00:19:42.299><c> from</c><00:19:42.480><c> from</c><00:19:42.780><c> the</c>

00:19:43.010 --> 00:19:43.020 align:start position:0%
know modules you take it from from the
 

00:19:43.020 --> 00:19:45.110 align:start position:0%
know modules you take it from from the
disk<00:19:43.320><c> and</c><00:19:43.500><c> boom</c><00:19:44.280><c> you</c><00:19:44.460><c> send</c><00:19:44.580><c> the</c><00:19:44.700><c> request</c><00:19:44.940><c> to</c>

00:19:45.110 --> 00:19:45.120 align:start position:0%
disk and boom you send the request to
 

00:19:45.120 --> 00:19:47.029 align:start position:0%
disk and boom you send the request to
the<00:19:45.240><c> server</c><00:19:45.480><c> and</c><00:19:45.600><c> it's</c><00:19:45.720><c> running</c><00:19:45.960><c> so</c><00:19:46.559><c> you</c><00:19:46.919><c> can</c>

00:19:47.029 --> 00:19:47.039 align:start position:0%
the server and it's running so you can
 

00:19:47.039 --> 00:19:48.950 align:start position:0%
the server and it's running so you can
deploy<00:19:47.520><c> packages</c><00:19:48.120><c> also</c><00:19:48.419><c> very</c><00:19:48.600><c> easily</c><00:19:48.840><c> and</c>

00:19:48.950 --> 00:19:48.960 align:start position:0%
deploy packages also very easily and
 

00:19:48.960 --> 00:19:50.990 align:start position:0%
deploy packages also very easily and
consume<00:19:49.380><c> them</c><00:19:49.500><c> very</c><00:19:50.340><c> simply</c><00:19:50.640><c> this</c><00:19:50.880><c> way</c>

00:19:50.990 --> 00:19:51.000 align:start position:0%
consume them very simply this way
 

00:19:51.000 --> 00:19:52.549 align:start position:0%
consume them very simply this way
there's<00:19:51.299><c> a</c><00:19:51.480><c> few</c><00:19:51.600><c> Imports</c><00:19:52.020><c> we've</c><00:19:52.260><c> omitted</c>

00:19:52.549 --> 00:19:52.559 align:start position:0%
there's a few Imports we've omitted
 

00:19:52.559 --> 00:19:53.450 align:start position:0%
there's a few Imports we've omitted
there<00:19:52.679><c> but</c>

00:19:53.450 --> 00:19:53.460 align:start position:0%
there but
 

00:19:53.460 --> 00:19:56.690 align:start position:0%
there but
it's<00:19:54.059><c> simple</c><00:19:54.299><c> this</c><00:19:54.539><c> is</c><00:19:54.660><c> the</c><00:19:54.780><c> show</c><00:19:54.960><c> okay</c><00:19:55.799><c> and</c>

00:19:56.690 --> 00:19:56.700 align:start position:0%
it's simple this is the show okay and
 

00:19:56.700 --> 00:19:58.190 align:start position:0%
it's simple this is the show okay and
let's<00:19:56.940><c> look</c><00:19:57.120><c> at</c><00:19:57.299><c> a</c><00:19:57.419><c> simplified</c><00:19:57.780><c> data</c><00:19:58.140><c> model</c>

00:19:58.190 --> 00:19:58.200 align:start position:0%
let's look at a simplified data model
 

00:19:58.200 --> 00:20:00.289 align:start position:0%
let's look at a simplified data model
for<00:19:58.380><c> unionist</c><00:19:58.679><c> swap</c><00:19:58.919><c> V3</c><00:19:59.280><c> and</c><00:19:59.700><c> I'll</c><00:19:59.940><c> show</c><00:20:00.059><c> some</c>

00:20:00.289 --> 00:20:00.299 align:start position:0%
for unionist swap V3 and I'll show some
 

00:20:00.299 --> 00:20:02.330 align:start position:0%
for unionist swap V3 and I'll show some
code<00:20:00.419><c> making</c><00:20:00.600><c> use</c><00:20:00.780><c> of</c><00:20:00.960><c> it</c><00:20:01.080><c> okay</c><00:20:01.260><c> so</c><00:20:01.740><c> this</c><00:20:02.160><c> here</c>

00:20:02.330 --> 00:20:02.340 align:start position:0%
code making use of it okay so this here
 

00:20:02.340 --> 00:20:04.130 align:start position:0%
code making use of it okay so this here
the<00:20:02.580><c> pool</c><00:20:02.700><c> is</c><00:20:02.880><c> a</c><00:20:03.059><c> list</c><00:20:03.240><c> of</c><00:20:03.419><c> pool</c><00:20:03.600><c> this</c><00:20:04.020><c> is</c>

00:20:04.130 --> 00:20:04.140 align:start position:0%
the pool is a list of pool this is
 

00:20:04.140 --> 00:20:06.169 align:start position:0%
the pool is a list of pool this is
actually<00:20:04.260><c> what</c><00:20:04.500><c> gets</c><00:20:04.919><c> handed</c><00:20:05.400><c> off</c><00:20:05.520><c> from</c><00:20:05.760><c> you</c>

00:20:06.169 --> 00:20:06.179 align:start position:0%
actually what gets handed off from you
 

00:20:06.179 --> 00:20:08.390 align:start position:0%
actually what gets handed off from you
know<00:20:06.299><c> our</c><00:20:06.840><c> mapper</c><00:20:07.320><c> which</c><00:20:07.679><c> finds</c><00:20:08.100><c> the</c><00:20:08.280><c> pool</c>

00:20:08.390 --> 00:20:08.400 align:start position:0%
know our mapper which finds the pool
 

00:20:08.400 --> 00:20:10.970 align:start position:0%
know our mapper which finds the pool
that<00:20:08.640><c> were</c><00:20:08.820><c> created</c><00:20:09.179><c> down</c><00:20:09.840><c> to</c><00:20:10.080><c> the</c><00:20:10.320><c> store</c><00:20:10.679><c> pool</c>

00:20:10.970 --> 00:20:10.980 align:start position:0%
that were created down to the store pool
 

00:20:10.980 --> 00:20:13.190 align:start position:0%
that were created down to the store pool
which<00:20:11.280><c> we're</c><00:20:11.400><c> going</c><00:20:11.580><c> to</c><00:20:11.640><c> look</c><00:20:11.760><c> also</c><00:20:12.120><c> and</c><00:20:12.840><c> so</c><00:20:13.080><c> it</c>

00:20:13.190 --> 00:20:13.200 align:start position:0%
which we're going to look also and so it
 

00:20:13.200 --> 00:20:14.570 align:start position:0%
which we're going to look also and so it
has<00:20:13.440><c> a</c><00:20:13.559><c> list</c><00:20:13.679><c> of</c><00:20:13.799><c> tools</c><00:20:14.039><c> and</c><00:20:14.160><c> the</c><00:20:14.280><c> tools</c><00:20:14.460><c> you</c>

00:20:14.570 --> 00:20:14.580 align:start position:0%
has a list of tools and the tools you
 

00:20:14.580 --> 00:20:16.430 align:start position:0%
has a list of tools and the tools you
can<00:20:14.640><c> imagine</c><00:20:14.760><c> an</c><00:20:15.600><c> address</c><00:20:15.780><c> and</c><00:20:16.140><c> the</c><00:20:16.320><c> two</c>

00:20:16.430 --> 00:20:16.440 align:start position:0%
can imagine an address and the two
 

00:20:16.440 --> 00:20:17.750 align:start position:0%
can imagine an address and the two
tokens<00:20:16.740><c> that</c><00:20:16.919><c> are</c><00:20:17.039><c> concerned</c><00:20:17.340><c> here</c><00:20:17.460><c> and</c><00:20:17.640><c> we</c>

00:20:17.750 --> 00:20:17.760 align:start position:0%
tokens that are concerned here and we
 

00:20:17.760 --> 00:20:19.549 align:start position:0%
tokens that are concerned here and we
have<00:20:17.820><c> a</c><00:20:17.940><c> reference</c><00:20:18.179><c> to</c><00:20:18.360><c> the</c><00:20:18.480><c> Token</c><00:20:18.780><c> also</c><00:20:19.080><c> which</c>

00:20:19.549 --> 00:20:19.559 align:start position:0%
have a reference to the Token also which
 

00:20:19.559 --> 00:20:21.350 align:start position:0%
have a reference to the Token also which
is<00:20:19.799><c> going</c><00:20:20.039><c> to</c><00:20:20.100><c> be</c><00:20:20.220><c> very</c><00:20:20.280><c> useful</c><00:20:20.640><c> to</c><00:20:20.820><c> enrich</c><00:20:21.179><c> the</c>

00:20:21.350 --> 00:20:21.360 align:start position:0%
is going to be very useful to enrich the
 

00:20:21.360 --> 00:20:22.850 align:start position:0%
is going to be very useful to enrich the
data<00:20:21.539><c> down</c><00:20:21.660><c> so</c><00:20:21.780><c> we</c><00:20:21.960><c> will</c><00:20:22.020><c> have</c><00:20:22.140><c> the</c><00:20:22.260><c> decimals</c>

00:20:22.850 --> 00:20:22.860 align:start position:0%
data down so we will have the decimals
 

00:20:22.860 --> 00:20:24.770 align:start position:0%
data down so we will have the decimals
right<00:20:23.280><c> at</c><00:20:23.520><c> hand</c><00:20:23.700><c> like</c><00:20:24.000><c> we</c><00:20:24.240><c> won't</c><00:20:24.360><c> need</c><00:20:24.539><c> to</c><00:20:24.660><c> do</c>

00:20:24.770 --> 00:20:24.780 align:start position:0%
right at hand like we won't need to do
 

00:20:24.780 --> 00:20:26.270 align:start position:0%
right at hand like we won't need to do
much<00:20:24.900><c> loading</c><00:20:25.260><c> it's</c><00:20:25.380><c> going</c><00:20:25.620><c> to</c><00:20:25.740><c> be</c><00:20:25.860><c> very</c><00:20:26.100><c> very</c>

00:20:26.270 --> 00:20:26.280 align:start position:0%
much loading it's going to be very very
 

00:20:26.280 --> 00:20:28.789 align:start position:0%
much loading it's going to be very very
close<00:20:26.580><c> so</c><00:20:26.820><c> we</c><00:20:27.000><c> can</c><00:20:27.120><c> enrich</c><00:20:27.480><c> all</c><00:20:27.900><c> these</c><00:20:28.140><c> U</c><00:20:28.320><c> ins</c>

00:20:28.789 --> 00:20:28.799 align:start position:0%
close so we can enrich all these U ins
 

00:20:28.799 --> 00:20:32.210 align:start position:0%
close so we can enrich all these U ins
250<00:20:29.160><c> 79</c><00:20:30.299><c> 000</c><00:20:30.419><c> and</c><00:20:31.140><c> you</c><00:20:31.559><c> know</c><00:20:31.679><c> put</c><00:20:31.860><c> the</c><00:20:32.039><c> the</c>

00:20:32.210 --> 00:20:32.220 align:start position:0%
250 79 000 and you know put the the
 

00:20:32.220 --> 00:20:34.490 align:start position:0%
250 79 000 and you know put the the
comma<00:20:32.520><c> where</c><00:20:32.640><c> it</c><00:20:32.760><c> belongs</c>

00:20:34.490 --> 00:20:34.500 align:start position:0%
comma where it belongs
 

00:20:34.500 --> 00:20:36.289 align:start position:0%
comma where it belongs
um so<00:20:35.039><c> let's</c><00:20:35.280><c> see</c><00:20:35.520><c> what</c><00:20:35.700><c> happens</c><00:20:35.880><c> in</c><00:20:36.179><c> the</c>

00:20:36.289 --> 00:20:36.299 align:start position:0%
um so let's see what happens in the
 

00:20:36.299 --> 00:20:38.330 align:start position:0%
um so let's see what happens in the
mappers<00:20:36.600><c> so</c><00:20:36.840><c> this</c><00:20:37.140><c> is</c><00:20:37.260><c> a</c><00:20:37.500><c> sample</c><00:20:37.799><c> rust</c><00:20:38.100><c> code</c>

00:20:38.330 --> 00:20:38.340 align:start position:0%
mappers so this is a sample rust code
 

00:20:38.340 --> 00:20:40.450 align:start position:0%
mappers so this is a sample rust code
raise<00:20:38.580><c> your</c><00:20:38.760><c> hand</c><00:20:38.880><c> if</c><00:20:39.000><c> you</c><00:20:39.120><c> love</c><00:20:39.240><c> rust</c>

00:20:40.450 --> 00:20:40.460 align:start position:0%
raise your hand if you love rust
 

00:20:40.460 --> 00:20:43.310 align:start position:0%
raise your hand if you love rust
where's<00:20:41.460><c> your</c><00:20:41.700><c> hand</c><00:20:41.820><c> if</c><00:20:42.059><c> you</c><00:20:42.179><c> no</c><00:20:42.480><c> rust</c><00:20:42.840><c> okay</c>

00:20:43.310 --> 00:20:43.320 align:start position:0%
where's your hand if you no rust okay
 

00:20:43.320 --> 00:20:44.510 align:start position:0%
where's your hand if you no rust okay
it's<00:20:43.679><c> very</c><00:20:43.799><c> simple</c><00:20:43.919><c> here</c><00:20:44.160><c> I'm</c><00:20:44.280><c> gonna</c><00:20:44.400><c> go</c>

00:20:44.510 --> 00:20:44.520 align:start position:0%
it's very simple here I'm gonna go
 

00:20:44.520 --> 00:20:46.010 align:start position:0%
it's very simple here I'm gonna go
through<00:20:44.700><c> you</c><00:20:45.059><c> have</c><00:20:45.179><c> the</c><00:20:45.299><c> map</c><00:20:45.480><c> pools</c><00:20:45.840><c> function</c>

00:20:46.010 --> 00:20:46.020 align:start position:0%
through you have the map pools function
 

00:20:46.020 --> 00:20:48.049 align:start position:0%
through you have the map pools function
corresponding<00:20:46.620><c> to</c><00:20:46.740><c> the</c><00:20:46.860><c> Manifest</c><00:20:47.340><c> there</c><00:20:47.580><c> has</c>

00:20:48.049 --> 00:20:48.059 align:start position:0%
corresponding to the Manifest there has
 

00:20:48.059 --> 00:20:50.510 align:start position:0%
corresponding to the Manifest there has
one<00:20:48.419><c> input</c><00:20:48.840><c> the</c><00:20:49.080><c> block</c><00:20:49.320><c> this</c><00:20:49.740><c> is</c><00:20:49.919><c> the</c><00:20:50.400><c> fire</c>

00:20:50.510 --> 00:20:50.520 align:start position:0%
one input the block this is the fire
 

00:20:50.520 --> 00:20:53.029 align:start position:0%
one input the block this is the fire
hose<00:20:50.820><c> block</c><00:20:51.059><c> with</c><00:20:51.299><c> all</c><00:20:51.600><c> transactions</c><00:20:52.380><c> all</c>

00:20:53.029 --> 00:20:53.039 align:start position:0%
hose block with all transactions all
 

00:20:53.039 --> 00:20:54.890 align:start position:0%
hose block with all transactions all
logs<00:20:53.460><c> All</c><00:20:53.580><c> State</c><00:20:53.760><c> chains</c><00:20:54.179><c> you</c><00:20:54.299><c> can</c><00:20:54.419><c> craft</c><00:20:54.600><c> your</c>

00:20:54.890 --> 00:20:54.900 align:start position:0%
logs All State chains you can craft your
 

00:20:54.900 --> 00:20:56.930 align:start position:0%
logs All State chains you can craft your
own<00:20:55.020><c> triggers</c><00:20:55.440><c> in</c><00:20:55.679><c> there</c><00:20:55.860><c> as</c><00:20:56.280><c> you</c><00:20:56.400><c> wish</c><00:20:56.580><c> but</c><00:20:56.760><c> we</c>

00:20:56.930 --> 00:20:56.940 align:start position:0%
own triggers in there as you wish but we
 

00:20:56.940 --> 00:20:58.850 align:start position:0%
own triggers in there as you wish but we
have<00:20:57.059><c> a</c><00:20:57.240><c> simple</c><00:20:57.539><c> Voyager</c><00:20:58.080><c> and</c><00:20:58.200><c> see</c><00:20:58.320><c> that</c><00:20:58.500><c> that</c>

00:20:58.850 --> 00:20:58.860 align:start position:0%
have a simple Voyager and see that that
 

00:20:58.860 --> 00:21:01.490 align:start position:0%
have a simple Voyager and see that that
line<00:20:59.100><c> there</c><00:20:59.340><c> blocks</c><00:20:59.940><c> events</c><00:21:00.299><c> you</c><00:21:00.960><c> have</c><00:21:01.140><c> a</c>

00:21:01.490 --> 00:21:01.500 align:start position:0%
line there blocks events you have a
 

00:21:01.500 --> 00:21:03.770 align:start position:0%
line there blocks events you have a
thing<00:21:01.679><c> that</c><00:21:01.860><c> goes</c><00:21:02.280><c> through</c><00:21:02.460><c> transactions</c><00:21:03.240><c> and</c>

00:21:03.770 --> 00:21:03.780 align:start position:0%
thing that goes through transactions and
 

00:21:03.780 --> 00:21:05.570 align:start position:0%
thing that goes through transactions and
it's<00:21:03.960><c> going</c><00:21:04.140><c> to</c><00:21:04.260><c> trig</c><00:21:04.440><c> on</c><00:21:04.620><c> pool</c><00:21:04.980><c> created</c><00:21:05.340><c> and</c>

00:21:05.570 --> 00:21:05.580 align:start position:0%
it's going to trig on pool created and
 

00:21:05.580 --> 00:21:07.190 align:start position:0%
it's going to trig on pool created and
that<00:21:05.700><c> pool</c><00:21:05.880><c> created</c><00:21:06.240><c> object</c><00:21:06.480><c> in</c><00:21:06.660><c> Rust</c><00:21:06.960><c> was</c>

00:21:07.190 --> 00:21:07.200 align:start position:0%
that pool created object in Rust was
 

00:21:07.200 --> 00:21:10.490 align:start position:0%
that pool created object in Rust was
actually<00:21:07.440><c> code</c><00:21:07.860><c> gen</c><00:21:08.100><c> from</c><00:21:08.640><c> the</c><00:21:08.820><c> Json</c><00:21:09.059><c> API</c><00:21:09.720><c> so</c>

00:21:10.490 --> 00:21:10.500 align:start position:0%
actually code gen from the Json API so
 

00:21:10.500 --> 00:21:11.990 align:start position:0%
actually code gen from the Json API so
you<00:21:10.799><c> can</c><00:21:10.919><c> just</c><00:21:11.039><c> give</c><00:21:11.220><c> the</c><00:21:11.340><c> instruction</c><00:21:11.520><c> and</c>

00:21:11.990 --> 00:21:12.000 align:start position:0%
you can just give the instruction and
 

00:21:12.000 --> 00:21:13.610 align:start position:0%
you can just give the instruction and
we're<00:21:12.120><c> going</c><00:21:12.240><c> to</c><00:21:12.299><c> filter</c><00:21:12.480><c> it</c><00:21:12.780><c> for</c><00:21:12.960><c> only</c><00:21:13.080><c> the</c><00:21:13.260><c> V3</c>

00:21:13.610 --> 00:21:13.620 align:start position:0%
we're going to filter it for only the V3
 

00:21:13.620 --> 00:21:15.350 align:start position:0%
we're going to filter it for only the V3
swap<00:21:14.160><c> Factory</c><00:21:14.340><c> and</c><00:21:14.880><c> then</c><00:21:15.000><c> that</c><00:21:15.120><c> beautiful</c>

00:21:15.350 --> 00:21:15.360 align:start position:0%
swap Factory and then that beautiful
 

00:21:15.360 --> 00:21:18.710 align:start position:0%
swap Factory and then that beautiful
filter<00:21:15.660><c> map</c><00:21:15.900><c> will</c><00:21:16.140><c> give</c><00:21:16.320><c> us</c><00:21:16.500><c> the</c><00:21:16.980><c> log</c><00:21:17.160><c> okay</c><00:21:18.120><c> and</c>

00:21:18.710 --> 00:21:18.720 align:start position:0%
filter map will give us the log okay and
 

00:21:18.720 --> 00:21:20.510 align:start position:0%
filter map will give us the log okay and
then<00:21:18.840><c> we'll</c><00:21:19.020><c> we'll</c><00:21:19.260><c> output</c><00:21:19.679><c> we're</c><00:21:20.220><c> going</c><00:21:20.400><c> to</c>

00:21:20.510 --> 00:21:20.520 align:start position:0%
then we'll we'll output we're going to
 

00:21:20.520 --> 00:21:22.789 align:start position:0%
then we'll we'll output we're going to
collect<00:21:21.000><c> some</c><00:21:21.539><c> of</c><00:21:21.660><c> these</c><00:21:21.840><c> things</c><00:21:22.020><c> into</c><00:21:22.440><c> one</c>

00:21:22.789 --> 00:21:22.799 align:start position:0%
collect some of these things into one
 

00:21:22.799 --> 00:21:24.470 align:start position:0%
collect some of these things into one
list<00:21:23.039><c> of</c><00:21:23.340><c> pools</c><00:21:23.700><c> and</c><00:21:23.820><c> it's</c><00:21:24.000><c> assigned</c><00:21:24.299><c> to</c><00:21:24.360><c> the</c>

00:21:24.470 --> 00:21:24.480 align:start position:0%
list of pools and it's assigned to the
 

00:21:24.480 --> 00:21:26.870 align:start position:0%
list of pools and it's assigned to the
pools<00:21:24.840><c> object</c><00:21:25.140><c> there</c><00:21:25.380><c> and</c><00:21:26.220><c> and</c><00:21:26.400><c> notice</c><00:21:26.760><c> that</c>

00:21:26.870 --> 00:21:26.880 align:start position:0%
pools object there and and notice that
 

00:21:26.880 --> 00:21:29.149 align:start position:0%
pools object there and and notice that
little<00:21:27.000><c> thing</c><00:21:27.240><c> here</c><00:21:27.419><c> this</c><00:21:28.200><c> is</c><00:21:28.320><c> the</c><00:21:28.380><c> RPC</c><00:21:28.919><c> create</c>

00:21:29.149 --> 00:21:29.159 align:start position:0%
little thing here this is the RPC create
 

00:21:29.159 --> 00:21:31.190 align:start position:0%
little thing here this is the RPC create
unit<00:21:29.400><c> Swap</c><00:21:29.700><c> tokensing</c><00:21:30.179><c> this</c><00:21:30.659><c> actually</c><00:21:30.840><c> hits</c>

00:21:31.190 --> 00:21:31.200 align:start position:0%
unit Swap tokensing this actually hits
 

00:21:31.200 --> 00:21:33.649 align:start position:0%
unit Swap tokensing this actually hits
you<00:21:31.799><c> know</c><00:21:31.980><c> an</c><00:21:32.159><c> e-call</c><00:21:32.640><c> on</c><00:21:32.880><c> a</c><00:21:33.059><c> node</c><00:21:33.240><c> behind</c>

00:21:33.649 --> 00:21:33.659 align:start position:0%
you know an e-call on a node behind
 

00:21:33.659 --> 00:21:36.230 align:start position:0%
you know an e-call on a node behind
similar<00:21:34.200><c> to</c><00:21:34.320><c> what</c><00:21:34.440><c> we</c><00:21:34.559><c> have</c><00:21:34.679><c> in</c><00:21:34.740><c> sub</c><00:21:34.919><c> graphs</c>

00:21:36.230 --> 00:21:36.240 align:start position:0%
similar to what we have in sub graphs
 

00:21:36.240 --> 00:21:38.330 align:start position:0%
similar to what we have in sub graphs
that's<00:21:36.600><c> actually</c><00:21:36.780><c> very</c><00:21:37.080><c> important</c><00:21:37.380><c> it</c><00:21:37.980><c> means</c>

00:21:38.330 --> 00:21:38.340 align:start position:0%
that's actually very important it means
 

00:21:38.340 --> 00:21:41.149 align:start position:0%
that's actually very important it means
that<00:21:38.520><c> once</c><00:21:38.940><c> we've</c><00:21:39.179><c> processed</c><00:21:39.840><c> this</c><00:21:40.740><c> layer</c>

00:21:41.149 --> 00:21:41.159 align:start position:0%
that once we've processed this layer
 

00:21:41.159 --> 00:21:43.210 align:start position:0%
that once we've processed this layer
once<00:21:42.059><c> and</c><00:21:42.240><c> we've</c><00:21:42.480><c> done</c><00:21:42.600><c> it</c><00:21:42.720><c> for</c><00:21:42.840><c> the</c><00:21:43.020><c> history</c>

00:21:43.210 --> 00:21:43.220 align:start position:0%
once and we've done it for the history
 

00:21:43.220 --> 00:21:46.549 align:start position:0%
once and we've done it for the history
it<00:21:44.220><c> can</c><00:21:44.340><c> be</c><00:21:44.520><c> cached</c><00:21:45.000><c> very</c><00:21:45.360><c> efficiently</c><00:21:46.020><c> so</c>

00:21:46.549 --> 00:21:46.559 align:start position:0%
it can be cached very efficiently so
 

00:21:46.559 --> 00:21:48.950 align:start position:0%
it can be cached very efficiently so
anyone<00:21:46.980><c> relying</c><00:21:47.520><c> on</c><00:21:47.700><c> that</c><00:21:47.940><c> thing</c><00:21:48.120><c> will</c><00:21:48.720><c> never</c>

00:21:48.950 --> 00:21:48.960 align:start position:0%
anyone relying on that thing will never
 

00:21:48.960 --> 00:21:51.649 align:start position:0%
anyone relying on that thing will never
need<00:21:49.320><c> to</c><00:21:49.500><c> reprocess</c><00:21:50.039><c> it</c><00:21:50.340><c> again</c><00:21:50.580><c> you</c><00:21:51.360><c> can</c><00:21:51.480><c> give</c>

00:21:51.649 --> 00:21:51.659 align:start position:0%
need to reprocess it again you can give
 

00:21:51.659 --> 00:21:53.870 align:start position:0%
need to reprocess it again you can give
the<00:21:51.900><c> package</c><00:21:52.500><c> to</c><00:21:52.679><c> someone</c><00:21:52.919><c> and</c><00:21:53.580><c> they</c><00:21:53.760><c> can</c>

00:21:53.870 --> 00:21:53.880 align:start position:0%
the package to someone and they can
 

00:21:53.880 --> 00:21:55.909 align:start position:0%
the package to someone and they can
access<00:21:54.120><c> the</c><00:21:54.539><c> stores</c><00:21:54.720><c> that's</c><00:21:55.200><c> been</c><00:21:55.380><c> cached</c><00:21:55.799><c> by</c>

00:21:55.909 --> 00:21:55.919 align:start position:0%
access the stores that's been cached by
 

00:21:55.919 --> 00:21:58.070 align:start position:0%
access the stores that's been cached by
other<00:21:56.039><c> people</c><00:21:56.360><c> immediately</c><00:21:57.360><c> so</c><00:21:57.659><c> you</c><00:21:57.900><c> could</c><00:21:57.960><c> go</c>

00:21:58.070 --> 00:21:58.080 align:start position:0%
other people immediately so you could go
 

00:21:58.080 --> 00:22:00.890 align:start position:0%
other people immediately so you could go
to<00:21:58.140><c> block</c><00:21:58.320><c> 50</c><00:21:58.620><c> million</c><00:21:59.100><c> and</c><00:21:59.580><c> you'll</c><00:22:00.000><c> have</c><00:22:00.360><c> the</c>

00:22:00.890 --> 00:22:00.900 align:start position:0%
to block 50 million and you'll have the
 

00:22:00.900 --> 00:22:03.049 align:start position:0%
to block 50 million and you'll have the
list<00:22:01.080><c> of</c><00:22:01.320><c> all</c><00:22:01.620><c> pool</c><00:22:01.860><c> created</c><00:22:02.340><c> that</c><00:22:02.820><c> you</c><00:22:02.940><c> can</c>

00:22:03.049 --> 00:22:03.059 align:start position:0%
list of all pool created that you can
 

00:22:03.059 --> 00:22:05.029 align:start position:0%
list of all pool created that you can
query<00:22:03.360><c> super</c><00:22:03.659><c> fast</c><00:22:03.900><c> you</c><00:22:04.320><c> can</c><00:22:04.440><c> depend</c><00:22:04.740><c> on</c><00:22:04.919><c> it</c>

00:22:05.029 --> 00:22:05.039 align:start position:0%
query super fast you can depend on it
 

00:22:05.039 --> 00:22:08.330 align:start position:0%
query super fast you can depend on it
also<00:22:05.340><c> so</c><00:22:05.820><c> I</c><00:22:05.940><c> think</c><00:22:06.120><c> that's</c><00:22:06.780><c> pretty</c><00:22:07.440><c> cool</c>

00:22:08.330 --> 00:22:08.340 align:start position:0%
also so I think that's pretty cool
 

00:22:08.340 --> 00:22:11.270 align:start position:0%
also so I think that's pretty cool
and<00:22:09.120><c> here</c><00:22:09.299><c> that's</c><00:22:09.480><c> the</c><00:22:09.720><c> store</c><00:22:09.840><c> modules</c><00:22:10.799><c> the</c>

00:22:11.270 --> 00:22:11.280 align:start position:0%
and here that's the store modules the
 

00:22:11.280 --> 00:22:12.770 align:start position:0%
and here that's the store modules the
store<00:22:11.400><c> module</c><00:22:11.760><c> is</c><00:22:11.940><c> pretty</c><00:22:12.120><c> simple</c><00:22:12.299><c> here</c><00:22:12.600><c> it</c>

00:22:12.770 --> 00:22:12.780 align:start position:0%
store module is pretty simple here it
 

00:22:12.780 --> 00:22:15.169 align:start position:0%
store module is pretty simple here it
receives<00:22:13.140><c> C</c><00:22:13.380><c> the</c><00:22:13.860><c> pools</c><00:22:14.280><c> from</c><00:22:14.460><c> the</c><00:22:14.640><c> output</c><00:22:14.940><c> of</c>

00:22:15.169 --> 00:22:15.179 align:start position:0%
receives C the pools from the output of
 

00:22:15.179 --> 00:22:17.690 align:start position:0%
receives C the pools from the output of
the<00:22:15.360><c> prior</c><00:22:15.600><c> module</c><00:22:16.080><c> and</c><00:22:16.740><c> it</c><00:22:16.860><c> does</c><00:22:17.100><c> it</c><00:22:17.400><c> Loops</c>

00:22:17.690 --> 00:22:17.700 align:start position:0%
the prior module and it does it Loops
 

00:22:17.700 --> 00:22:19.610 align:start position:0%
the prior module and it does it Loops
through<00:22:17.820><c> the</c><00:22:17.940><c> little</c><00:22:18.059><c> pools</c><00:22:18.480><c> there</c><00:22:18.720><c> and</c><00:22:18.960><c> calls</c>

00:22:19.610 --> 00:22:19.620 align:start position:0%
through the little pools there and calls
 

00:22:19.620 --> 00:22:21.770 align:start position:0%
through the little pools there and calls
output<00:22:19.919><c> set</c><00:22:20.280><c> and</c><00:22:20.760><c> see</c><00:22:20.940><c> the</c><00:22:21.120><c> key</c><00:22:21.240><c> there</c><00:22:21.419><c> is</c><00:22:21.600><c> pool</c>

00:22:21.770 --> 00:22:21.780 align:start position:0%
output set and see the key there is pool
 

00:22:21.780 --> 00:22:24.710 align:start position:0%
output set and see the key there is pool
colon<00:22:22.320><c> the</c><00:22:23.100><c> address</c><00:22:23.280><c> is</c><00:22:24.000><c> going</c><00:22:24.240><c> to</c><00:22:24.299><c> store</c><00:22:24.419><c> the</c>

00:22:24.710 --> 00:22:24.720 align:start position:0%
colon the address is going to store the
 

00:22:24.720 --> 00:22:26.950 align:start position:0%
colon the address is going to store the
Proto<00:22:25.140><c> buff</c><00:22:25.320><c> encoded</c><00:22:25.799><c> stuff</c><00:22:26.220><c> of</c><00:22:26.460><c> the</c><00:22:26.580><c> pool</c>

00:22:26.950 --> 00:22:26.960 align:start position:0%
Proto buff encoded stuff of the pool
 

00:22:26.960 --> 00:22:29.930 align:start position:0%
Proto buff encoded stuff of the pool
with<00:22:27.960><c> the</c><00:22:28.440><c> token</c><00:22:28.799><c> decimals</c><00:22:29.340><c> for</c><00:22:29.460><c> both</c><00:22:29.640><c> right</c>

00:22:29.930 --> 00:22:29.940 align:start position:0%
with the token decimals for both right
 

00:22:29.940 --> 00:22:32.450 align:start position:0%
with the token decimals for both right
did<00:22:30.659><c> I</c><00:22:30.840><c> say</c><00:22:30.960><c> that</c><00:22:31.200><c> to</c><00:22:31.559><c> be</c><00:22:31.740><c> constrained</c><00:22:32.159><c> so</c><00:22:32.280><c> the</c>

00:22:32.450 --> 00:22:32.460 align:start position:0%
did I say that to be constrained so the
 

00:22:32.460 --> 00:22:35.510 align:start position:0%
did I say that to be constrained so the
store<00:22:32.640><c> here</c><00:22:32.880><c> is</c><00:22:33.059><c> constrained</c><00:22:33.659><c> in</c><00:22:34.500><c> two</c><00:22:34.679><c> ways</c><00:22:35.100><c> in</c>

00:22:35.510 --> 00:22:35.520 align:start position:0%
store here is constrained in two ways in
 

00:22:35.520 --> 00:22:37.970 align:start position:0%
store here is constrained in two ways in
order<00:22:35.640><c> to</c><00:22:35.940><c> preserve</c><00:22:36.620><c> parallelized</c><00:22:37.620><c> ability</c>

00:22:37.970 --> 00:22:37.980 align:start position:0%
order to preserve parallelized ability
 

00:22:37.980 --> 00:22:41.149 align:start position:0%
order to preserve parallelized ability
the<00:22:38.880><c> stores</c><00:22:39.179><c> are</c><00:22:39.539><c> right</c><00:22:40.020><c> only</c><00:22:40.320><c> you</c><00:22:40.860><c> cannot</c>

00:22:41.149 --> 00:22:41.159 align:start position:0%
the stores are right only you cannot
 

00:22:41.159 --> 00:22:42.649 align:start position:0%
the stores are right only you cannot
read<00:22:41.400><c> your</c><00:22:41.640><c> rights</c><00:22:42.000><c> otherwise</c><00:22:42.360><c> that</c><00:22:42.480><c> would</c>

00:22:42.649 --> 00:22:42.659 align:start position:0%
read your rights otherwise that would
 

00:22:42.659 --> 00:22:44.930 align:start position:0%
read your rights otherwise that would
make<00:22:42.840><c> some</c><00:22:43.020><c> potentially</c><00:22:43.440><c> cyclic</c><00:22:43.860><c> and</c><00:22:44.700><c> they</c>

00:22:44.930 --> 00:22:44.940 align:start position:0%
make some potentially cyclic and they
 

00:22:44.940 --> 00:22:47.330 align:start position:0%
make some potentially cyclic and they
expose<00:22:45.240><c> only</c><00:22:45.419><c> the</c><00:22:45.659><c> function</c><00:22:46.020><c> defined</c><00:22:46.919><c> by</c><00:22:47.159><c> the</c>

00:22:47.330 --> 00:22:47.340 align:start position:0%
expose only the function defined by the
 

00:22:47.340 --> 00:22:49.909 align:start position:0%
expose only the function defined by the
update<00:22:47.640><c> policy</c><00:22:48.059><c> in</c><00:22:48.179><c> this</c><00:22:48.299><c> case</c><00:22:48.419><c> it's</c><00:22:48.659><c> set</c><00:22:49.380><c> so</c>

00:22:49.909 --> 00:22:49.919 align:start position:0%
update policy in this case it's set so
 

00:22:49.919 --> 00:22:51.230 align:start position:0%
update policy in this case it's set so
let's<00:22:50.159><c> see</c><00:22:50.340><c> what</c><00:22:50.460><c> happens</c>

00:22:51.230 --> 00:22:51.240 align:start position:0%
let's see what happens
 

00:22:51.240 --> 00:22:53.810 align:start position:0%
let's see what happens
if<00:22:51.720><c> we</c><00:22:51.840><c> run</c><00:22:52.020><c> things</c><00:22:52.380><c> in</c><00:22:52.799><c> parallel</c>

00:22:53.810 --> 00:22:53.820 align:start position:0%
if we run things in parallel
 

00:22:53.820 --> 00:22:56.090 align:start position:0%
if we run things in parallel
so<00:22:54.179><c> here</c><00:22:54.360><c> we</c><00:22:54.480><c> have</c><00:22:54.600><c> two</c><00:22:54.840><c> jobs</c><00:22:55.020><c> covering</c><00:22:55.620><c> two</c>

00:22:56.090 --> 00:22:56.100 align:start position:0%
so here we have two jobs covering two
 

00:22:56.100 --> 00:22:57.409 align:start position:0%
so here we have two jobs covering two
segments<00:22:56.580><c> of</c><00:22:56.700><c> the</c><00:22:56.820><c> chain</c><00:22:56.940><c> you</c><00:22:57.120><c> know</c><00:22:57.179><c> one</c>

00:22:57.409 --> 00:22:57.419 align:start position:0%
segments of the chain you know one
 

00:22:57.419 --> 00:23:00.350 align:start position:0%
segments of the chain you know one
million<00:22:57.780><c> block</c><00:22:57.960><c> each</c><00:22:58.320><c> and</c><00:22:59.220><c> to</c><00:22:59.580><c> see</c><00:22:59.820><c> those</c><00:23:00.240><c> ugly</c>

00:23:00.350 --> 00:23:00.360 align:start position:0%
million block each and to see those ugly
 

00:23:00.360 --> 00:23:02.029 align:start position:0%
million block each and to see those ugly
arrows<00:23:00.720><c> there</c><00:23:00.900><c> they</c><00:23:01.260><c> correspond</c><00:23:01.559><c> to</c><00:23:01.679><c> a</c><00:23:01.919><c> pool</c>

00:23:02.029 --> 00:23:02.039 align:start position:0%
arrows there they correspond to a pool
 

00:23:02.039 --> 00:23:03.470 align:start position:0%
arrows there they correspond to a pool
created<00:23:02.520><c> event</c>

00:23:03.470 --> 00:23:03.480 align:start position:0%
created event
 

00:23:03.480 --> 00:23:05.029 align:start position:0%
created event
and<00:23:03.840><c> so</c><00:23:03.900><c> in</c><00:23:04.080><c> our</c><00:23:04.200><c> code</c><00:23:04.380><c> you've</c><00:23:04.559><c> seen</c><00:23:04.740><c> we</c><00:23:04.919><c> would</c>

00:23:05.029 --> 00:23:05.039 align:start position:0%
and so in our code you've seen we would
 

00:23:05.039 --> 00:23:08.450 align:start position:0%
and so in our code you've seen we would
write<00:23:05.340><c> a</c><00:23:05.640><c> key</c><00:23:05.820><c> for</c><00:23:06.299><c> each</c><00:23:06.539><c> of</c><00:23:06.720><c> them</c><00:23:06.960><c> and</c><00:23:07.860><c> uh</c><00:23:08.100><c> so</c>

00:23:08.450 --> 00:23:08.460 align:start position:0%
write a key for each of them and uh so
 

00:23:08.460 --> 00:23:10.549 align:start position:0%
write a key for each of them and uh so
in<00:23:08.700><c> the</c><00:23:08.940><c> first</c><00:23:09.120><c> partial</c><00:23:09.780><c> run</c><00:23:09.960><c> we'd</c><00:23:10.260><c> have</c><00:23:10.440><c> a</c>

00:23:10.549 --> 00:23:10.559 align:start position:0%
in the first partial run we'd have a
 

00:23:10.559 --> 00:23:12.350 align:start position:0%
in the first partial run we'd have a
what<00:23:10.679><c> we</c><00:23:10.799><c> call</c><00:23:10.919><c> a</c><00:23:11.100><c> partial</c><00:23:11.400><c> store</c><00:23:11.700><c> with</c><00:23:12.179><c> four</c>

00:23:12.350 --> 00:23:12.360 align:start position:0%
what we call a partial store with four
 

00:23:12.360 --> 00:23:14.510 align:start position:0%
what we call a partial store with four
keys<00:23:12.720><c> and</c><00:23:12.840><c> the</c><00:23:12.960><c> next</c><00:23:13.020><c> one</c><00:23:13.140><c> we</c><00:23:13.320><c> have</c><00:23:13.500><c> two</c><00:23:13.679><c> keys</c>

00:23:14.510 --> 00:23:14.520 align:start position:0%
keys and the next one we have two keys
 

00:23:14.520 --> 00:23:17.350 align:start position:0%
keys and the next one we have two keys
and<00:23:15.480><c> so</c><00:23:15.780><c> when</c><00:23:15.900><c> we</c><00:23:16.080><c> run</c><00:23:16.260><c> the</c><00:23:16.500><c> merge</c><00:23:16.860><c> operation</c>

00:23:17.350 --> 00:23:17.360 align:start position:0%
and so when we run the merge operation
 

00:23:17.360 --> 00:23:20.510 align:start position:0%
and so when we run the merge operation
we<00:23:18.360><c> would</c><00:23:18.480><c> apply</c><00:23:18.960><c> the</c><00:23:19.260><c> set</c><00:23:19.740><c> merge</c><00:23:20.159><c> policy</c>

00:23:20.510 --> 00:23:20.520 align:start position:0%
we would apply the set merge policy
 

00:23:20.520 --> 00:23:21.950 align:start position:0%
we would apply the set merge policy
which<00:23:20.820><c> says</c><00:23:21.179><c> basically</c><00:23:21.480><c> if</c><00:23:21.539><c> you</c><00:23:21.659><c> take</c><00:23:21.780><c> one</c>

00:23:21.950 --> 00:23:21.960 align:start position:0%
which says basically if you take one
 

00:23:21.960 --> 00:23:24.350 align:start position:0%
which says basically if you take one
store<00:23:22.140><c> take</c><00:23:22.440><c> the</c><00:23:22.559><c> other</c><00:23:22.679><c> store</c><00:23:23.120><c> cycle</c><00:23:24.120><c> through</c>

00:23:24.350 --> 00:23:24.360 align:start position:0%
store take the other store cycle through
 

00:23:24.360 --> 00:23:26.570 align:start position:0%
store take the other store cycle through
keys<00:23:24.720><c> and</c><00:23:24.840><c> the</c><00:23:25.020><c> last</c><00:23:25.080><c> key</c><00:23:25.260><c> wins</c><00:23:25.740><c> if</c><00:23:26.340><c> you</c><00:23:26.400><c> do</c>

00:23:26.570 --> 00:23:26.580 align:start position:0%
keys and the last key wins if you do
 

00:23:26.580 --> 00:23:29.029 align:start position:0%
keys and the last key wins if you do
that<00:23:26.700><c> you</c><00:23:26.940><c> can</c><00:23:27.059><c> paralyze</c><00:23:27.659><c> endlessly</c><00:23:28.559><c> so</c><00:23:28.799><c> we'd</c>

00:23:29.029 --> 00:23:29.039 align:start position:0%
that you can paralyze endlessly so we'd
 

00:23:29.039 --> 00:23:31.549 align:start position:0%
that you can paralyze endlessly so we'd
have<00:23:29.280><c> here</c><00:23:29.700><c> a</c><00:23:30.299><c> complete</c><00:23:30.600><c> store</c><00:23:30.780><c> with</c><00:23:31.020><c> six</c><00:23:31.200><c> keys</c>

00:23:31.549 --> 00:23:31.559 align:start position:0%
have here a complete store with six keys
 

00:23:31.559 --> 00:23:33.770 align:start position:0%
have here a complete store with six keys
and<00:23:32.039><c> now</c><00:23:32.220><c> at</c><00:23:32.460><c> that</c><00:23:32.640><c> place</c><00:23:32.760><c> we</c><00:23:33.059><c> have</c><00:23:33.179><c> a</c><00:23:33.360><c> snapshot</c>

00:23:33.770 --> 00:23:33.780 align:start position:0%
and now at that place we have a snapshot
 

00:23:33.780 --> 00:23:36.350 align:start position:0%
and now at that place we have a snapshot
we<00:23:34.380><c> can</c><00:23:34.500><c> have</c><00:23:34.620><c> periodic</c><00:23:35.220><c> snapshots</c><00:23:35.760><c> and</c><00:23:36.059><c> so</c><00:23:36.179><c> if</c>

00:23:36.350 --> 00:23:36.360 align:start position:0%
we can have periodic snapshots and so if
 

00:23:36.360 --> 00:23:38.210 align:start position:0%
we can have periodic snapshots and so if
you<00:23:36.480><c> want</c><00:23:36.600><c> to</c><00:23:36.720><c> go</c><00:23:36.900><c> and</c><00:23:37.020><c> explore</c><00:23:37.500><c> the</c><00:23:37.740><c> chain</c><00:23:37.919><c> at</c>

00:23:38.210 --> 00:23:38.220 align:start position:0%
you want to go and explore the chain at
 

00:23:38.220 --> 00:23:39.950 align:start position:0%
you want to go and explore the chain at
any<00:23:38.340><c> point</c><00:23:38.520><c> in</c><00:23:38.700><c> time</c><00:23:38.880><c> you</c><00:23:39.360><c> have</c><00:23:39.539><c> a</c><00:23:39.659><c> snapshot</c>

00:23:39.950 --> 00:23:39.960 align:start position:0%
any point in time you have a snapshot
 

00:23:39.960 --> 00:23:42.350 align:start position:0%
any point in time you have a snapshot
plus<00:23:40.260><c> a</c><00:23:40.440><c> little</c><00:23:40.559><c> partial</c><00:23:40.980><c> you</c><00:23:41.760><c> can</c><00:23:41.880><c> have</c><00:23:42.120><c> the</c>

00:23:42.350 --> 00:23:42.360 align:start position:0%
plus a little partial you can have the
 

00:23:42.360 --> 00:23:44.930 align:start position:0%
plus a little partial you can have the
state<00:23:42.600><c> synced</c><00:23:43.200><c> at</c><00:23:43.620><c> any</c><00:23:43.740><c> block</c><00:23:43.980><c> height</c>

00:23:44.930 --> 00:23:44.940 align:start position:0%
state synced at any block height
 

00:23:44.940 --> 00:23:48.890 align:start position:0%
state synced at any block height
so<00:23:45.960><c> so</c><00:23:46.020><c> this</c><00:23:46.679><c> one</c><00:23:46.860><c> you</c><00:23:47.520><c> know</c><00:23:47.640><c> has</c><00:23:48.179><c> the</c><00:23:48.480><c> last</c><00:23:48.659><c> key</c>

00:23:48.890 --> 00:23:48.900 align:start position:0%
so so this one you know has the last key
 

00:23:48.900 --> 00:23:50.270 align:start position:0%
so so this one you know has the last key
win<00:23:49.140><c> policy</c><00:23:49.500><c> but</c><00:23:49.620><c> you</c><00:23:49.740><c> have</c><00:23:49.860><c> a</c><00:23:49.919><c> few</c><00:23:50.039><c> others</c>

00:23:50.270 --> 00:23:50.280 align:start position:0%
win policy but you have a few others
 

00:23:50.280 --> 00:23:53.090 align:start position:0%
win policy but you have a few others
like<00:23:50.400><c> min</c><00:23:50.760><c> max</c><00:23:51.120><c> ad</c><00:23:51.960><c> and</c><00:23:52.500><c> another</c><00:23:52.679><c> one</c><00:23:52.919><c> like</c>

00:23:53.090 --> 00:23:53.100 align:start position:0%
like min max ad and another one like
 

00:23:53.100 --> 00:23:55.190 align:start position:0%
like min max ad and another one like
first<00:23:53.340><c> key</c><00:23:53.580><c> wins</c><00:23:53.940><c> so</c><00:23:54.059><c> if</c><00:23:54.120><c> you</c><00:23:54.240><c> merge</c><00:23:54.480><c> them</c><00:23:54.659><c> you</c>

00:23:55.190 --> 00:23:55.200 align:start position:0%
first key wins so if you merge them you
 

00:23:55.200 --> 00:23:57.649 align:start position:0%
first key wins so if you merge them you
have<00:23:55.440><c> set</c><00:23:55.679><c> if</c><00:23:55.919><c> not</c><00:23:56.159><c> exist</c><00:23:56.580><c> and</c><00:23:56.820><c> then</c><00:23:57.000><c> that</c><00:23:57.299><c> that</c>

00:23:57.649 --> 00:23:57.659 align:start position:0%
have set if not exist and then that that
 

00:23:57.659 --> 00:23:59.149 align:start position:0%
have set if not exist and then that that
allows<00:23:58.380><c> us</c><00:23:58.500><c> to</c><00:23:58.679><c> build</c><00:23:58.860><c> different</c>

00:23:59.149 --> 00:23:59.159 align:start position:0%
allows us to build different
 

00:23:59.159 --> 00:24:01.310 align:start position:0%
allows us to build different
aggregations<00:23:59.820><c> right</c><00:24:00.299><c> you'd</c><00:24:01.020><c> like</c><00:24:01.140><c> to</c><00:24:01.260><c> see</c>

00:24:01.310 --> 00:24:01.320 align:start position:0%
aggregations right you'd like to see
 

00:24:01.320 --> 00:24:02.690 align:start position:0%
aggregations right you'd like to see
that<00:24:01.500><c> running</c><00:24:01.620><c> live</c>

00:24:02.690 --> 00:24:02.700 align:start position:0%
that running live
 

00:24:02.700 --> 00:24:04.130 align:start position:0%
that running live
every<00:24:03.000><c> few</c><00:24:03.240><c> minutes</c><00:24:03.360><c> now</c><00:24:03.600><c> I</c><00:24:03.780><c> need</c><00:24:03.900><c> to</c><00:24:04.020><c> bring</c>

00:24:04.130 --> 00:24:04.140 align:start position:0%
every few minutes now I need to bring
 

00:24:04.140 --> 00:24:07.130 align:start position:0%
every few minutes now I need to bring
that<00:24:04.380><c> other</c><00:24:04.559><c> window</c><00:24:04.799><c> up</c><00:24:05.220><c> so</c><00:24:06.120><c> you</c><00:24:06.659><c> see</c><00:24:06.900><c> that</c>

00:24:07.130 --> 00:24:07.140 align:start position:0%
that other window up so you see that
 

00:24:07.140 --> 00:24:10.070 align:start position:0%
that other window up so you see that
okay<00:24:07.860><c> that's</c><00:24:08.100><c> good</c><00:24:08.280><c> enough</c><00:24:08.460><c> huh</c><00:24:08.940><c> okay</c><00:24:09.299><c> so</c>

00:24:10.070 --> 00:24:10.080 align:start position:0%
okay that's good enough huh okay so
 

00:24:10.080 --> 00:24:12.890 align:start position:0%
okay that's good enough huh okay so
let's<00:24:10.679><c> imagine</c><00:24:11.039><c> we</c><00:24:11.520><c> want</c><00:24:11.700><c> to</c>

00:24:12.890 --> 00:24:12.900 align:start position:0%
let's imagine we want to
 

00:24:12.900 --> 00:24:15.830 align:start position:0%
let's imagine we want to
see<00:24:13.440><c> that</c><00:24:13.679><c> pool</c><00:24:14.159><c> pools</c><00:24:14.820><c> created</c><00:24:15.120><c> thing</c><00:24:15.480><c> okay</c>

00:24:15.830 --> 00:24:15.840 align:start position:0%
see that pool pools created thing okay
 

00:24:15.840 --> 00:24:19.250 align:start position:0%
see that pool pools created thing okay
do<00:24:16.080><c> you</c><00:24:16.200><c> see</c><00:24:16.320><c> that</c><00:24:16.440><c> I</c><00:24:17.039><c> want</c><00:24:17.220><c> to</c><00:24:17.340><c> see</c><00:24:17.580><c> the</c><00:24:18.240><c> output</c>

00:24:19.250 --> 00:24:19.260 align:start position:0%
do you see that I want to see the output
 

00:24:19.260 --> 00:24:20.990 align:start position:0%
do you see that I want to see the output
I'm<00:24:19.679><c> going</c><00:24:19.860><c> to</c><00:24:19.919><c> run</c><00:24:20.039><c> that</c><00:24:20.280><c> I</c><00:24:20.580><c> hope</c><00:24:20.760><c> everything</c>

00:24:20.990 --> 00:24:21.000 align:start position:0%
I'm going to run that I hope everything
 

00:24:21.000 --> 00:24:23.149 align:start position:0%
I'm going to run that I hope everything
is<00:24:21.240><c> good</c><00:24:21.900><c> you</c><00:24:22.320><c> know</c><00:24:22.380><c> the</c><00:24:22.500><c> demo</c><00:24:22.740><c> of</c><00:24:22.799><c> gods</c><00:24:23.100><c> are</c>

00:24:23.149 --> 00:24:23.159 align:start position:0%
is good you know the demo of gods are
 

00:24:23.159 --> 00:24:24.409 align:start position:0%
is good you know the demo of gods are
connecting

00:24:24.409 --> 00:24:24.419 align:start position:0%
connecting
 

00:24:24.419 --> 00:24:26.690 align:start position:0%
connecting
okay<00:24:24.960><c> okay</c><00:24:25.200><c> whoa</c><00:24:25.620><c> not</c><00:24:25.799><c> too</c><00:24:25.980><c> fast</c>

00:24:26.690 --> 00:24:26.700 align:start position:0%
okay okay whoa not too fast
 

00:24:26.700 --> 00:24:29.450 align:start position:0%
okay okay whoa not too fast
so<00:24:27.240><c> this</c><00:24:27.419><c> is</c><00:24:27.659><c> going</c><00:24:28.080><c> through</c><00:24:28.380><c> uh</c><00:24:29.039><c> starting</c><00:24:29.220><c> at</c>

00:24:29.450 --> 00:24:29.460 align:start position:0%
so this is going through uh starting at
 

00:24:29.460 --> 00:24:32.029 align:start position:0%
so this is going through uh starting at
the<00:24:29.580><c> beginning</c><00:24:29.700><c> and</c><00:24:30.419><c> we</c><00:24:30.659><c> have</c><00:24:30.900><c> there</c><00:24:31.260><c> a</c><00:24:31.860><c> pool</c>

00:24:32.029 --> 00:24:32.039 align:start position:0%
the beginning and we have there a pool
 

00:24:32.039 --> 00:24:33.950 align:start position:0%
the beginning and we have there a pool
credit<00:24:32.280><c> event</c><00:24:32.580><c> and</c><00:24:33.000><c> see</c><00:24:33.179><c> that</c><00:24:33.360><c> we</c><00:24:33.840><c> have</c>

00:24:33.950 --> 00:24:33.960 align:start position:0%
credit event and see that we have
 

00:24:33.960 --> 00:24:35.270 align:start position:0%
credit event and see that we have
everything<00:24:34.140><c> decoded</c><00:24:34.740><c> because</c><00:24:34.860><c> it's</c><00:24:35.100><c> the</c>

00:24:35.270 --> 00:24:35.280 align:start position:0%
everything decoded because it's the
 

00:24:35.280 --> 00:24:36.590 align:start position:0%
everything decoded because it's the
protobuf<00:24:35.880><c> thing</c><00:24:35.940><c> we</c><00:24:36.120><c> have</c><00:24:36.179><c> the</c><00:24:36.360><c> thing</c><00:24:36.480><c> to</c>

00:24:36.590 --> 00:24:36.600 align:start position:0%
protobuf thing we have the thing to
 

00:24:36.600 --> 00:24:38.450 align:start position:0%
protobuf thing we have the thing to
decode<00:24:36.900><c> it</c><00:24:37.080><c> we</c><00:24:37.200><c> could</c><00:24:37.320><c> feed</c><00:24:37.500><c> that</c><00:24:37.679><c> it</c><00:24:38.039><c> arrives</c>

00:24:38.450 --> 00:24:38.460 align:start position:0%
decode it we could feed that it arrives
 

00:24:38.460 --> 00:24:39.890 align:start position:0%
decode it we could feed that it arrives
on<00:24:38.580><c> the</c><00:24:38.700><c> wire</c><00:24:38.820><c> as</c><00:24:39.000><c> bytes</c><00:24:39.419><c> and</c><00:24:39.539><c> it</c><00:24:39.659><c> properly</c>

00:24:39.890 --> 00:24:39.900 align:start position:0%
on the wire as bytes and it properly
 

00:24:39.900 --> 00:24:41.630 align:start position:0%
on the wire as bytes and it properly
serialized<00:24:40.320><c> bytes</c><00:24:40.620><c> and</c><00:24:41.039><c> then</c><00:24:41.100><c> we</c><00:24:41.280><c> see</c><00:24:41.460><c> that</c>

00:24:41.630 --> 00:24:41.640 align:start position:0%
serialized bytes and then we see that
 

00:24:41.640 --> 00:24:43.430 align:start position:0%
serialized bytes and then we see that
the<00:24:41.820><c> token</c><00:24:42.120><c> address</c><00:24:42.240><c> is</c><00:24:42.600><c> there</c><00:24:42.960><c> we</c><00:24:43.140><c> have</c><00:24:43.260><c> a</c>

00:24:43.430 --> 00:24:43.440 align:start position:0%
the token address is there we have a
 

00:24:43.440 --> 00:24:45.409 align:start position:0%
the token address is there we have a
decimal<00:24:43.799><c> we</c><00:24:44.039><c> have</c><00:24:44.159><c> the</c><00:24:44.400><c> address</c>

00:24:45.409 --> 00:24:45.419 align:start position:0%
decimal we have the address
 

00:24:45.419 --> 00:24:47.630 align:start position:0%
decimal we have the address
and<00:24:46.080><c> so</c><00:24:46.380><c> what</c><00:24:46.679><c> that</c><00:24:46.860><c> means</c><00:24:47.100><c> is</c><00:24:47.220><c> pretty</c><00:24:47.460><c> crazy</c>

00:24:47.630 --> 00:24:47.640 align:start position:0%
and so what that means is pretty crazy
 

00:24:47.640 --> 00:24:50.270 align:start position:0%
and so what that means is pretty crazy
already<00:24:48.000><c> oh</c><00:24:48.419><c> do</c><00:24:48.720><c> I</c><00:24:48.840><c> see</c><00:24:49.020><c> that</c><00:24:49.200><c> okay</c><00:24:49.919><c> what</c><00:24:50.100><c> that</c>

00:24:50.270 --> 00:24:50.280 align:start position:0%
already oh do I see that okay what that
 

00:24:50.280 --> 00:24:52.789 align:start position:0%
already oh do I see that okay what that
means<00:24:50.520><c> is</c><00:24:50.580><c> that</c><00:24:50.820><c> you</c><00:24:51.659><c> can</c><00:24:51.780><c> inspect</c><00:24:52.260><c> the</c><00:24:52.620><c> chain</c>

00:24:52.789 --> 00:24:52.799 align:start position:0%
means is that you can inspect the chain
 

00:24:52.799 --> 00:24:54.890 align:start position:0%
means is that you can inspect the chain
with<00:24:53.100><c> your</c><00:24:53.280><c> code</c><00:24:53.520><c> at</c><00:24:54.059><c> any</c><00:24:54.179><c> place</c><00:24:54.360><c> in</c><00:24:54.600><c> time</c><00:24:54.720><c> for</c>

00:24:54.890 --> 00:24:54.900 align:start position:0%
with your code at any place in time for
 

00:24:54.900 --> 00:24:56.810 align:start position:0%
with your code at any place in time for
a<00:24:55.080><c> mapper</c><00:24:55.320><c> especially</c><00:24:55.740><c> you</c><00:24:56.100><c> can</c><00:24:56.280><c> go</c><00:24:56.460><c> there</c><00:24:56.640><c> and</c>

00:24:56.810 --> 00:24:56.820 align:start position:0%
a mapper especially you can go there and
 

00:24:56.820 --> 00:24:59.930 align:start position:0%
a mapper especially you can go there and
I<00:24:56.940><c> could</c><00:24:57.000><c> run</c><00:24:57.179><c> it</c><00:24:57.299><c> again</c><00:24:57.480><c> here</c><00:24:57.840><c> and</c><00:24:58.380><c> say</c><00:24:58.940><c> and</c>

00:24:59.930 --> 00:24:59.940 align:start position:0%
I could run it again here and say and
 

00:24:59.940 --> 00:25:01.669 align:start position:0%
I could run it again here and say and
say<00:25:00.120><c> I</c><00:25:00.299><c> want</c><00:25:00.419><c> to</c><00:25:00.539><c> run</c><00:25:00.659><c> the</c><00:25:00.840><c> mapper</c><00:25:01.200><c> let's</c><00:25:01.380><c> say</c><00:25:01.500><c> a</c>

00:25:01.669 --> 00:25:01.679 align:start position:0%
say I want to run the mapper let's say a
 

00:25:01.679 --> 00:25:03.770 align:start position:0%
say I want to run the mapper let's say a
block<00:25:01.860><c> I</c><00:25:02.220><c> don't</c><00:25:02.280><c> know</c><00:25:02.400><c> uh</c>

00:25:03.770 --> 00:25:03.780 align:start position:0%
block I don't know uh
 

00:25:03.780 --> 00:25:05.450 align:start position:0%
block I don't know uh
something<00:25:04.320><c> more</c><00:25:04.559><c> recent</c><00:25:04.799><c> give</c><00:25:04.980><c> me</c><00:25:05.100><c> a</c><00:25:05.220><c> recent</c>

00:25:05.450 --> 00:25:05.460 align:start position:0%
something more recent give me a recent
 

00:25:05.460 --> 00:25:08.750 align:start position:0%
something more recent give me a recent
block<00:25:05.700><c> what's</c><00:25:06.299><c> the</c><00:25:06.539><c> block</c><00:25:06.659><c> yesterday</c>

00:25:08.750 --> 00:25:08.760 align:start position:0%
block what's the block yesterday
 

00:25:08.760 --> 00:25:10.310 align:start position:0%
block what's the block yesterday
fifteen<00:25:09.480><c> seven</c><00:25:09.600><c> million</c><00:25:09.960><c> I</c><00:25:10.080><c> know</c><00:25:10.200><c> something</c>

00:25:10.310 --> 00:25:10.320 align:start position:0%
fifteen seven million I know something
 

00:25:10.320 --> 00:25:12.830 align:start position:0%
fifteen seven million I know something
like<00:25:10.500><c> that</c><00:25:10.620><c> okay</c><00:25:10.799><c> and</c><00:25:11.580><c> see</c><00:25:11.880><c> is</c><00:25:12.659><c> there</c><00:25:12.720><c> anything</c>

00:25:12.830 --> 00:25:12.840 align:start position:0%
like that okay and see is there anything
 

00:25:12.840 --> 00:25:15.529 align:start position:0%
like that okay and see is there anything
recent<00:25:13.320><c> so</c><00:25:13.559><c> there's</c><00:25:13.799><c> some</c><00:25:13.980><c> stuff</c><00:25:14.280><c> right</c><00:25:14.640><c> some</c>

00:25:15.529 --> 00:25:15.539 align:start position:0%
recent so there's some stuff right some
 

00:25:15.539 --> 00:25:18.169 align:start position:0%
recent so there's some stuff right some
things<00:25:15.780><c> are</c><00:25:16.020><c> recent</c><00:25:16.440><c> can</c><00:25:16.980><c> I</c><00:25:17.159><c> see</c><00:25:17.280><c> that</c><00:25:17.460><c> someone</c>

00:25:18.169 --> 00:25:18.179 align:start position:0%
things are recent can I see that someone
 

00:25:18.179 --> 00:25:20.450 align:start position:0%
things are recent can I see that someone
still<00:25:18.600><c> created</c><00:25:18.900><c> a</c><00:25:19.140><c> new</c><00:25:19.260><c> pool</c>

00:25:20.450 --> 00:25:20.460 align:start position:0%
still created a new pool
 

00:25:20.460 --> 00:25:22.310 align:start position:0%
still created a new pool
and<00:25:20.880><c> I</c><00:25:21.120><c> can</c><00:25:21.179><c> inspect</c><00:25:21.539><c> my</c><00:25:21.720><c> code</c><00:25:21.900><c> to</c><00:25:22.080><c> make</c><00:25:22.200><c> sure</c>

00:25:22.310 --> 00:25:22.320 align:start position:0%
and I can inspect my code to make sure
 

00:25:22.320 --> 00:25:24.049 align:start position:0%
and I can inspect my code to make sure
it<00:25:22.440><c> works</c><00:25:22.679><c> where</c><00:25:22.860><c> is</c><00:25:23.039><c> that</c>

00:25:24.049 --> 00:25:24.059 align:start position:0%
it works where is that
 

00:25:24.059 --> 00:25:26.630 align:start position:0%
it works where is that
come<00:25:24.539><c> on</c><00:25:24.720><c> right</c><00:25:25.080><c> this</c><00:25:25.380><c> one</c><00:25:25.559><c> was</c><00:25:25.679><c> rap</c><00:25:25.980><c> ether</c><00:25:26.400><c> and</c>

00:25:26.630 --> 00:25:26.640 align:start position:0%
come on right this one was rap ether and
 

00:25:26.640 --> 00:25:28.070 align:start position:0%
come on right this one was rap ether and
infinity<00:25:26.760><c> they</c><00:25:27.179><c> were</c><00:25:27.419><c> just</c><00:25:27.539><c> created</c><00:25:27.840><c> that</c>

00:25:28.070 --> 00:25:28.080 align:start position:0%
infinity they were just created that
 

00:25:28.080 --> 00:25:30.049 align:start position:0%
infinity they were just created that
address<00:25:28.260><c> as</c><00:25:28.559><c> a</c><00:25:28.740><c> new</c><00:25:28.799><c> pool</c><00:25:28.980><c> so</c><00:25:29.520><c> you</c><00:25:29.760><c> can</c><00:25:29.820><c> go</c><00:25:29.940><c> and</c>

00:25:30.049 --> 00:25:30.059 align:start position:0%
address as a new pool so you can go and
 

00:25:30.059 --> 00:25:31.789 align:start position:0%
address as a new pool so you can go and
test<00:25:30.240><c> your</c><00:25:30.419><c> code</c><00:25:30.539><c> everywhere</c><00:25:30.900><c> what's</c><00:25:31.320><c> that's</c>

00:25:31.789 --> 00:25:31.799 align:start position:0%
test your code everywhere what's that's
 

00:25:31.799 --> 00:25:33.529 align:start position:0%
test your code everywhere what's that's
done<00:25:32.100><c> well</c><00:25:32.400><c> you're</c><00:25:32.580><c> set</c><00:25:32.820><c> right</c><00:25:33.059><c> you</c><00:25:33.240><c> can</c><00:25:33.360><c> go</c>

00:25:33.529 --> 00:25:33.539 align:start position:0%
done well you're set right you can go
 

00:25:33.539 --> 00:25:36.590 align:start position:0%
done well you're set right you can go
then<00:25:33.720><c> to</c><00:25:34.200><c> the</c><00:25:34.380><c> next</c><00:25:34.559><c> data</c><00:25:35.159><c> dependency</c><00:25:35.640><c> so</c><00:25:36.419><c> this</c>

00:25:36.590 --> 00:25:36.600 align:start position:0%
then to the next data dependency so this
 

00:25:36.600 --> 00:25:38.090 align:start position:0%
then to the next data dependency so this
really<00:25:36.840><c> changes</c><00:25:37.140><c> Dynamics</c><00:25:37.620><c> for</c><00:25:37.740><c> debugging</c>

00:25:38.090 --> 00:25:38.100 align:start position:0%
really changes Dynamics for debugging
 

00:25:38.100 --> 00:25:40.310 align:start position:0%
really changes Dynamics for debugging
and<00:25:38.220><c> this</c><00:25:38.460><c> can</c><00:25:38.580><c> also</c><00:25:38.880><c> work</c><00:25:39.059><c> for</c><00:25:39.720><c> stores</c><00:25:40.020><c> they</c>

00:25:40.310 --> 00:25:40.320 align:start position:0%
and this can also work for stores they
 

00:25:40.320 --> 00:25:42.110 align:start position:0%
and this can also work for stores they
can<00:25:40.440><c> you</c><00:25:40.620><c> can</c><00:25:40.740><c> ask</c><00:25:40.860><c> for</c><00:25:41.100><c> a</c><00:25:41.279><c> store</c><00:25:41.460><c> and</c><00:25:41.940><c> it's</c>

00:25:42.110 --> 00:25:42.120 align:start position:0%
can you can ask for a store and it's
 

00:25:42.120 --> 00:25:43.549 align:start position:0%
can you can ask for a store and it's
going<00:25:42.179><c> to</c><00:25:42.240><c> process</c><00:25:42.600><c> it</c><00:25:42.840><c> in</c><00:25:42.960><c> parallel</c><00:25:43.320><c> and</c><00:25:43.440><c> then</c>

00:25:43.549 --> 00:25:43.559 align:start position:0%
going to process it in parallel and then
 

00:25:43.559 --> 00:25:45.110 align:start position:0%
going to process it in parallel and then
you<00:25:43.679><c> can</c><00:25:43.799><c> inspect</c><00:25:44.100><c> all</c><00:25:44.340><c> the</c><00:25:44.460><c> keys</c><00:25:44.760><c> that</c><00:25:44.880><c> exist</c>

00:25:45.110 --> 00:25:45.120 align:start position:0%
you can inspect all the keys that exist
 

00:25:45.120 --> 00:25:47.149 align:start position:0%
you can inspect all the keys that exist
there<00:25:45.299><c> or</c><00:25:45.720><c> see</c><00:25:45.960><c> the</c><00:25:46.200><c> Deltas</c><00:25:46.559><c> coming</c><00:25:46.919><c> through</c>

00:25:47.149 --> 00:25:47.159 align:start position:0%
there or see the Deltas coming through
 

00:25:47.159 --> 00:25:49.370 align:start position:0%
there or see the Deltas coming through
okay<00:25:47.880><c> and</c><00:25:48.539><c> let</c><00:25:48.900><c> me</c><00:25:48.960><c> show</c><00:25:49.080><c> you</c><00:25:49.200><c> something</c>

00:25:49.370 --> 00:25:49.380 align:start position:0%
okay and let me show you something
 

00:25:49.380 --> 00:25:51.110 align:start position:0%
okay and let me show you something
running<00:25:49.620><c> in</c><00:25:49.919><c> parallel</c>

00:25:51.110 --> 00:25:51.120 align:start position:0%
running in parallel
 

00:25:51.120 --> 00:25:54.409 align:start position:0%
running in parallel
uh-huh<00:25:52.020><c> graph</c><00:25:52.440><c> out</c><00:25:52.620><c> now</c><00:25:53.159><c> this</c><00:25:53.460><c> is</c><00:25:53.700><c> very</c>

00:25:54.409 --> 00:25:54.419 align:start position:0%
uh-huh graph out now this is very
 

00:25:54.419 --> 00:25:56.690 align:start position:0%
uh-huh graph out now this is very
interesting<00:25:54.779><c> because</c><00:25:55.080><c> oh</c><00:25:56.039><c> no</c><00:25:56.220><c> let's</c><00:25:56.400><c> start</c><00:25:56.580><c> it</c>

00:25:56.690 --> 00:25:56.700 align:start position:0%
interesting because oh no let's start it
 

00:25:56.700 --> 00:25:58.610 align:start position:0%
interesting because oh no let's start it
at<00:25:56.820><c> 15</c><00:25:57.059><c> million</c><00:25:57.539><c> let's</c><00:25:57.779><c> say</c><00:25:57.960><c> I</c><00:25:58.080><c> want</c><00:25:58.200><c> graph</c><00:25:58.500><c> out</c>

00:25:58.610 --> 00:25:58.620 align:start position:0%
at 15 million let's say I want graph out
 

00:25:58.620 --> 00:26:01.010 align:start position:0%
at 15 million let's say I want graph out
at<00:25:58.860><c> 15</c><00:25:59.100><c> million</c><00:25:59.640><c> I</c><00:26:00.299><c> didn't</c><00:26:00.419><c> run</c><00:26:00.720><c> it</c><00:26:00.900><c> again</c>

00:26:01.010 --> 00:26:01.020 align:start position:0%
at 15 million I didn't run it again
 

00:26:01.020 --> 00:26:04.669 align:start position:0%
at 15 million I didn't run it again
before<00:26:01.380><c> and</c><00:26:02.220><c> I</c><00:26:02.460><c> want</c><00:26:02.700><c> so</c><00:26:03.419><c> let's</c><00:26:03.720><c> write</c><00:26:03.900><c> it</c>

00:26:04.669 --> 00:26:04.679 align:start position:0%
before and I want so let's write it
 

00:26:04.679 --> 00:26:07.789 align:start position:0%
before and I want so let's write it
so<00:26:05.100><c> this</c><00:26:05.220><c> starts</c><00:26:05.640><c> a</c><00:26:05.880><c> whole</c><00:26:06.120><c> bunch</c><00:26:06.419><c> of</c><00:26:06.960><c> parallel</c>

00:26:07.789 --> 00:26:07.799 align:start position:0%
so this starts a whole bunch of parallel
 

00:26:07.799 --> 00:26:09.890 align:start position:0%
so this starts a whole bunch of parallel
processes<00:26:08.400><c> and</c><00:26:09.000><c> you</c><00:26:09.120><c> see</c><00:26:09.299><c> up</c><00:26:09.480><c> there</c><00:26:09.659><c> the</c>

00:26:09.890 --> 00:26:09.900 align:start position:0%
processes and you see up there the
 

00:26:09.900 --> 00:26:11.810 align:start position:0%
processes and you see up there the
number<00:26:10.020><c> of</c><00:26:10.140><c> blocks</c><00:26:10.500><c> per</c><00:26:10.620><c> second</c><00:26:10.799><c> yesterday</c><00:26:11.520><c> I</c>

00:26:11.810 --> 00:26:11.820 align:start position:0%
number of blocks per second yesterday I
 

00:26:11.820 --> 00:26:14.210 align:start position:0%
number of blocks per second yesterday I
had<00:26:12.000><c> about</c><00:26:12.120><c> 8</c><00:26:12.659><c> 000</c><00:26:12.720><c> on</c><00:26:13.200><c> Solana</c><00:26:13.620><c> blocks</c><00:26:13.919><c> I</c><00:26:14.100><c> had</c>

00:26:14.210 --> 00:26:14.220 align:start position:0%
had about 8 000 on Solana blocks I had
 

00:26:14.220 --> 00:26:15.830 align:start position:0%
had about 8 000 on Solana blocks I had
16<00:26:14.760><c> 000</c><00:26:14.820><c> depends</c><00:26:15.179><c> on</c><00:26:15.240><c> the</c><00:26:15.360><c> power</c><00:26:15.480><c> you</c><00:26:15.720><c> put</c>

00:26:15.830 --> 00:26:15.840 align:start position:0%
16 000 depends on the power you put
 

00:26:15.840 --> 00:26:18.710 align:start position:0%
16 000 depends on the power you put
behind<00:26:16.140><c> there</c><00:26:16.320><c> but</c><00:26:17.159><c> this</c><00:26:17.640><c> all</c><00:26:17.820><c> like</c><00:26:18.299><c> you</c><00:26:18.539><c> said</c>

00:26:18.710 --> 00:26:18.720 align:start position:0%
behind there but this all like you said
 

00:26:18.720 --> 00:26:20.990 align:start position:0%
behind there but this all like you said
the<00:26:18.960><c> pool</c><00:26:19.140><c> counts</c><00:26:19.679><c> as</c><00:26:19.740><c> a</c><00:26:19.919><c> dependency</c><00:26:20.400><c> on</c><00:26:20.820><c> the</c>

00:26:20.990 --> 00:26:21.000 align:start position:0%
the pool counts as a dependency on the
 

00:26:21.000 --> 00:26:22.549 align:start position:0%
the pool counts as a dependency on the
pools<00:26:21.299><c> the</c><00:26:21.480><c> pools</c><00:26:21.720><c> is</c><00:26:21.840><c> further</c><00:26:22.080><c> down</c><00:26:22.200><c> so</c><00:26:22.380><c> we're</c>

00:26:22.549 --> 00:26:22.559 align:start position:0%
pools the pools is further down so we're
 

00:26:22.559 --> 00:26:24.529 align:start position:0%
pools the pools is further down so we're
able<00:26:22.740><c> to</c><00:26:22.799><c> schedule</c><00:26:23.039><c> things</c><00:26:23.400><c> and</c><00:26:24.240><c> all</c><00:26:24.360><c> that</c>

00:26:24.529 --> 00:26:24.539 align:start position:0%
able to schedule things and all that
 

00:26:24.539 --> 00:26:26.450 align:start position:0%
able to schedule things and all that
just<00:26:24.900><c> massively</c><00:26:25.620><c> parallel</c><00:26:25.980><c> and</c><00:26:26.100><c> once</c><00:26:26.340><c> that's</c>

00:26:26.450 --> 00:26:26.460 align:start position:0%
just massively parallel and once that's
 

00:26:26.460 --> 00:26:28.010 align:start position:0%
just massively parallel and once that's
ready<00:26:26.640><c> let's</c><00:26:26.880><c> say</c><00:26:27.059><c> everything</c><00:26:27.299><c> was</c><00:26:27.480><c> done</c><00:26:27.659><c> I</c>

00:26:28.010 --> 00:26:28.020 align:start position:0%
ready let's say everything was done I
 

00:26:28.020 --> 00:26:29.570 align:start position:0%
ready let's say everything was done I
would<00:26:28.260><c> start</c><00:26:28.440><c> streaming</c><00:26:28.860><c> and</c><00:26:28.980><c> get</c><00:26:29.220><c> all</c><00:26:29.400><c> the</c>

00:26:29.570 --> 00:26:29.580 align:start position:0%
would start streaming and get all the
 

00:26:29.580 --> 00:26:31.970 align:start position:0%
would start streaming and get all the
content<00:26:30.000><c> and</c><00:26:30.659><c> so</c><00:26:30.779><c> let</c><00:26:30.960><c> me</c><00:26:31.140><c> show</c><00:26:31.200><c> you</c><00:26:31.380><c> the</c><00:26:31.799><c> graph</c>

00:26:31.970 --> 00:26:31.980 align:start position:0%
content and so let me show you the graph
 

00:26:31.980 --> 00:26:34.430 align:start position:0%
content and so let me show you the graph
out<00:26:32.159><c> it's</c><00:26:32.400><c> very</c><00:26:32.580><c> interesting</c><00:26:32.940><c> because</c>

00:26:34.430 --> 00:26:34.440 align:start position:0%
out it's very interesting because
 

00:26:34.440 --> 00:26:38.210 align:start position:0%
out it's very interesting because
because<00:26:35.100><c> graph</c><00:26:35.700><c> out</c>

00:26:38.210 --> 00:26:38.220 align:start position:0%
 
 

00:26:38.220 --> 00:26:39.769 align:start position:0%
 
graph<00:26:38.940><c> out</c>

00:26:39.769 --> 00:26:39.779 align:start position:0%
graph out
 

00:26:39.779 --> 00:26:43.730 align:start position:0%
graph out
has<00:26:40.620><c> refined</c><00:26:41.340><c> the</c><00:26:41.460><c> data</c><00:26:41.820><c> up</c><00:26:42.120><c> to</c><00:26:42.360><c> entities</c><00:26:42.900><c> now</c>

00:26:43.730 --> 00:26:43.740 align:start position:0%
has refined the data up to entities now
 

00:26:43.740 --> 00:26:46.010 align:start position:0%
has refined the data up to entities now
we're<00:26:43.980><c> talking</c><00:26:44.159><c> about</c><00:26:44.400><c> database</c><00:26:45.240><c> tables</c><00:26:45.840><c> and</c>

00:26:46.010 --> 00:26:46.020 align:start position:0%
we're talking about database tables and
 

00:26:46.020 --> 00:26:48.710 align:start position:0%
we're talking about database tables and
Fields<00:26:46.380><c> and</c><00:26:46.919><c> you</c><00:26:47.100><c> get</c><00:26:47.340><c> and</c><00:26:48.120><c> you</c><00:26:48.240><c> get</c><00:26:48.419><c> out</c><00:26:48.600><c> of</c>

00:26:48.710 --> 00:26:48.720 align:start position:0%
Fields and you get and you get out of
 

00:26:48.720 --> 00:26:49.669 align:start position:0%
Fields and you get and you get out of
that

00:26:49.669 --> 00:26:49.679 align:start position:0%
that
 

00:26:49.679 --> 00:26:52.190 align:start position:0%
that
do<00:26:50.039><c> you</c><00:26:50.159><c> not</c><00:26:50.279><c> see</c><00:26:50.520><c> it</c><00:26:50.700><c> okay</c><00:26:50.880><c> that</c><00:26:51.240><c> wait</c><00:26:51.960><c> a</c>

00:26:52.190 --> 00:26:52.200 align:start position:0%
do you not see it okay that wait a
 

00:26:52.200 --> 00:26:54.430 align:start position:0%
do you not see it okay that wait a
second<00:26:52.320><c> here</c><00:26:52.559><c> so</c><00:26:52.919><c> let's</c><00:26:53.460><c> imagine</c><00:26:53.640><c> see</c><00:26:54.000><c> we</c><00:26:54.240><c> have</c>

00:26:54.430 --> 00:26:54.440 align:start position:0%
second here so let's imagine see we have
 

00:26:54.440 --> 00:26:57.590 align:start position:0%
second here so let's imagine see we have
token<00:26:55.440><c> and</c><00:26:55.980><c> an</c><00:26:56.159><c> update</c><00:26:56.520><c> and</c><00:26:56.880><c> you</c><00:26:57.059><c> have</c><00:26:57.240><c> the</c>

00:26:57.590 --> 00:26:57.600 align:start position:0%
token and an update and you have the
 

00:26:57.600 --> 00:26:59.690 align:start position:0%
token and an update and you have the
field<00:26:57.779><c> derived</c><00:26:58.320><c> if</c><00:26:58.440><c> and</c><00:26:58.799><c> you</c><00:26:58.980><c> have</c><00:26:59.159><c> the</c><00:26:59.460><c> old</c>

00:26:59.690 --> 00:26:59.700 align:start position:0%
field derived if and you have the old
 

00:26:59.700 --> 00:27:01.430 align:start position:0%
field derived if and you have the old
value<00:26:59.940><c> and</c><00:27:00.360><c> the</c><00:27:00.539><c> new</c><00:27:00.720><c> value</c><00:27:00.900><c> I</c><00:27:01.140><c> don't</c><00:27:01.260><c> know</c><00:27:01.320><c> if</c>

00:27:01.430 --> 00:27:01.440 align:start position:0%
value and the new value I don't know if
 

00:27:01.440 --> 00:27:03.110 align:start position:0%
value and the new value I don't know if
you've<00:27:01.620><c> seen</c><00:27:01.799><c> this</c><00:27:02.039><c> thing</c><00:27:02.220><c> in</c><00:27:02.700><c> the</c><00:27:02.820><c> data</c>

00:27:03.110 --> 00:27:03.120 align:start position:0%
you've seen this thing in the data
 

00:27:03.120 --> 00:27:04.850 align:start position:0%
you've seen this thing in the data
Science<00:27:03.179><c> World</c><00:27:03.480><c> this</c><00:27:03.779><c> looks</c><00:27:04.140><c> very</c><00:27:04.380><c> much</c><00:27:04.500><c> like</c>

00:27:04.850 --> 00:27:04.860 align:start position:0%
Science World this looks very much like
 

00:27:04.860 --> 00:27:08.330 align:start position:0%
Science World this looks very much like
change<00:27:05.760><c> change</c><00:27:06.179><c> data</c><00:27:06.720><c> capture</c><00:27:07.020><c> cdcs</c><00:27:07.740><c> that</c><00:27:08.159><c> can</c>

00:27:08.330 --> 00:27:08.340 align:start position:0%
change change data capture cdcs that can
 

00:27:08.340 --> 00:27:11.450 align:start position:0%
change change data capture cdcs that can
power<00:27:08.580><c> a</c><00:27:08.940><c> lot</c><00:27:09.120><c> of</c><00:27:09.299><c> large-scale</c><00:27:09.960><c> systems</c><00:27:10.559><c> and</c>

00:27:11.450 --> 00:27:11.460 align:start position:0%
power a lot of large-scale systems and
 

00:27:11.460 --> 00:27:14.090 align:start position:0%
power a lot of large-scale systems and
uh<00:27:11.760><c> and</c><00:27:12.179><c> you</c><00:27:12.419><c> have</c><00:27:12.539><c> the</c><00:27:12.720><c> prior</c><00:27:12.960><c> after</c><00:27:13.260><c> so</c><00:27:13.620><c> you</c>

00:27:14.090 --> 00:27:14.100 align:start position:0%
uh and you have the prior after so you
 

00:27:14.100 --> 00:27:16.070 align:start position:0%
uh and you have the prior after so you
can<00:27:14.159><c> feed</c><00:27:14.400><c> that</c><00:27:14.640><c> to</c><00:27:14.880><c> your</c><00:27:15.059><c> let's</c><00:27:15.360><c> say</c><00:27:15.600><c> postgres</c>

00:27:16.070 --> 00:27:16.080 align:start position:0%
can feed that to your let's say postgres
 

00:27:16.080 --> 00:27:18.649 align:start position:0%
can feed that to your let's say postgres
apply<00:27:16.980><c> the</c><00:27:17.220><c> changes</c><00:27:17.640><c> and</c><00:27:18.000><c> when</c><00:27:18.179><c> you</c><00:27:18.299><c> have</c><00:27:18.419><c> an</c>

00:27:18.649 --> 00:27:18.659 align:start position:0%
apply the changes and when you have an
 

00:27:18.659 --> 00:27:20.750 align:start position:0%
apply the changes and when you have an
undo<00:27:19.020><c> signal</c><00:27:19.440><c> it</c><00:27:20.039><c> gives</c><00:27:20.220><c> you</c><00:27:20.400><c> back</c><00:27:20.580><c> that</c>

00:27:20.750 --> 00:27:20.760 align:start position:0%
undo signal it gives you back that
 

00:27:20.760 --> 00:27:22.310 align:start position:0%
undo signal it gives you back that
payload<00:27:21.240><c> you</c><00:27:21.360><c> then</c><00:27:21.539><c> just</c><00:27:21.720><c> flip</c><00:27:22.080><c> everything</c>

00:27:22.310 --> 00:27:22.320 align:start position:0%
payload you then just flip everything
 

00:27:22.320 --> 00:27:25.010 align:start position:0%
payload you then just flip everything
and<00:27:22.980><c> you</c><00:27:23.159><c> have</c><00:27:23.400><c> guaranteed</c><00:27:24.120><c> linearities</c><00:27:24.659><c> to</c>

00:27:25.010 --> 00:27:25.020 align:start position:0%
and you have guaranteed linearities to
 

00:27:25.020 --> 00:27:27.169 align:start position:0%
and you have guaranteed linearities to
your<00:27:25.200><c> store</c><00:27:25.500><c> with</c><00:27:25.679><c> a</c><00:27:25.860><c> cursor</c><00:27:26.220><c> and</c><00:27:26.880><c> it</c><00:27:27.059><c> is</c>

00:27:27.169 --> 00:27:27.179 align:start position:0%
your store with a cursor and it is
 

00:27:27.179 --> 00:27:29.210 align:start position:0%
your store with a cursor and it is
Flawless<00:27:27.720><c> it's</c><00:27:27.960><c> just</c><00:27:28.200><c> extremely</c><00:27:28.679><c> simple</c><00:27:28.980><c> to</c>

00:27:29.210 --> 00:27:29.220 align:start position:0%
Flawless it's just extremely simple to
 

00:27:29.220 --> 00:27:31.070 align:start position:0%
Flawless it's just extremely simple to
keep<00:27:29.340><c> your</c><00:27:29.520><c> things</c><00:27:29.700><c> in</c><00:27:29.880><c> sync</c><00:27:30.240><c> you</c><00:27:30.779><c> also</c><00:27:30.960><c> want</c>

00:27:31.070 --> 00:27:31.080 align:start position:0%
keep your things in sync you also want
 

00:27:31.080 --> 00:27:32.810 align:start position:0%
keep your things in sync you also want
to<00:27:31.200><c> have</c><00:27:31.260><c> a</c><00:27:31.440><c> slack</c><00:27:31.679><c> body</c><00:27:31.860><c> can</c><00:27:32.100><c> have</c><00:27:32.220><c> it</c><00:27:32.340><c> undo</c>

00:27:32.810 --> 00:27:32.820 align:start position:0%
to have a slack body can have it undo
 

00:27:32.820 --> 00:27:34.730 align:start position:0%
to have a slack body can have it undo
message<00:27:33.000><c> remove</c><00:27:33.360><c> the</c><00:27:33.659><c> message</c><00:27:33.900><c> if</c><00:27:34.200><c> you</c><00:27:34.380><c> have</c><00:27:34.500><c> a</c>

00:27:34.730 --> 00:27:34.740 align:start position:0%
message remove the message if you have a
 

00:27:34.740 --> 00:27:36.169 align:start position:0%
message remove the message if you have a
thing<00:27:34.919><c> coming</c><00:27:35.100><c> through</c><00:27:35.340><c> right</c>

00:27:36.169 --> 00:27:36.179 align:start position:0%
thing coming through right
 

00:27:36.179 --> 00:27:37.430 align:start position:0%
thing coming through right
so

00:27:37.430 --> 00:27:37.440 align:start position:0%
so
 

00:27:37.440 --> 00:27:39.289 align:start position:0%
so
I<00:27:37.980><c> think</c><00:27:38.039><c> that's</c><00:27:38.220><c> pretty</c><00:27:38.460><c> cool</c><00:27:38.640><c> what</c><00:27:39.120><c> do</c><00:27:39.240><c> you</c>

00:27:39.289 --> 00:27:39.299 align:start position:0%
I think that's pretty cool what do you
 

00:27:39.299 --> 00:27:40.330 align:start position:0%
I think that's pretty cool what do you
think

00:27:40.330 --> 00:27:40.340 align:start position:0%
think
 

00:27:40.340 --> 00:27:42.289 align:start position:0%
think
okay

00:27:42.289 --> 00:27:42.299 align:start position:0%
okay
 

00:27:42.299 --> 00:27:44.390 align:start position:0%
okay
okay<00:27:42.659><c> that's</c><00:27:42.960><c> cool</c><00:27:43.200><c> can</c><00:27:43.679><c> I</c><00:27:43.799><c> shut</c><00:27:44.039><c> that</c><00:27:44.220><c> down</c>

00:27:44.390 --> 00:27:44.400 align:start position:0%
okay that's cool can I shut that down
 

00:27:44.400 --> 00:27:46.730 align:start position:0%
okay that's cool can I shut that down
here<00:27:44.580><c> do</c><00:27:44.820><c> I</c><00:27:44.940><c> have</c><00:27:45.000><c> another</c><00:27:45.120><c> window</c>

00:27:46.730 --> 00:27:46.740 align:start position:0%
here do I have another window
 

00:27:46.740 --> 00:27:48.590 align:start position:0%
here do I have another window
uh<00:27:47.279><c> I'm</c><00:27:47.460><c> close</c><00:27:47.640><c> to</c><00:27:47.820><c> them</c><00:27:48.000><c> prepare</c><00:27:48.480><c> your</c>

00:27:48.590 --> 00:27:48.600 align:start position:0%
uh I'm close to them prepare your
 

00:27:48.600 --> 00:27:50.570 align:start position:0%
uh I'm close to them prepare your
question<00:27:48.779><c> please</c><00:27:49.140><c> ask</c><00:27:49.440><c> ask</c><00:27:49.740><c> them</c><00:27:50.039><c> succinctly</c>

00:27:50.570 --> 00:27:50.580 align:start position:0%
question please ask ask them succinctly
 

00:27:50.580 --> 00:27:52.909 align:start position:0%
question please ask ask them succinctly
we<00:27:50.880><c> have</c><00:27:51.059><c> a</c><00:27:51.840><c> half</c><00:27:52.020><c> a</c><00:27:52.200><c> minute</c><00:27:52.320><c> I</c><00:27:52.500><c> just</c><00:27:52.620><c> wanted</c><00:27:52.740><c> to</c>

00:27:52.909 --> 00:27:52.919 align:start position:0%
we have a half a minute I just wanted to
 

00:27:52.919 --> 00:27:55.430 align:start position:0%
we have a half a minute I just wanted to
have<00:27:53.100><c> a</c><00:27:53.279><c> final</c><00:27:53.460><c> final</c><00:27:53.820><c> note</c><00:27:54.179><c> there</c>

00:27:55.430 --> 00:27:55.440 align:start position:0%
have a final final note there
 

00:27:55.440 --> 00:27:57.649 align:start position:0%
have a final final note there
so<00:27:55.860><c> as</c><00:27:56.100><c> a</c><00:27:56.340><c> final</c><00:27:56.520><c> note</c>

00:27:57.649 --> 00:27:57.659 align:start position:0%
so as a final note
 

00:27:57.659 --> 00:27:59.930 align:start position:0%
so as a final note
I<00:27:58.020><c> want</c><00:27:58.140><c> to</c><00:27:58.200><c> share</c><00:27:58.440><c> with</c><00:27:58.620><c> you</c><00:27:58.740><c> a</c><00:27:58.919><c> little</c><00:27:59.039><c> bit</c><00:27:59.220><c> of</c>

00:27:59.930 --> 00:27:59.940 align:start position:0%
I want to share with you a little bit of
 

00:27:59.940 --> 00:28:01.850 align:start position:0%
I want to share with you a little bit of
my<00:28:00.179><c> vision</c><00:28:00.360><c> for</c><00:28:00.720><c> the</c><00:28:00.840><c> graph</c>

00:28:01.850 --> 00:28:01.860 align:start position:0%
my vision for the graph
 

00:28:01.860 --> 00:28:03.769 align:start position:0%
my vision for the graph
okay<00:28:02.340><c> I</c><00:28:02.640><c> don't</c><00:28:02.700><c> know</c><00:28:02.820><c> where</c><00:28:02.880><c> the</c><00:28:03.000><c> window</c><00:28:03.120><c> is</c><00:28:03.360><c> so</c>

00:28:03.769 --> 00:28:03.779 align:start position:0%
okay I don't know where the window is so
 

00:28:03.779 --> 00:28:06.950 align:start position:0%
okay I don't know where the window is so
whatever<00:28:03.960><c> it</c><00:28:04.320><c> just</c><00:28:04.440><c> says</c><00:28:04.740><c> fine</c><00:28:04.919><c> it's</c><00:28:05.220><c> fine</c><00:28:05.460><c> uh</c>

00:28:06.950 --> 00:28:06.960 align:start position:0%
whatever it just says fine it's fine uh
 

00:28:06.960 --> 00:28:09.830 align:start position:0%
whatever it just says fine it's fine uh
I'm<00:28:07.440><c> imagining</c><00:28:07.919><c> the</c><00:28:08.100><c> graph</c><00:28:08.400><c> becoming</c><00:28:09.059><c> that</c>

00:28:09.830 --> 00:28:09.840 align:start position:0%
I'm imagining the graph becoming that
 

00:28:09.840 --> 00:28:12.950 align:start position:0%
I'm imagining the graph becoming that
sort<00:28:10.080><c> of</c><00:28:10.320><c> huge</c><00:28:11.039><c> worldwide</c><00:28:11.820><c> cluster</c><00:28:12.360><c> of</c>

00:28:12.950 --> 00:28:12.960 align:start position:0%
sort of huge worldwide cluster of
 

00:28:12.960 --> 00:28:15.470 align:start position:0%
sort of huge worldwide cluster of
processing<00:28:13.559><c> and</c><00:28:13.799><c> storage</c><00:28:13.980><c> capabilities</c><00:28:14.580><c> and</c>

00:28:15.470 --> 00:28:15.480 align:start position:0%
processing and storage capabilities and
 

00:28:15.480 --> 00:28:17.269 align:start position:0%
processing and storage capabilities and
something<00:28:15.779><c> like</c><00:28:16.020><c> Google's</c><00:28:16.500><c> bigquery</c><00:28:16.980><c> but</c>

00:28:17.269 --> 00:28:17.279 align:start position:0%
something like Google's bigquery but
 

00:28:17.279 --> 00:28:19.190 align:start position:0%
something like Google's bigquery but
where<00:28:17.580><c> people</c><00:28:17.820><c> join</c><00:28:18.179><c> because</c><00:28:18.360><c> it's</c><00:28:18.779><c> better</c>

00:28:19.190 --> 00:28:19.200 align:start position:0%
where people join because it's better
 

00:28:19.200 --> 00:28:21.230 align:start position:0%
where people join because it's better
together<00:28:19.559><c> right</c><00:28:20.220><c> instead</c><00:28:20.820><c> of</c><00:28:20.880><c> running</c><00:28:21.000><c> it</c>

00:28:21.230 --> 00:28:21.240 align:start position:0%
together right instead of running it
 

00:28:21.240 --> 00:28:22.850 align:start position:0%
together right instead of running it
alone<00:28:21.360><c> we</c><00:28:21.600><c> need</c><00:28:21.779><c> to</c><00:28:21.900><c> have</c><00:28:22.080><c> all</c><00:28:22.380><c> the</c><00:28:22.440><c> resources</c>

00:28:22.850 --> 00:28:22.860 align:start position:0%
alone we need to have all the resources
 

00:28:22.860 --> 00:28:24.950 align:start position:0%
alone we need to have all the resources
alone<00:28:23.039><c> and</c><00:28:23.760><c> I</c><00:28:23.880><c> see</c><00:28:24.059><c> also</c><00:28:24.360><c> a</c><00:28:24.480><c> new</c><00:28:24.600><c> era</c><00:28:24.840><c> of</c>

00:28:24.950 --> 00:28:24.960 align:start position:0%
alone and I see also a new era of
 

00:28:24.960 --> 00:28:26.630 align:start position:0%
alone and I see also a new era of
composability<00:28:25.620><c> which</c><00:28:26.100><c> means</c><00:28:26.340><c> more</c>

00:28:26.630 --> 00:28:26.640 align:start position:0%
composability which means more
 

00:28:26.640 --> 00:28:29.149 align:start position:0%
composability which means more
collaboration<00:28:27.299><c> and</c><00:28:28.140><c> in</c><00:28:28.320><c> a</c><00:28:28.500><c> tighter</c><00:28:28.919><c> Community</c>

00:28:29.149 --> 00:28:29.159 align:start position:0%
collaboration and in a tighter Community
 

00:28:29.159 --> 00:28:31.250 align:start position:0%
collaboration and in a tighter Community
working<00:28:29.520><c> together</c><00:28:29.880><c> more</c><00:28:30.840><c> intimately</c><00:28:31.080><c> in</c>

00:28:31.250 --> 00:28:31.260 align:start position:0%
working together more intimately in
 

00:28:31.260 --> 00:28:33.289 align:start position:0%
working together more intimately in
those<00:28:31.440><c> in</c><00:28:31.679><c> those</c><00:28:31.980><c> uh</c><00:28:32.220><c> you</c><00:28:32.760><c> know</c><00:28:32.820><c> with</c><00:28:33.059><c> those</c>

00:28:33.289 --> 00:28:33.299 align:start position:0%
those in those uh you know with those
 

00:28:33.299 --> 00:28:36.649 align:start position:0%
those in those uh you know with those
data<00:28:33.720><c> contracts</c><00:28:34.200><c> and</c><00:28:34.679><c> I</c><00:28:34.799><c> see</c><00:28:35.039><c> also</c><00:28:35.460><c> a</c><00:28:36.299><c> new</c><00:28:36.419><c> mix</c>

00:28:36.649 --> 00:28:36.659 align:start position:0%
data contracts and I see also a new mix
 

00:28:36.659 --> 00:28:39.710 align:start position:0%
data contracts and I see also a new mix
of<00:28:36.960><c> collaboration</c><00:28:37.559><c> between</c><00:28:38.100><c> indexers</c><00:28:38.940><c> like</c>

00:28:39.710 --> 00:28:39.720 align:start position:0%
of collaboration between indexers like
 

00:28:39.720 --> 00:28:42.409 align:start position:0%
of collaboration between indexers like
exchanging<00:28:40.440><c> data</c><00:28:40.980><c> or</c><00:28:41.279><c> sharing</c><00:28:41.700><c> resources</c><00:28:42.240><c> in</c>

00:28:42.409 --> 00:28:42.419 align:start position:0%
exchanging data or sharing resources in
 

00:28:42.419 --> 00:28:43.850 align:start position:0%
exchanging data or sharing resources in
terms<00:28:42.600><c> of</c><00:28:42.720><c> compute</c><00:28:43.020><c> and</c><00:28:43.080><c> stores</c><00:28:43.320><c> and</c><00:28:43.559><c> whatnot</c>

00:28:43.850 --> 00:28:43.860 align:start position:0%
terms of compute and stores and whatnot
 

00:28:43.860 --> 00:28:45.950 align:start position:0%
terms of compute and stores and whatnot
therefore<00:28:44.520><c> introducing</c><00:28:45.000><c> new</c><00:28:45.240><c> value</c><00:28:45.419><c> flows</c>

00:28:45.950 --> 00:28:45.960 align:start position:0%
therefore introducing new value flows
 

00:28:45.960 --> 00:28:48.110 align:start position:0%
therefore introducing new value flows
and<00:28:46.440><c> also</c><00:28:46.679><c> I'm</c><00:28:46.860><c> seeing</c><00:28:47.220><c> new</c><00:28:47.460><c> products</c><00:28:47.940><c> new</c>

00:28:48.110 --> 00:28:48.120 align:start position:0%
and also I'm seeing new products new
 

00:28:48.120 --> 00:28:49.669 align:start position:0%
and also I'm seeing new products new
Services<00:28:48.360><c> being</c><00:28:48.779><c> offered</c><00:28:49.080><c> directly</c><00:28:49.380><c> on</c><00:28:49.559><c> the</c>

00:28:49.669 --> 00:28:49.679 align:start position:0%
Services being offered directly on the
 

00:28:49.679 --> 00:28:51.890 align:start position:0%
Services being offered directly on the
network<00:28:49.860><c> you</c><00:28:50.700><c> know</c><00:28:50.820><c> to</c><00:28:51.000><c> satisfy</c><00:28:51.360><c> some</c><00:28:51.539><c> needs</c>

00:28:51.890 --> 00:28:51.900 align:start position:0%
network you know to satisfy some needs
 

00:28:51.900 --> 00:28:53.810 align:start position:0%
network you know to satisfy some needs
that<00:28:51.960><c> perhaps</c><00:28:52.320><c> couldn't</c><00:28:53.220><c> be</c><00:28:53.460><c> addressed</c>

00:28:53.810 --> 00:28:53.820 align:start position:0%
that perhaps couldn't be addressed
 

00:28:53.820 --> 00:28:56.149 align:start position:0%
that perhaps couldn't be addressed
before<00:28:54.140><c> and</c><00:28:55.140><c> I</c><00:28:55.320><c> mean</c><00:28:55.440><c> there's</c><00:28:55.559><c> a</c><00:28:55.799><c> place</c><00:28:55.980><c> for</c>

00:28:56.149 --> 00:28:56.159 align:start position:0%
before and I mean there's a place for
 

00:28:56.159 --> 00:28:58.010 align:start position:0%
before and I mean there's a place for
you<00:28:56.279><c> in</c><00:28:56.460><c> there</c><00:28:56.580><c> as</c><00:28:56.760><c> a</c><00:28:56.880><c> developer</c><00:28:57.299><c> as</c><00:28:57.779><c> an</c>

00:28:58.010 --> 00:28:58.020 align:start position:0%
you in there as a developer as an
 

00:28:58.020 --> 00:29:00.289 align:start position:0%
you in there as a developer as an
indexer<00:28:58.440><c> as</c><00:28:58.620><c> someone</c><00:28:58.799><c> who</c><00:28:59.039><c> realizes</c><00:28:59.820><c> the</c>

00:29:00.289 --> 00:29:00.299 align:start position:0%
indexer as someone who realizes the
 

00:29:00.299 --> 00:29:02.570 align:start position:0%
indexer as someone who realizes the
radical<00:29:01.020><c> benefits</c><00:29:01.559><c> of</c><00:29:01.740><c> such</c><00:29:01.919><c> a</c><00:29:02.100><c> platform</c><00:29:02.340><c> and</c>

00:29:02.570 --> 00:29:02.580 align:start position:0%
radical benefits of such a platform and
 

00:29:02.580 --> 00:29:04.970 align:start position:0%
radical benefits of such a platform and
who<00:29:02.820><c> who</c><00:29:03.000><c> builds</c><00:29:03.419><c> on</c><00:29:03.539><c> it</c><00:29:03.659><c> and</c><00:29:03.779><c> promotes</c><00:29:04.380><c> it</c><00:29:04.500><c> so</c>

00:29:04.970 --> 00:29:04.980 align:start position:0%
who who builds on it and promotes it so
 

00:29:04.980 --> 00:29:08.269 align:start position:0%
who who builds on it and promotes it so
my<00:29:05.220><c> ask</c><00:29:05.400><c> to</c><00:29:05.640><c> you</c><00:29:05.820><c> is</c><00:29:06.059><c> you</c><00:29:06.600><c> go</c><00:29:06.720><c> to</c><00:29:06.900><c> you</c><00:29:07.500><c> go</c><00:29:08.039><c> try</c>

00:29:08.269 --> 00:29:08.279 align:start position:0%
my ask to you is you go to you go try
 

00:29:08.279 --> 00:29:10.310 align:start position:0%
my ask to you is you go to you go try
substreams<00:29:09.059><c> put</c><00:29:09.419><c> pressure</c><00:29:09.720><c> on</c><00:29:09.960><c> your</c><00:29:10.140><c> favorite</c>

00:29:10.310 --> 00:29:10.320 align:start position:0%
substreams put pressure on your favorite
 

00:29:10.320 --> 00:29:12.230 align:start position:0%
substreams put pressure on your favorite
layer<00:29:10.740><c> ones</c><00:29:11.039><c> so</c><00:29:11.159><c> that</c><00:29:11.279><c> they</c><00:29:11.460><c> do</c><00:29:11.580><c> integrate</c><00:29:12.000><c> the</c>

00:29:12.230 --> 00:29:12.240 align:start position:0%
layer ones so that they do integrate the
 

00:29:12.240 --> 00:29:14.210 align:start position:0%
layer ones so that they do integrate the
fire<00:29:12.419><c> hose</c><00:29:12.720><c> natively</c><00:29:13.200><c> that's</c><00:29:13.559><c> pristine's</c>

00:29:14.210 --> 00:29:14.220 align:start position:0%
fire hose natively that's pristine's
 

00:29:14.220 --> 00:29:16.010 align:start position:0%
fire hose natively that's pristine's
Aptos<00:29:14.700><c> has</c><00:29:14.940><c> done</c><00:29:15.059><c> that</c><00:29:15.179><c> recently</c><00:29:15.480><c> some</c><00:29:15.720><c> others</c>

00:29:16.010 --> 00:29:16.020 align:start position:0%
Aptos has done that recently some others
 

00:29:16.020 --> 00:29:17.990 align:start position:0%
Aptos has done that recently some others
start<00:29:16.140><c> wear</c><00:29:16.320><c> I</c><00:29:16.559><c> think</c><00:29:16.679><c> so</c><00:29:17.159><c> that</c><00:29:17.460><c> makes</c><00:29:17.700><c> it</c>

00:29:17.990 --> 00:29:18.000 align:start position:0%
start wear I think so that makes it
 

00:29:18.000 --> 00:29:19.549 align:start position:0%
start wear I think so that makes it
everything<00:29:18.480><c> we've</c><00:29:18.840><c> seen</c><00:29:18.960><c> today</c><00:29:19.140><c> becomes</c>

00:29:19.549 --> 00:29:19.559 align:start position:0%
everything we've seen today becomes
 

00:29:19.559 --> 00:29:21.289 align:start position:0%
everything we've seen today becomes
immediately<00:29:19.919><c> available</c><00:29:20.159><c> to</c><00:29:20.520><c> them</c><00:29:20.640><c> sell</c><00:29:21.179><c> them</c>

00:29:21.289 --> 00:29:21.299 align:start position:0%
immediately available to them sell them
 

00:29:21.299 --> 00:29:23.690 align:start position:0%
immediately available to them sell them
on<00:29:21.480><c> the</c><00:29:21.600><c> goodies</c><00:29:21.840><c> so</c><00:29:22.320><c> also</c><00:29:22.620><c> join</c><00:29:22.919><c> a</c><00:29:23.039><c> Discord</c><00:29:23.340><c> I</c>

00:29:23.690 --> 00:29:23.700 align:start position:0%
on the goodies so also join a Discord I
 

00:29:23.700 --> 00:29:25.610 align:start position:0%
on the goodies so also join a Discord I
love<00:29:23.940><c> follow-up</c><00:29:24.360><c> follow-up</c><00:29:24.659><c> questions</c><00:29:24.960><c> and</c>

00:29:25.610 --> 00:29:25.620 align:start position:0%
love follow-up follow-up questions and
 

00:29:25.620 --> 00:29:27.289 align:start position:0%
love follow-up follow-up questions and
come<00:29:25.799><c> see</c><00:29:25.980><c> me</c><00:29:26.100><c> afterwards</c><00:29:26.460><c> I</c><00:29:26.640><c> love</c><00:29:26.880><c> feedbacks</c>

00:29:27.289 --> 00:29:27.299 align:start position:0%
come see me afterwards I love feedbacks
 

00:29:27.299 --> 00:29:28.850 align:start position:0%
come see me afterwards I love feedbacks
on<00:29:27.360><c> these</c><00:29:27.539><c> sort</c><00:29:27.659><c> of</c><00:29:27.720><c> things</c><00:29:27.840><c> all</c><00:29:28.500><c> of</c><00:29:28.679><c> this</c><00:29:28.740><c> is</c>

00:29:28.850 --> 00:29:28.860 align:start position:0%
on these sort of things all of this is
 

00:29:28.860 --> 00:29:31.130 align:start position:0%
on these sort of things all of this is
open<00:29:29.039><c> source</c><00:29:29.520><c> so</c><00:29:29.700><c> let's</c><00:29:29.940><c> dig</c><00:29:30.179><c> and</c><00:29:30.659><c> build</c>

00:29:31.130 --> 00:29:31.140 align:start position:0%
open source so let's dig and build
 

00:29:31.140 --> 00:29:32.870 align:start position:0%
open source so let's dig and build
something<00:29:31.380><c> of</c><00:29:31.740><c> the</c><00:29:31.919><c> like</c><00:29:32.279><c> together</c><00:29:32.520><c> the</c>

00:29:32.870 --> 00:29:32.880 align:start position:0%
something of the like together the
 

00:29:32.880 --> 00:29:34.310 align:start position:0%
something of the like together the
biggest<00:29:33.000><c> blockchain</c><00:29:33.539><c> platform</c><00:29:33.960><c> on</c><00:29:34.140><c> Earth</c>

00:29:34.310 --> 00:29:34.320 align:start position:0%
biggest blockchain platform on Earth
 

00:29:34.320 --> 00:29:40.970 align:start position:0%
biggest blockchain platform on Earth
thank<00:29:35.039><c> you</c><00:29:35.159><c> for</c><00:29:35.399><c> your</c><00:29:35.460><c> time</c><00:29:35.640><c> today</c>

00:29:40.970 --> 00:29:40.980 align:start position:0%
 
 

00:29:40.980 --> 00:29:42.950 align:start position:0%
 
do<00:29:41.399><c> we</c><00:29:41.460><c> have</c><00:29:41.700><c> time</c><00:29:41.880><c> for</c><00:29:42.179><c> two</c><00:29:42.480><c> three</c><00:29:42.779><c> questions</c>

00:29:42.950 --> 00:29:42.960 align:start position:0%
do we have time for two three questions
 

00:29:42.960 --> 00:29:44.389 align:start position:0%
do we have time for two three questions
we're<00:29:43.260><c> the</c><00:29:43.440><c> last</c><00:29:43.559><c> one</c><00:29:43.740><c> so</c><00:29:43.919><c> if</c><00:29:44.100><c> you</c><00:29:44.159><c> have</c><00:29:44.279><c> a</c>

00:29:44.389 --> 00:29:44.399 align:start position:0%
we're the last one so if you have a
 

00:29:44.399 --> 00:29:45.289 align:start position:0%
we're the last one so if you have a
question

00:29:45.289 --> 00:29:45.299 align:start position:0%
question
 

00:29:45.299 --> 00:29:48.889 align:start position:0%
question
hey<00:29:45.899><c> uh</c><00:29:46.260><c> so</c><00:29:46.440><c> one</c><00:29:46.740><c> question</c><00:29:46.919><c> uh</c><00:29:47.820><c> modularity</c><00:29:48.600><c> and</c>

00:29:48.889 --> 00:29:48.899 align:start position:0%
hey uh so one question uh modularity and
 

00:29:48.899 --> 00:29:50.510 align:start position:0%
hey uh so one question uh modularity and
composability<00:29:49.440><c> of</c><00:29:49.679><c> these</c><00:29:49.919><c> substreams</c><00:29:50.399><c> is</c>

00:29:50.510 --> 00:29:50.520 align:start position:0%
composability of these substreams is
 

00:29:50.520 --> 00:29:53.029 align:start position:0%
composability of these substreams is
super<00:29:50.700><c> super</c><00:29:50.940><c> powerful</c><00:29:51.419><c> but</c><00:29:52.260><c> still</c><00:29:52.440><c> if</c><00:29:52.799><c> I</c><00:29:52.919><c> look</c>

00:29:53.029 --> 00:29:53.039 align:start position:0%
super super powerful but still if I look
 

00:29:53.039 --> 00:29:55.070 align:start position:0%
super super powerful but still if I look
at<00:29:53.159><c> this</c><00:29:53.340><c> compared</c><00:29:53.880><c> to</c><00:29:53.880><c> SQL</c><00:29:54.360><c> and</c><00:29:54.539><c> like</c><00:29:54.659><c> DVT</c>

00:29:55.070 --> 00:29:55.080 align:start position:0%
at this compared to SQL and like DVT
 

00:29:55.080 --> 00:29:57.590 align:start position:0%
at this compared to SQL and like DVT
models<00:29:55.500><c> right</c><00:29:55.860><c> it's</c><00:29:56.100><c> a</c><00:29:56.279><c> lot</c><00:29:56.399><c> more</c><00:29:56.520><c> complex</c><00:29:56.940><c> so</c>

00:29:57.590 --> 00:29:57.600 align:start position:0%
models right it's a lot more complex so
 

00:29:57.600 --> 00:29:59.990 align:start position:0%
models right it's a lot more complex so
how<00:29:57.899><c> can</c><00:29:58.080><c> we</c><00:29:58.320><c> enable</c><00:29:58.919><c> people</c><00:29:59.220><c> to</c><00:29:59.580><c> really</c><00:29:59.700><c> kind</c>

00:29:59.990 --> 00:30:00.000 align:start position:0%
how can we enable people to really kind
 

00:30:00.000 --> 00:30:02.330 align:start position:0%
how can we enable people to really kind
of<00:30:00.120><c> learn</c><00:30:00.360><c> this</c><00:30:00.659><c> and</c><00:30:01.020><c> like</c><00:30:01.200><c> build</c><00:30:01.559><c> these</c><00:30:02.220><c> kind</c>

00:30:02.330 --> 00:30:02.340 align:start position:0%
of learn this and like build these kind
 

00:30:02.340 --> 00:30:09.169 align:start position:0%
of learn this and like build these kind
of<00:30:02.460><c> hyper</c><00:30:03.059><c> modular</c><00:30:03.480><c> data</c><00:30:04.440><c> streams</c><00:30:04.799><c> so</c>

00:30:09.169 --> 00:30:09.179 align:start position:0%
 
 

00:30:09.179 --> 00:30:12.110 align:start position:0%
 
SQL<00:30:09.720><c> layer</c><00:30:10.020><c> like</c><00:30:10.440><c> this</c><00:30:10.919><c> is</c><00:30:11.159><c> powering</c><00:30:11.880><c> going</c>

00:30:12.110 --> 00:30:12.120 align:start position:0%
SQL layer like this is powering going
 

00:30:12.120 --> 00:30:14.330 align:start position:0%
SQL layer like this is powering going
through<00:30:12.360><c> history</c><00:30:12.600><c> it's</c><00:30:13.320><c> an</c><00:30:13.559><c> adult</c><00:30:13.740><c> transform</c>

00:30:14.330 --> 00:30:14.340 align:start position:0%
through history it's an adult transform
 

00:30:14.340 --> 00:30:16.250 align:start position:0%
through history it's an adult transform
with<00:30:14.760><c> stateful</c><00:30:15.179><c> storage</c><00:30:15.480><c> but</c><00:30:15.960><c> you</c><00:30:16.140><c> would</c>

00:30:16.250 --> 00:30:16.260 align:start position:0%
with stateful storage but you would
 

00:30:16.260 --> 00:30:18.049 align:start position:0%
with stateful storage but you would
pipelive<00:30:16.740><c> into</c><00:30:16.860><c> SQL</c><00:30:17.220><c> store</c><00:30:17.399><c> to</c><00:30:17.640><c> do</c><00:30:17.820><c> other</c>

00:30:18.049 --> 00:30:18.059 align:start position:0%
pipelive into SQL store to do other
 

00:30:18.059 --> 00:30:19.909 align:start position:0%
pipelive into SQL store to do other
things<00:30:18.360><c> right</c><00:30:19.020><c> you</c><00:30:19.200><c> would</c><00:30:19.380><c> have</c><00:30:19.440><c> refinement</c>

00:30:19.909 --> 00:30:19.919 align:start position:0%
things right you would have refinement
 

00:30:19.919 --> 00:30:21.769 align:start position:0%
things right you would have refinement
you<00:30:20.039><c> have</c><00:30:20.220><c> Knowledge</c><00:30:20.580><c> from</c><00:30:20.760><c> the</c><00:30:21.000><c> community</c><00:30:21.179><c> as</c>

00:30:21.769 --> 00:30:21.779 align:start position:0%
you have Knowledge from the community as
 

00:30:21.779 --> 00:30:23.630 align:start position:0%
you have Knowledge from the community as
to<00:30:22.020><c> how</c><00:30:22.140><c> to</c><00:30:22.320><c> analyze</c><00:30:22.799><c> this</c><00:30:22.980><c> and</c><00:30:23.159><c> that</c><00:30:23.340><c> protocol</c>

00:30:23.630 --> 00:30:23.640 align:start position:0%
to how to analyze this and that protocol
 

00:30:23.640 --> 00:30:25.490 align:start position:0%
to how to analyze this and that protocol
ever<00:30:24.360><c> ever</c><00:30:24.659><c> you</c><00:30:25.020><c> know</c><00:30:25.140><c> increasing</c>

00:30:25.490 --> 00:30:25.500 align:start position:0%
ever ever you know increasing
 

00:30:25.500 --> 00:30:27.110 align:start position:0%
ever ever you know increasing
refinements<00:30:26.220><c> but</c><00:30:26.399><c> then</c><00:30:26.580><c> you</c><00:30:26.700><c> might</c><00:30:26.880><c> store</c>

00:30:27.110 --> 00:30:27.120 align:start position:0%
refinements but then you might store
 

00:30:27.120 --> 00:30:29.210 align:start position:0%
refinements but then you might store
that<00:30:27.360><c> in</c><00:30:27.539><c> your</c><00:30:27.720><c> store</c><00:30:28.080><c> with</c><00:30:28.320><c> off-chain</c><00:30:28.860><c> data</c>

00:30:29.210 --> 00:30:29.220 align:start position:0%
that in your store with off-chain data
 

00:30:29.220 --> 00:30:31.070 align:start position:0%
that in your store with off-chain data
and<00:30:29.520><c> maybe</c><00:30:29.700><c> that's</c><00:30:29.940><c> best</c><00:30:30.179><c> fit</c><00:30:30.480><c> for</c><00:30:30.600><c> you</c><00:30:30.779><c> maybe</c>

00:30:31.070 --> 00:30:31.080 align:start position:0%
and maybe that's best fit for you maybe
 

00:30:31.080 --> 00:30:32.630 align:start position:0%
and maybe that's best fit for you maybe
you<00:30:31.320><c> feed</c><00:30:31.440><c> it</c><00:30:31.620><c> into</c><00:30:31.740><c> a</c><00:30:31.919><c> subgraph</c><00:30:32.220><c> that's</c><00:30:32.460><c> what</c>

00:30:32.630 --> 00:30:32.640 align:start position:0%
you feed it into a subgraph that's what
 

00:30:32.640 --> 00:30:34.190 align:start position:0%
you feed it into a subgraph that's what
you<00:30:32.820><c> need</c><00:30:33.000><c> you</c><00:30:33.240><c> had</c><00:30:33.360><c> a</c><00:30:33.539><c> total</c><00:30:33.720><c> decentralized</c>

00:30:34.190 --> 00:30:34.200 align:start position:0%
you need you had a total decentralized
 

00:30:34.200 --> 00:30:35.870 align:start position:0%
you need you had a total decentralized
solution<00:30:34.860><c> and</c><00:30:35.159><c> you</c><00:30:35.279><c> don't</c><00:30:35.399><c> need</c><00:30:35.520><c> to</c><00:30:35.640><c> host</c>

00:30:35.870 --> 00:30:35.880 align:start position:0%
solution and you don't need to host
 

00:30:35.880 --> 00:30:38.990 align:start position:0%
solution and you don't need to host
anything<00:30:36.120><c> so</c><00:30:36.960><c> this</c><00:30:37.320><c> is</c><00:30:37.440><c> enabler</c><00:30:37.919><c> at</c><00:30:38.399><c> a</c><00:30:38.640><c> lower</c>

00:30:38.990 --> 00:30:39.000 align:start position:0%
anything so this is enabler at a lower
 

00:30:39.000 --> 00:30:40.970 align:start position:0%
anything so this is enabler at a lower
level<00:30:39.419><c> it's</c><00:30:39.720><c> not</c><00:30:39.960><c> a</c><00:30:40.140><c> it</c><00:30:40.380><c> doesn't</c><00:30:40.500><c> seek</c><00:30:40.860><c> to</c>

00:30:40.970 --> 00:30:40.980 align:start position:0%
level it's not a it doesn't seek to
 

00:30:40.980 --> 00:30:43.310 align:start position:0%
level it's not a it doesn't seek to
replace<00:30:41.100><c> SQL</c><00:30:41.820><c> but</c><00:30:42.299><c> it</c><00:30:42.419><c> puts</c><00:30:42.720><c> itself</c><00:30:42.899><c> at</c><00:30:43.200><c> a</c>

00:30:43.310 --> 00:30:43.320 align:start position:0%
replace SQL but it puts itself at a
 

00:30:43.320 --> 00:30:45.710 align:start position:0%
replace SQL but it puts itself at a
place<00:30:43.440><c> where</c><00:30:43.740><c> we</c><00:30:44.220><c> can</c><00:30:44.399><c> feed</c><00:30:44.700><c> all</c><00:30:45.179><c> the</c><00:30:45.360><c> systems</c>

00:30:45.710 --> 00:30:45.720 align:start position:0%
place where we can feed all the systems
 

00:30:45.720 --> 00:30:48.049 align:start position:0%
place where we can feed all the systems
on<00:30:45.899><c> Earth</c><00:30:46.020><c> with</c><00:30:46.679><c> enriched</c><00:30:47.399><c> data</c><00:30:47.640><c> which</c><00:30:47.880><c> you</c>

00:30:48.049 --> 00:30:48.059 align:start position:0%
on Earth with enriched data which you
 

00:30:48.059 --> 00:30:50.269 align:start position:0%
on Earth with enriched data which you
would<00:30:48.179><c> need</c><00:30:48.299><c> to</c><00:30:48.419><c> do</c><00:30:48.539><c> in</c><00:30:48.659><c> SQL</c><00:30:49.200><c> and</c><00:30:49.320><c> it's</c><00:30:49.919><c> it's</c>

00:30:50.269 --> 00:30:50.279 align:start position:0%
would need to do in SQL and it's it's
 

00:30:50.279 --> 00:30:52.789 align:start position:0%
would need to do in SQL and it's it's
really<00:30:50.640><c> not</c><00:30:50.880><c> fun</c><00:30:51.240><c> so</c><00:30:51.960><c> you</c><00:30:52.080><c> leave</c><00:30:52.320><c> that</c><00:30:52.500><c> to</c><00:30:52.620><c> the</c>

00:30:52.789 --> 00:30:52.799 align:start position:0%
really not fun so you leave that to the
 

00:30:52.799 --> 00:30:55.549 align:start position:0%
really not fun so you leave that to the
community<00:30:52.919><c> right</c><00:30:53.279><c> gotcha</c><00:30:54.059><c> thank</c><00:30:54.360><c> you</c><00:30:54.480><c> we</c><00:30:55.440><c> have</c>

00:30:55.549 --> 00:30:55.559 align:start position:0%
community right gotcha thank you we have
 

00:30:55.559 --> 00:30:57.409 align:start position:0%
community right gotcha thank you we have
our<00:30:55.799><c> old</c><00:30:55.919><c> subgraph</c><00:30:56.520><c> which</c><00:30:56.760><c> is</c><00:30:56.880><c> pretty</c><00:30:57.120><c> slow</c>

00:30:57.409 --> 00:30:57.419 align:start position:0%
our old subgraph which is pretty slow
 

00:30:57.419 --> 00:31:00.289 align:start position:0%
our old subgraph which is pretty slow
and<00:30:57.779><c> we</c><00:30:57.960><c> would</c><00:30:58.140><c> like</c><00:30:58.260><c> to</c><00:30:58.559><c> transform</c><00:30:59.159><c> it</c><00:30:59.520><c> to</c><00:30:59.700><c> the</c>

00:31:00.289 --> 00:31:00.299 align:start position:0%
and we would like to transform it to the
 

00:31:00.299 --> 00:31:02.510 align:start position:0%
and we would like to transform it to the
new<00:31:00.480><c> type</c><00:31:00.659><c> of</c><00:31:00.779><c> subcraft</c><00:31:01.200><c> Yes</c><00:31:01.559><c> Should</c><00:31:01.860><c> I</c><00:31:02.340><c> only</c>

00:31:02.510 --> 00:31:02.520 align:start position:0%
new type of subcraft Yes Should I only
 

00:31:02.520 --> 00:31:05.330 align:start position:0%
new type of subcraft Yes Should I only
read<00:31:03.000><c> some</c><00:31:03.240><c> code</c><00:31:03.539><c> on</c><00:31:03.840><c> Rust</c><00:31:04.380><c> and</c><00:31:04.620><c> that's</c><00:31:04.860><c> it</c><00:31:05.100><c> or</c>

00:31:05.330 --> 00:31:05.340 align:start position:0%
read some code on Rust and that's it or
 

00:31:05.340 --> 00:31:07.789 align:start position:0%
read some code on Rust and that's it or
something<00:31:05.820><c> else</c><00:31:06.120><c> so</c><00:31:06.960><c> it</c><00:31:07.200><c> is</c><00:31:07.320><c> not</c><00:31:07.500><c> the</c><00:31:07.679><c> same</c>

00:31:07.789 --> 00:31:07.799 align:start position:0%
something else so it is not the same
 

00:31:07.799 --> 00:31:09.169 align:start position:0%
something else so it is not the same
Paradigm<00:31:08.340><c> to</c><00:31:08.460><c> enable</c><00:31:08.640><c> parallelization</c>

00:31:09.169 --> 00:31:09.179 align:start position:0%
Paradigm to enable parallelization
 

00:31:09.179 --> 00:31:11.930 align:start position:0%
Paradigm to enable parallelization
Nation<00:31:09.600><c> you</c><00:31:10.380><c> need</c><00:31:10.500><c> to</c><00:31:10.740><c> distinguish</c><00:31:11.220><c> the</c><00:31:11.640><c> data</c>

00:31:11.930 --> 00:31:11.940 align:start position:0%
Nation you need to distinguish the data
 

00:31:11.940 --> 00:31:13.490 align:start position:0%
Nation you need to distinguish the data
dependencies<00:31:12.480><c> and</c><00:31:12.779><c> that</c><00:31:12.840><c> infers</c><00:31:13.140><c> the</c><00:31:13.320><c> number</c>

00:31:13.490 --> 00:31:13.500 align:start position:0%
dependencies and that infers the number
 

00:31:13.500 --> 00:31:15.110 align:start position:0%
dependencies and that infers the number
of<00:31:13.679><c> stage</c><00:31:13.980><c> of</c><00:31:14.159><c> parallelization</c><00:31:14.760><c> that</c><00:31:15.000><c> is</c>

00:31:15.110 --> 00:31:15.120 align:start position:0%
of stage of parallelization that is
 

00:31:15.120 --> 00:31:17.149 align:start position:0%
of stage of parallelization that is
needed<00:31:15.419><c> it's</c><00:31:16.020><c> not</c><00:31:16.260><c> easy</c><00:31:16.500><c> at</c><00:31:16.799><c> all</c><00:31:16.919><c> actually</c>

00:31:17.149 --> 00:31:17.159 align:start position:0%
needed it's not easy at all actually
 

00:31:17.159 --> 00:31:20.269 align:start position:0%
needed it's not easy at all actually
it's<00:31:17.580><c> pretty</c><00:31:18.299><c> crazy</c><00:31:18.899><c> to</c><00:31:19.380><c> try</c><00:31:19.559><c> to</c><00:31:19.740><c> parallelize</c>

00:31:20.269 --> 00:31:20.279 align:start position:0%
it's pretty crazy to try to parallelize
 

00:31:20.279 --> 00:31:22.190 align:start position:0%
it's pretty crazy to try to parallelize
the<00:31:20.520><c> subgraphs</c><00:31:21.000><c> we</c><00:31:21.120><c> try</c><00:31:21.299><c> that</c><00:31:21.480><c> that's</c><00:31:21.899><c> what</c>

00:31:22.190 --> 00:31:22.200 align:start position:0%
the subgraphs we try that that's what
 

00:31:22.200 --> 00:31:24.830 align:start position:0%
the subgraphs we try that that's what
yield<00:31:22.440><c> us</c><00:31:22.679><c> to</c><00:31:22.919><c> design</c><00:31:23.100><c> substreams</c><00:31:24.000><c> by</c><00:31:24.360><c> cutting</c>

00:31:24.830 --> 00:31:24.840 align:start position:0%
yield us to design substreams by cutting
 

00:31:24.840 --> 00:31:28.130 align:start position:0%
yield us to design substreams by cutting
you<00:31:25.320><c> know</c><00:31:25.380><c> uni</c><00:31:25.980><c> swap</c><00:31:26.279><c> stuff</c><00:31:26.580><c> so</c><00:31:27.240><c> you</c><00:31:27.659><c> will</c><00:31:27.779><c> want</c>

00:31:28.130 --> 00:31:28.140 align:start position:0%
you know uni swap stuff so you will want
 

00:31:28.140 --> 00:31:31.190 align:start position:0%
you know uni swap stuff so you will want
to<00:31:28.919><c> go</c><00:31:29.520><c> and</c><00:31:29.760><c> write</c><00:31:29.880><c> in</c><00:31:30.059><c> Rust</c><00:31:30.360><c> modules</c><00:31:30.840><c> and</c><00:31:31.080><c> it's</c>

00:31:31.190 --> 00:31:31.200 align:start position:0%
to go and write in Rust modules and it's
 

00:31:31.200 --> 00:31:32.990 align:start position:0%
to go and write in Rust modules and it's
a<00:31:31.440><c> different</c><00:31:31.559><c> Paradigm</c><00:31:32.220><c> so</c><00:31:32.399><c> it's</c><00:31:32.520><c> not</c><00:31:32.700><c> just</c><00:31:32.880><c> an</c>

00:31:32.990 --> 00:31:33.000 align:start position:0%
a different Paradigm so it's not just an
 

00:31:33.000 --> 00:31:35.810 align:start position:0%
a different Paradigm so it's not just an
easy<00:31:33.120><c> switch</c><00:31:33.419><c> I</c><00:31:33.899><c> admit</c><00:31:34.320><c> but</c><00:31:34.799><c> it</c><00:31:35.100><c> brings</c><00:31:35.399><c> us</c><00:31:35.520><c> to</c>

00:31:35.810 --> 00:31:35.820 align:start position:0%
easy switch I admit but it brings us to
 

00:31:35.820 --> 00:31:38.149 align:start position:0%
easy switch I admit but it brings us to
the<00:31:35.940><c> next</c><00:31:36.179><c> stage</c><00:31:36.720><c> an</c><00:31:37.020><c> evolution</c><00:31:37.380><c> you</c><00:31:37.740><c> know</c><00:31:37.860><c> of</c>

00:31:38.149 --> 00:31:38.159 align:start position:0%
the next stage an evolution you know of
 

00:31:38.159 --> 00:31:40.909 align:start position:0%
the next stage an evolution you know of
blockchain<00:31:38.700><c> index</c><00:31:39.179><c> thing</c><00:31:39.720><c> yeah</c><00:31:40.200><c> I</c><00:31:40.380><c> see</c><00:31:40.559><c> thanks</c>

00:31:40.909 --> 00:31:40.919 align:start position:0%
blockchain index thing yeah I see thanks
 

00:31:40.919 --> 00:31:44.210 align:start position:0%
blockchain index thing yeah I see thanks
uh<00:31:41.820><c> thank</c><00:31:42.120><c> you</c><00:31:42.240><c> so</c><00:31:42.539><c> much</c><00:31:42.659><c> Alexander</c>

00:31:44.210 --> 00:31:44.220 align:start position:0%
uh thank you so much Alexander
 

00:31:44.220 --> 00:31:47.120 align:start position:0%
uh thank you so much Alexander
my<00:31:44.820><c> pleasure</c>

