WEBVTT
Kind: captions
Language: en

00:00:00.530 --> 00:00:04.130 align:start position:0%
 
all<00:00:01.530><c> right</c><00:00:01.680><c> well</c><00:00:01.890><c> hello</c><00:00:02.159><c> everyone</c><00:00:02.460><c> I'm</c><00:00:03.240><c> Adam</c>

00:00:04.130 --> 00:00:04.140 align:start position:0%
all right well hello everyone I'm Adam
 

00:00:04.140 --> 00:00:07.120 align:start position:0%
all right well hello everyone I'm Adam
link<00:00:04.380><c> I'm</c><00:00:04.680><c> an</c><00:00:04.890><c> engineer</c><00:00:05.279><c> with</c><00:00:05.520><c> air</c><00:00:05.910><c> swap</c><00:00:06.299><c> and</c>

00:00:07.120 --> 00:00:07.130 align:start position:0%
link I'm an engineer with air swap and
 

00:00:07.130 --> 00:00:10.190 align:start position:0%
link I'm an engineer with air swap and
today<00:00:08.130><c> we</c><00:00:08.610><c> are</c><00:00:08.880><c> going</c><00:00:09.599><c> to</c><00:00:09.690><c> be</c><00:00:09.750><c> talking</c><00:00:10.110><c> about</c>

00:00:10.190 --> 00:00:10.200 align:start position:0%
today we are going to be talking about
 

00:00:10.200 --> 00:00:14.150 align:start position:0%
today we are going to be talking about
running<00:00:10.860><c> a</c><00:00:11.370><c> guest</c><00:00:12.120><c> node</c><00:00:12.300><c> cluster</c><00:00:12.540><c> in</c><00:00:13.160><c> in</c>

00:00:14.150 --> 00:00:14.160 align:start position:0%
running a guest node cluster in in
 

00:00:14.160 --> 00:00:18.170 align:start position:0%
running a guest node cluster in in
production<00:00:14.759><c> Netscape</c><00:00:16.490><c> so</c><00:00:17.490><c> as</c><00:00:17.640><c> was</c><00:00:17.789><c> alluded</c><00:00:18.000><c> to</c>

00:00:18.170 --> 00:00:18.180 align:start position:0%
production Netscape so as was alluded to
 

00:00:18.180 --> 00:00:20.330 align:start position:0%
production Netscape so as was alluded to
about<00:00:18.390><c> 15</c><00:00:18.779><c> minutes</c><00:00:19.109><c> ago</c><00:00:19.260><c> there</c><00:00:19.590><c> is</c><00:00:19.619><c> no</c><00:00:19.980><c> open</c>

00:00:20.330 --> 00:00:20.340 align:start position:0%
about 15 minutes ago there is no open
 

00:00:20.340 --> 00:00:22.519 align:start position:0%
about 15 minutes ago there is no open
source<00:00:20.609><c> way</c><00:00:20.789><c> to</c><00:00:20.850><c> run</c><00:00:21.090><c> a</c><00:00:21.119><c> guest</c><00:00:21.420><c> node</c><00:00:21.689><c> at</c><00:00:21.960><c> scale</c>

00:00:22.519 --> 00:00:22.529 align:start position:0%
source way to run a guest node at scale
 

00:00:22.529 --> 00:00:24.620 align:start position:0%
source way to run a guest node at scale
we<00:00:22.830><c> will</c><00:00:23.340><c> be</c><00:00:23.490><c> open</c><00:00:23.760><c> sourcing</c><00:00:24.150><c> our</c><00:00:24.240><c> production</c>

00:00:24.620 --> 00:00:24.630 align:start position:0%
we will be open sourcing our production
 

00:00:24.630 --> 00:00:30.009 align:start position:0%
we will be open sourcing our production
infrastructure<00:00:25.260><c> in</c><00:00:25.500><c> about</c><00:00:25.740><c> 20</c><00:00:26.010><c> minutes</c><00:00:26.420><c> yep</c>

00:00:30.009 --> 00:00:30.019 align:start position:0%
 
 

00:00:30.019 --> 00:00:33.350 align:start position:0%
 
so<00:00:31.019><c> this</c><00:00:31.470><c> is</c><00:00:31.650><c> the</c><00:00:31.969><c> work</c><00:00:32.969><c> about</c><00:00:33.149><c> three</c>

00:00:33.350 --> 00:00:33.360 align:start position:0%
so this is the work about three
 

00:00:33.360 --> 00:00:35.500 align:start position:0%
so this is the work about three
developers<00:00:33.780><c> over</c><00:00:34.260><c> about</c><00:00:34.410><c> two</c><00:00:34.710><c> months</c><00:00:35.040><c> to</c>

00:00:35.500 --> 00:00:35.510 align:start position:0%
developers over about two months to
 

00:00:35.510 --> 00:00:38.000 align:start position:0%
developers over about two months to
develop<00:00:36.510><c> the</c><00:00:36.600><c> infrastructure</c><00:00:37.020><c> with</c><00:00:37.530><c> a</c><00:00:37.559><c> lot</c><00:00:37.920><c> of</c>

00:00:38.000 --> 00:00:38.010 align:start position:0%
develop the infrastructure with a lot of
 

00:00:38.010 --> 00:00:39.350 align:start position:0%
develop the infrastructure with a lot of
the<00:00:38.070><c> pitfalls</c><00:00:38.430><c> that</c><00:00:38.520><c> we</c><00:00:38.670><c> experienced</c><00:00:39.180><c> along</c>

00:00:39.350 --> 00:00:39.360 align:start position:0%
the pitfalls that we experienced along
 

00:00:39.360 --> 00:00:41.360 align:start position:0%
the pitfalls that we experienced along
the<00:00:39.540><c> way</c><00:00:39.660><c> so</c><00:00:40.500><c> it's</c><00:00:40.649><c> at</c><00:00:40.739><c> least</c><00:00:40.770><c> something</c><00:00:41.100><c> for</c>

00:00:41.360 --> 00:00:41.370 align:start position:0%
the way so it's at least something for
 

00:00:41.370 --> 00:00:43.340 align:start position:0%
the way so it's at least something for
you<00:00:41.460><c> guys</c><00:00:41.550><c> to</c><00:00:41.670><c> reference</c><00:00:42.480><c> as</c><00:00:42.780><c> you're</c><00:00:42.989><c> building</c>

00:00:43.340 --> 00:00:43.350 align:start position:0%
you guys to reference as you're building
 

00:00:43.350 --> 00:00:46.190 align:start position:0%
you guys to reference as you're building
a<00:00:43.530><c> Gotha</c><00:00:43.800><c> node</c><00:00:43.980><c> cluster</c><00:00:44.190><c> or</c><00:00:44.610><c> perhaps</c><00:00:45.570><c> use</c><00:00:45.870><c> on</c>

00:00:46.190 --> 00:00:46.200 align:start position:0%
a Gotha node cluster or perhaps use on
 

00:00:46.200 --> 00:00:51.049 align:start position:0%
a Gotha node cluster or perhaps use on
your<00:00:46.350><c> own</c><00:00:48.170><c> so</c><00:00:49.170><c> at</c><00:00:49.500><c> the</c><00:00:49.649><c> core</c><00:00:49.829><c> this</c><00:00:50.039><c> adapts</c><00:00:50.730><c> need</c>

00:00:51.049 --> 00:00:51.059 align:start position:0%
your own so at the core this adapts need
 

00:00:51.059 --> 00:00:54.110 align:start position:0%
your own so at the core this adapts need
to<00:00:51.210><c> keep</c><00:00:51.420><c> state</c><00:00:51.750><c> right</c><00:00:52.590><c> when</c><00:00:53.039><c> you</c><00:00:53.219><c> run</c><00:00:53.430><c> a</c><00:00:53.730><c> DAP</c>

00:00:54.110 --> 00:00:54.120 align:start position:0%
to keep state right when you run a DAP
 

00:00:54.120 --> 00:00:55.369 align:start position:0%
to keep state right when you run a DAP
your<00:00:54.360><c> data</c><00:00:54.539><c> store</c><00:00:54.809><c> is</c><00:00:54.989><c> inherently</c>

00:00:55.369 --> 00:00:55.379 align:start position:0%
your data store is inherently
 

00:00:55.379 --> 00:00:57.950 align:start position:0%
your data store is inherently
distributed<00:00:56.090><c> and</c><00:00:57.090><c> distributed</c><00:00:57.600><c> datastore</c>

00:00:57.950 --> 00:00:57.960 align:start position:0%
distributed and distributed datastore
 

00:00:57.960 --> 00:00:59.540 align:start position:0%
distributed and distributed datastore
means<00:00:58.350><c> that</c><00:00:58.500><c> you</c><00:00:58.559><c> need</c><00:00:58.649><c> to</c><00:00:58.710><c> stay</c><00:00:58.890><c> in</c><00:00:59.070><c> sync</c><00:00:59.309><c> with</c>

00:00:59.540 --> 00:00:59.550 align:start position:0%
means that you need to stay in sync with
 

00:00:59.550 --> 00:01:01.520 align:start position:0%
means that you need to stay in sync with
your<00:00:59.670><c> peers</c><00:01:00.059><c> to</c><00:01:00.359><c> decide</c><00:01:00.989><c> what</c><00:01:01.170><c> the</c><00:01:01.260><c> correct</c>

00:01:01.520 --> 00:01:01.530 align:start position:0%
your peers to decide what the correct
 

00:01:01.530 --> 00:01:04.759 align:start position:0%
your peers to decide what the correct
view<00:01:01.680><c> of</c><00:01:01.800><c> that</c><00:01:01.920><c> data</c><00:01:02.300><c> actually</c><00:01:03.300><c> is</c><00:01:03.680><c> there's</c><00:01:04.680><c> a</c>

00:01:04.759 --> 00:01:04.769 align:start position:0%
view of that data actually is there's a
 

00:01:04.769 --> 00:01:06.710 align:start position:0%
view of that data actually is there's a
whole<00:01:04.890><c> host</c><00:01:05.129><c> of</c><00:01:05.309><c> issues</c><00:01:05.430><c> that</c><00:01:05.909><c> can</c><00:01:06.090><c> occur</c><00:01:06.210><c> if</c>

00:01:06.710 --> 00:01:06.720 align:start position:0%
whole host of issues that can occur if
 

00:01:06.720 --> 00:01:08.510 align:start position:0%
whole host of issues that can occur if
your<00:01:07.229><c> front</c><00:01:07.590><c> end</c><00:01:07.799><c> or</c><00:01:08.010><c> your</c><00:01:08.159><c> back</c><00:01:08.340><c> and</c>

00:01:08.510 --> 00:01:08.520 align:start position:0%
your front end or your back and
 

00:01:08.520 --> 00:01:11.060 align:start position:0%
your front end or your back and
application<00:01:09.090><c> does</c><00:01:09.840><c> not</c><00:01:09.869><c> properly</c><00:01:10.530><c> reflect</c>

00:01:11.060 --> 00:01:11.070 align:start position:0%
application does not properly reflect
 

00:01:11.070 --> 00:01:13.609 align:start position:0%
application does not properly reflect
what<00:01:11.850><c> the</c><00:01:12.000><c> consensus</c><00:01:12.600><c> of</c><00:01:12.840><c> the</c><00:01:12.990><c> database</c><00:01:13.320><c> state</c>

00:01:13.609 --> 00:01:13.619 align:start position:0%
what the consensus of the database state
 

00:01:13.619 --> 00:01:16.160 align:start position:0%
what the consensus of the database state
actually<00:01:13.860><c> is</c><00:01:14.430><c> and</c><00:01:14.820><c> there's</c><00:01:15.810><c> nothing</c><00:01:16.049><c> worse</c>

00:01:16.160 --> 00:01:16.170 align:start position:0%
actually is and there's nothing worse
 

00:01:16.170 --> 00:01:18.020 align:start position:0%
actually is and there's nothing worse
than<00:01:16.200><c> users</c><00:01:16.710><c> not</c><00:01:16.890><c> trusting</c><00:01:17.310><c> your</c><00:01:17.400><c> application</c>

00:01:18.020 --> 00:01:18.030 align:start position:0%
than users not trusting your application
 

00:01:18.030 --> 00:01:19.940 align:start position:0%
than users not trusting your application
because<00:01:18.689><c> they</c><00:01:19.049><c> can't</c><00:01:19.259><c> trust</c><00:01:19.500><c> the</c><00:01:19.619><c> underlying</c>

00:01:19.940 --> 00:01:19.950 align:start position:0%
because they can't trust the underlying
 

00:01:19.950 --> 00:01:22.760 align:start position:0%
because they can't trust the underlying
data<00:01:20.420><c> but</c><00:01:21.420><c> you</c><00:01:21.540><c> also</c><00:01:21.720><c> can't</c><00:01:22.020><c> sacrifice</c><00:01:22.259><c> the</c>

00:01:22.760 --> 00:01:22.770 align:start position:0%
data but you also can't sacrifice the
 

00:01:22.770 --> 00:01:25.130 align:start position:0%
data but you also can't sacrifice the
responsiveness<00:01:23.430><c> of</c><00:01:23.520><c> your</c><00:01:23.880><c> application</c><00:01:24.450><c> when</c>

00:01:25.130 --> 00:01:25.140 align:start position:0%
responsiveness of your application when
 

00:01:25.140 --> 00:01:26.359 align:start position:0%
responsiveness of your application when
you're<00:01:25.290><c> waiting</c><00:01:25.619><c> on</c><00:01:25.710><c> an</c><00:01:25.890><c> eventually</c>

00:01:26.359 --> 00:01:26.369 align:start position:0%
you're waiting on an eventually
 

00:01:26.369 --> 00:01:29.270 align:start position:0%
you're waiting on an eventually
consistent<00:01:26.939><c> database</c><00:01:28.040><c> users</c><00:01:29.040><c> on</c><00:01:29.189><c> the</c>

00:01:29.270 --> 00:01:29.280 align:start position:0%
consistent database users on the
 

00:01:29.280 --> 00:01:30.980 align:start position:0%
consistent database users on the
Internet<00:01:29.610><c> are</c><00:01:29.759><c> generally</c><00:01:30.150><c> not</c><00:01:30.270><c> accustomed</c><00:01:30.900><c> to</c>

00:01:30.980 --> 00:01:30.990 align:start position:0%
Internet are generally not accustomed to
 

00:01:30.990 --> 00:01:32.960 align:start position:0%
Internet are generally not accustomed to
waiting<00:01:31.140><c> five</c><00:01:31.500><c> minutes</c><00:01:31.920><c> to</c><00:01:32.159><c> do</c><00:01:32.310><c> a</c><00:01:32.340><c> state</c>

00:01:32.960 --> 00:01:32.970 align:start position:0%
waiting five minutes to do a state
 

00:01:32.970 --> 00:01:35.539 align:start position:0%
waiting five minutes to do a state
change<00:01:33.180><c> operation</c><00:01:33.840><c> and</c><00:01:34.290><c> while</c><00:01:35.130><c> we</c><00:01:35.280><c> in</c><00:01:35.430><c> the</c>

00:01:35.539 --> 00:01:35.549 align:start position:0%
change operation and while we in the
 

00:01:35.549 --> 00:01:37.399 align:start position:0%
change operation and while we in the
industry<00:01:35.670><c> may</c><00:01:36.060><c> be</c><00:01:36.119><c> okay</c><00:01:36.540><c> with</c><00:01:36.750><c> waiting</c><00:01:36.960><c> for</c>

00:01:37.399 --> 00:01:37.409 align:start position:0%
industry may be okay with waiting for
 

00:01:37.409 --> 00:01:39.319 align:start position:0%
industry may be okay with waiting for
transactions<00:01:38.040><c> to</c><00:01:38.220><c> settle</c><00:01:38.579><c> if</c><00:01:38.759><c> we</c><00:01:39.119><c> want</c><00:01:39.299><c> to</c>

00:01:39.319 --> 00:01:39.329 align:start position:0%
transactions to settle if we want to
 

00:01:39.329 --> 00:01:43.609 align:start position:0%
transactions to settle if we want to
actually<00:01:39.810><c> get</c><00:01:39.960><c> mass</c><00:01:40.170><c> adoption</c><00:01:40.530><c> we</c><00:01:41.490><c> need</c><00:01:41.759><c> to</c><00:01:42.619><c> we</c>

00:01:43.609 --> 00:01:43.619 align:start position:0%
actually get mass adoption we need to we
 

00:01:43.619 --> 00:01:45.560 align:start position:0%
actually get mass adoption we need to we
do<00:01:43.770><c> understand</c><00:01:44.579><c> the</c><00:01:44.670><c> general</c><00:01:44.939><c> public</c><00:01:45.210><c> wants</c>

00:01:45.560 --> 00:01:45.570 align:start position:0%
do understand the general public wants
 

00:01:45.570 --> 00:01:47.780 align:start position:0%
do understand the general public wants
which<00:01:45.930><c> is</c><00:01:46.200><c> a</c><00:01:46.229><c> lack</c><00:01:46.680><c> of</c><00:01:46.710><c> leg</c><00:01:47.159><c> when</c><00:01:47.640><c> they're</c>

00:01:47.780 --> 00:01:47.790 align:start position:0%
which is a lack of leg when they're
 

00:01:47.790 --> 00:01:52.190 align:start position:0%
which is a lack of leg when they're
doing<00:01:48.149><c> a</c><00:01:48.390><c> state</c><00:01:48.659><c> change</c><00:01:48.840><c> operation</c><00:01:51.200><c> there's</c>

00:01:52.190 --> 00:01:52.200 align:start position:0%
doing a state change operation there's
 

00:01:52.200 --> 00:01:54.499 align:start position:0%
doing a state change operation there's
two<00:01:52.350><c> types</c><00:01:52.590><c> of</c><00:01:52.770><c> data</c><00:01:53.369><c> that</c><00:01:53.640><c> you</c><00:01:53.790><c> need</c><00:01:54.000><c> for</c>

00:01:54.499 --> 00:01:54.509 align:start position:0%
two types of data that you need for
 

00:01:54.509 --> 00:01:57.819 align:start position:0%
two types of data that you need for
state<00:01:54.840><c> management</c><00:01:55.399><c> the</c><00:01:56.399><c> first</c><00:01:57.000><c> type</c><00:01:57.329><c> is</c><00:01:57.630><c> the</c>

00:01:57.819 --> 00:01:57.829 align:start position:0%
state management the first type is the
 

00:01:57.829 --> 00:02:00.800 align:start position:0%
state management the first type is the
balances<00:01:58.829><c> on</c><00:01:59.189><c> your</c><00:01:59.610><c> accounts</c><00:02:00.090><c> right</c><00:02:00.360><c> this</c><00:02:00.600><c> is</c>

00:02:00.800 --> 00:02:00.810 align:start position:0%
balances on your accounts right this is
 

00:02:00.810 --> 00:02:02.990 align:start position:0%
balances on your accounts right this is
the<00:02:01.020><c> eath</c><00:02:01.290><c> that</c><00:02:01.710><c> you</c><00:02:01.890><c> hold</c><00:02:02.130><c> in</c><00:02:02.430><c> your</c><00:02:02.579><c> wallet</c>

00:02:02.990 --> 00:02:03.000 align:start position:0%
the eath that you hold in your wallet
 

00:02:03.000 --> 00:02:06.380 align:start position:0%
the eath that you hold in your wallet
and<00:02:03.409><c> for</c><00:02:04.409><c> many</c><00:02:04.560><c> depths</c><00:02:05.070><c> this</c><00:02:05.610><c> is</c><00:02:05.820><c> a</c><00:02:05.850><c> critical</c>

00:02:06.380 --> 00:02:06.390 align:start position:0%
and for many depths this is a critical
 

00:02:06.390 --> 00:02:08.180 align:start position:0%
and for many depths this is a critical
piece<00:02:06.540><c> of</c><00:02:06.780><c> data</c><00:02:06.960><c> in</c><00:02:07.290><c> the</c><00:02:07.439><c> user</c><00:02:07.649><c> onboarding</c>

00:02:08.180 --> 00:02:08.190 align:start position:0%
piece of data in the user onboarding
 

00:02:08.190 --> 00:02:10.520 align:start position:0%
piece of data in the user onboarding
process<00:02:08.640><c> because</c><00:02:09.479><c> they</c><00:02:09.690><c> may</c><00:02:09.840><c> need</c><00:02:10.050><c> to</c><00:02:10.229><c> swap</c>

00:02:10.520 --> 00:02:10.530 align:start position:0%
process because they may need to swap
 

00:02:10.530 --> 00:02:12.680 align:start position:0%
process because they may need to swap
their<00:02:10.770><c> eath</c><00:02:10.950><c> for</c><00:02:11.520><c> your</c><00:02:11.760><c> proprietary</c><00:02:12.120><c> DAP</c>

00:02:12.680 --> 00:02:12.690 align:start position:0%
their eath for your proprietary DAP
 

00:02:12.690 --> 00:02:13.380 align:start position:0%
their eath for your proprietary DAP
token

00:02:13.380 --> 00:02:13.390 align:start position:0%
token
 

00:02:13.390 --> 00:02:16.110 align:start position:0%
token
in<00:02:13.720><c> order</c><00:02:14.020><c> to</c><00:02:14.230><c> use</c><00:02:14.620><c> the</c><00:02:15.400><c> product</c><00:02:15.940><c> that</c><00:02:16.000><c> you're</c>

00:02:16.110 --> 00:02:16.120 align:start position:0%
in order to use the product that you're
 

00:02:16.120 --> 00:02:20.100 align:start position:0%
in order to use the product that you're
creating<00:02:17.040><c> the</c><00:02:18.040><c> second</c><00:02:18.970><c> type</c><00:02:19.480><c> of</c><00:02:19.510><c> information</c>

00:02:20.100 --> 00:02:20.110 align:start position:0%
creating the second type of information
 

00:02:20.110 --> 00:02:22.290 align:start position:0%
creating the second type of information
is<00:02:20.350><c> the</c><00:02:20.380><c> the</c><00:02:20.890><c> state</c><00:02:21.130><c> tree</c><00:02:21.400><c> this</c><00:02:22.060><c> is</c>

00:02:22.290 --> 00:02:22.300 align:start position:0%
is the the state tree this is
 

00:02:22.300 --> 00:02:23.820 align:start position:0%
is the the state tree this is
information<00:02:22.570><c> about</c><00:02:22.930><c> events</c><00:02:23.200><c> within</c><00:02:23.500><c> your</c>

00:02:23.820 --> 00:02:23.830 align:start position:0%
information about events within your
 

00:02:23.830 --> 00:02:26.220 align:start position:0%
information about events within your
smart<00:02:24.100><c> contract</c><00:02:24.640><c> this</c><00:02:25.360><c> is</c><00:02:25.540><c> things</c><00:02:25.780><c> like</c><00:02:25.900><c> the</c>

00:02:26.220 --> 00:02:26.230 align:start position:0%
smart contract this is things like the
 

00:02:26.230 --> 00:02:28.650 align:start position:0%
smart contract this is things like the
users<00:02:26.500><c> token</c><00:02:26.890><c> balance</c><00:02:27.310><c> smart</c><00:02:28.150><c> contract</c>

00:02:28.650 --> 00:02:28.660 align:start position:0%
users token balance smart contract
 

00:02:28.660 --> 00:02:31.140 align:start position:0%
users token balance smart contract
function<00:02:29.020><c> executions</c><00:02:29.770><c> and</c><00:02:30.070><c> token</c><00:02:30.850><c> balance</c>

00:02:31.140 --> 00:02:31.150 align:start position:0%
function executions and token balance
 

00:02:31.150 --> 00:02:31.950 align:start position:0%
function executions and token balance
transfers

00:02:31.950 --> 00:02:31.960 align:start position:0%
transfers
 

00:02:31.960 --> 00:02:34.530 align:start position:0%
transfers
however<00:02:32.950><c> contract</c><00:02:33.490><c> events</c><00:02:33.970><c> which</c><00:02:34.210><c> is</c><00:02:34.390><c> the</c>

00:02:34.530 --> 00:02:34.540 align:start position:0%
however contract events which is the
 

00:02:34.540 --> 00:02:36.300 align:start position:0%
however contract events which is the
state<00:02:34.870><c> of</c><00:02:35.020><c> your</c><00:02:35.170><c> smart</c><00:02:35.530><c> contract</c><00:02:36.100><c> are</c>

00:02:36.300 --> 00:02:36.310 align:start position:0%
state of your smart contract are
 

00:02:36.310 --> 00:02:39.270 align:start position:0%
state of your smart contract are
actually<00:02:37.300><c> implicit</c><00:02:37.660><c> and</c><00:02:37.960><c> computed</c><00:02:38.890><c> based</c><00:02:39.100><c> on</c>

00:02:39.270 --> 00:02:39.280 align:start position:0%
actually implicit and computed based on
 

00:02:39.280 --> 00:02:41.730 align:start position:0%
actually implicit and computed based on
the<00:02:39.370><c> data</c><00:02:39.550><c> in</c><00:02:39.760><c> the</c><00:02:39.940><c> blockchain</c><00:02:40.320><c> so</c><00:02:41.320><c> this</c><00:02:41.530><c> means</c>

00:02:41.730 --> 00:02:41.740 align:start position:0%
the data in the blockchain so this means
 

00:02:41.740 --> 00:02:43.680 align:start position:0%
the data in the blockchain so this means
that<00:02:41.920><c> your</c><00:02:42.070><c> DAP</c><00:02:42.280><c> needs</c><00:02:42.700><c> processing</c><00:02:43.480><c> power</c>

00:02:43.680 --> 00:02:43.690 align:start position:0%
that your DAP needs processing power
 

00:02:43.690 --> 00:02:46.170 align:start position:0%
that your DAP needs processing power
behind<00:02:44.080><c> it</c><00:02:44.530><c> when</c><00:02:45.490><c> you're</c><00:02:45.610><c> running</c><00:02:45.790><c> your</c>

00:02:46.170 --> 00:02:46.180 align:start position:0%
behind it when you're running your
 

00:02:46.180 --> 00:02:48.660 align:start position:0%
behind it when you're running your
ethereum<00:02:46.660><c> notes</c><00:02:47.100><c> if</c><00:02:48.100><c> you're</c><00:02:48.220><c> out</c><00:02:48.310><c> of</c><00:02:48.459><c> sync</c>

00:02:48.660 --> 00:02:48.670 align:start position:0%
ethereum notes if you're out of sync
 

00:02:48.670 --> 00:02:50.310 align:start position:0%
ethereum notes if you're out of sync
with<00:02:48.730><c> your</c><00:02:48.970><c> nodes</c><00:02:49.209><c> obviously</c><00:02:50.170><c> you're</c>

00:02:50.310 --> 00:02:50.320 align:start position:0%
with your nodes obviously you're
 

00:02:50.320 --> 00:02:51.750 align:start position:0%
with your nodes obviously you're
misrepresenting<00:02:50.530><c> the</c><00:02:51.130><c> state</c><00:02:51.340><c> of</c><00:02:51.459><c> the</c><00:02:51.550><c> world</c>

00:02:51.750 --> 00:02:51.760 align:start position:0%
misrepresenting the state of the world
 

00:02:51.760 --> 00:02:54.150 align:start position:0%
misrepresenting the state of the world
and<00:02:52.150><c> that's</c><00:02:52.600><c> a</c><00:02:52.750><c> dangerous</c><00:02:53.110><c> place</c><00:02:53.200><c> to</c><00:02:53.380><c> be</c><00:02:53.590><c> in</c><00:02:53.920><c> as</c>

00:02:54.150 --> 00:02:54.160 align:start position:0%
and that's a dangerous place to be in as
 

00:02:54.160 --> 00:02:59.010 align:start position:0%
and that's a dangerous place to be in as
an<00:02:54.700><c> application</c><00:02:57.209><c> so</c><00:02:58.209><c> with</c><00:02:58.540><c> the</c><00:02:58.630><c> importance</c><00:02:58.959><c> of</c>

00:02:59.010 --> 00:02:59.020 align:start position:0%
an application so with the importance of
 

00:02:59.020 --> 00:03:01.080 align:start position:0%
an application so with the importance of
staying<00:02:59.230><c> in</c><00:02:59.380><c> sync</c><00:02:59.800><c> now</c><00:03:00.040><c> for</c><00:03:00.370><c> your</c><00:03:00.489><c> DAP</c><00:03:00.730><c> kind</c><00:03:01.030><c> of</c>

00:03:01.080 --> 00:03:01.090 align:start position:0%
staying in sync now for your DAP kind of
 

00:03:01.090 --> 00:03:03.080 align:start position:0%
staying in sync now for your DAP kind of
resting<00:03:01.420><c> on</c><00:03:01.540><c> your</c><00:03:01.720><c> shoulders</c><00:03:02.140><c> as</c><00:03:02.320><c> a</c><00:03:02.350><c> developer</c>

00:03:03.080 --> 00:03:03.090 align:start position:0%
resting on your shoulders as a developer
 

00:03:03.090 --> 00:03:05.430 align:start position:0%
resting on your shoulders as a developer
some<00:03:04.090><c> of</c><00:03:04.180><c> you</c><00:03:04.270><c> guys</c><00:03:04.390><c> and</c><00:03:04.780><c> the</c><00:03:04.959><c> industry</c><00:03:05.320><c> as</c><00:03:05.410><c> a</c>

00:03:05.430 --> 00:03:05.440 align:start position:0%
some of you guys and the industry as a
 

00:03:05.440 --> 00:03:06.930 align:start position:0%
some of you guys and the industry as a
whole<00:03:05.530><c> we've</c><00:03:05.980><c> wondered</c><00:03:06.220><c> can</c><00:03:06.580><c> we</c><00:03:06.730><c> just</c>

00:03:06.930 --> 00:03:06.940 align:start position:0%
whole we've wondered can we just
 

00:03:06.940 --> 00:03:08.820 align:start position:0%
whole we've wondered can we just
outsource<00:03:07.420><c> this</c><00:03:07.690><c> and</c><00:03:07.900><c> pay</c><00:03:08.050><c> somebody</c><00:03:08.350><c> else</c><00:03:08.650><c> to</c>

00:03:08.820 --> 00:03:08.830 align:start position:0%
outsource this and pay somebody else to
 

00:03:08.830 --> 00:03:11.490 align:start position:0%
outsource this and pay somebody else to
do<00:03:08.980><c> it</c><00:03:09.160><c> and</c><00:03:09.570><c> the</c><00:03:10.570><c> answer</c><00:03:10.840><c> is</c><00:03:10.900><c> of</c><00:03:11.050><c> course</c><00:03:11.080><c> you</c>

00:03:11.490 --> 00:03:11.500 align:start position:0%
do it and the answer is of course you
 

00:03:11.500 --> 00:03:13.740 align:start position:0%
do it and the answer is of course you
can<00:03:11.820><c> there's</c><00:03:12.820><c> many</c><00:03:13.030><c> companies</c><00:03:13.270><c> out</c><00:03:13.690><c> there</c>

00:03:13.740 --> 00:03:13.750 align:start position:0%
can there's many companies out there
 

00:03:13.750 --> 00:03:16.140 align:start position:0%
can there's many companies out there
that<00:03:14.110><c> actually</c><00:03:14.230><c> offer</c><00:03:14.590><c> services</c><00:03:15.310><c> where</c><00:03:16.000><c> they</c>

00:03:16.140 --> 00:03:16.150 align:start position:0%
that actually offer services where they
 

00:03:16.150 --> 00:03:18.960 align:start position:0%
that actually offer services where they
will<00:03:16.300><c> run</c><00:03:16.540><c> nodes</c><00:03:16.900><c> for</c><00:03:17.290><c> you</c><00:03:17.500><c> not</c><00:03:18.400><c> all</c><00:03:18.640><c> of</c><00:03:18.820><c> them</c>

00:03:18.960 --> 00:03:18.970 align:start position:0%
will run nodes for you not all of them
 

00:03:18.970 --> 00:03:22.050 align:start position:0%
will run nodes for you not all of them
are<00:03:19.000><c> geared</c><00:03:19.630><c> towards</c><00:03:20.140><c> OLTP</c><00:03:20.950><c> processing</c><00:03:21.670><c> that</c>

00:03:22.050 --> 00:03:22.060 align:start position:0%
are geared towards OLTP processing that
 

00:03:22.060 --> 00:03:24.030 align:start position:0%
are geared towards OLTP processing that
adapt<00:03:22.450><c> needs</c><00:03:22.840><c> some</c><00:03:23.590><c> of</c><00:03:23.680><c> them</c><00:03:23.799><c> are</c><00:03:23.920><c> more</c>

00:03:24.030 --> 00:03:24.040 align:start position:0%
adapt needs some of them are more
 

00:03:24.040 --> 00:03:26.100 align:start position:0%
adapt needs some of them are more
analytics<00:03:24.670><c> based</c><00:03:24.910><c> you</c><00:03:25.299><c> know</c><00:03:25.330><c> Google</c><00:03:25.720><c> recently</c>

00:03:26.100 --> 00:03:26.110 align:start position:0%
analytics based you know Google recently
 

00:03:26.110 --> 00:03:28.920 align:start position:0%
analytics based you know Google recently
came<00:03:26.260><c> out</c><00:03:26.320><c> with</c><00:03:26.440><c> a</c><00:03:26.590><c> product</c><00:03:26.950><c> like</c><00:03:27.100><c> this</c><00:03:27.930><c> but</c>

00:03:28.920 --> 00:03:28.930 align:start position:0%
came out with a product like this but
 

00:03:28.930 --> 00:03:30.600 align:start position:0%
came out with a product like this but
the<00:03:29.140><c> question</c><00:03:29.739><c> we</c><00:03:29.830><c> need</c><00:03:29.890><c> to</c><00:03:29.950><c> ask</c><00:03:30.040><c> ourselves</c><00:03:30.280><c> as</c>

00:03:30.600 --> 00:03:30.610 align:start position:0%
the question we need to ask ourselves as
 

00:03:30.610 --> 00:03:33.240 align:start position:0%
the question we need to ask ourselves as
an<00:03:30.730><c> industry</c><00:03:30.970><c> is</c><00:03:31.360><c> do</c><00:03:32.350><c> we</c><00:03:32.590><c> want</c><00:03:32.890><c> to</c><00:03:33.100><c> move</c>

00:03:33.240 --> 00:03:33.250 align:start position:0%
an industry is do we want to move
 

00:03:33.250 --> 00:03:35.640 align:start position:0%
an industry is do we want to move
towards<00:03:33.549><c> the</c><00:03:33.760><c> MasterCard</c><00:03:34.269><c> Visa</c><00:03:34.450><c> model</c><00:03:34.959><c> right</c>

00:03:35.640 --> 00:03:35.650 align:start position:0%
towards the MasterCard Visa model right
 

00:03:35.650 --> 00:03:37.770 align:start position:0%
towards the MasterCard Visa model right
so<00:03:36.040><c> right</c><00:03:36.310><c> now</c><00:03:36.519><c> with</c><00:03:36.730><c> credit</c><00:03:37.090><c> card</c><00:03:37.269><c> processing</c>

00:03:37.770 --> 00:03:37.780 align:start position:0%
so right now with credit card processing
 

00:03:37.780 --> 00:03:39.390 align:start position:0%
so right now with credit card processing
there's<00:03:38.410><c> only</c><00:03:38.530><c> a</c><00:03:38.620><c> few</c><00:03:38.799><c> companies</c><00:03:39.100><c> in</c><00:03:39.220><c> the</c>

00:03:39.390 --> 00:03:39.400 align:start position:0%
there's only a few companies in the
 

00:03:39.400 --> 00:03:41.210 align:start position:0%
there's only a few companies in the
world<00:03:39.549><c> that</c><00:03:39.790><c> have</c><00:03:40.060><c> the</c><00:03:40.180><c> technical</c><00:03:40.510><c> expertise</c>

00:03:41.210 --> 00:03:41.220 align:start position:0%
world that have the technical expertise
 

00:03:41.220 --> 00:03:44.130 align:start position:0%
world that have the technical expertise
software<00:03:42.220><c> and</c><00:03:42.430><c> hardware</c><00:03:42.640><c> to</c><00:03:43.150><c> actually</c><00:03:43.930><c> keep</c>

00:03:44.130 --> 00:03:44.140 align:start position:0%
software and hardware to actually keep
 

00:03:44.140 --> 00:03:46.020 align:start position:0%
software and hardware to actually keep
up<00:03:44.350><c> with</c><00:03:44.530><c> the</c><00:03:44.680><c> number</c><00:03:45.040><c> of</c><00:03:45.280><c> transactions</c><00:03:45.910><c> that</c>

00:03:46.020 --> 00:03:46.030 align:start position:0%
up with the number of transactions that
 

00:03:46.030 --> 00:03:49.110 align:start position:0%
up with the number of transactions that
happen<00:03:46.360><c> on</c><00:03:46.450><c> credit</c><00:03:46.720><c> cards</c><00:03:46.959><c> and</c><00:03:47.230><c> as</c><00:03:48.190><c> we</c><00:03:48.610><c> move</c>

00:03:49.110 --> 00:03:49.120 align:start position:0%
happen on credit cards and as we move
 

00:03:49.120 --> 00:03:51.090 align:start position:0%
happen on credit cards and as we move
state<00:03:49.660><c> management</c><00:03:50.110><c> towards</c><00:03:50.620><c> centralized</c>

00:03:51.090 --> 00:03:51.100 align:start position:0%
state management towards centralized
 

00:03:51.100 --> 00:03:53.580 align:start position:0%
state management towards centralized
parties<00:03:51.610><c> we</c><00:03:52.570><c> move</c><00:03:52.810><c> the</c><00:03:52.959><c> entire</c><00:03:53.260><c> industry</c>

00:03:53.580 --> 00:03:53.590 align:start position:0%
parties we move the entire industry
 

00:03:53.590 --> 00:03:55.770 align:start position:0%
parties we move the entire industry
towards<00:03:54.070><c> that</c><00:03:54.250><c> model</c><00:03:54.610><c> again</c><00:03:54.880><c> and</c><00:03:55.120><c> the</c>

00:03:55.770 --> 00:03:55.780 align:start position:0%
towards that model again and the
 

00:03:55.780 --> 00:03:57.990 align:start position:0%
towards that model again and the
question<00:03:56.140><c> is</c><00:03:56.290><c> do</c><00:03:56.769><c> we</c><00:03:56.830><c> want</c><00:03:56.950><c> to</c><00:03:57.310><c> do</c><00:03:57.459><c> that</c><00:03:57.610><c> do</c><00:03:57.880><c> we</c>

00:03:57.990 --> 00:03:58.000 align:start position:0%
question is do we want to do that do we
 

00:03:58.000 --> 00:04:02.820 align:start position:0%
question is do we want to do that do we
actually<00:03:58.330><c> want</c><00:03:58.480><c> to</c><00:03:58.510><c> be</c><00:03:58.600><c> there</c><00:04:00.690><c> the</c><00:04:01.830><c> solution</c>

00:04:02.820 --> 00:04:02.830 align:start position:0%
actually want to be there the solution
 

00:04:02.830 --> 00:04:05.280 align:start position:0%
actually want to be there the solution
in<00:04:03.130><c> our</c><00:04:03.580><c> mind</c><00:04:03.850><c> to</c><00:04:04.030><c> combat</c><00:04:04.450><c> the</c><00:04:04.570><c> centralization</c>

00:04:05.280 --> 00:04:05.290 align:start position:0%
in our mind to combat the centralization
 

00:04:05.290 --> 00:04:09.360 align:start position:0%
in our mind to combat the centralization
is<00:04:05.500><c> having</c><00:04:06.340><c> people</c><00:04:06.549><c> run</c><00:04:07.420><c> their</c><00:04:07.630><c> own</c><00:04:07.660><c> nodes</c><00:04:08.370><c> but</c>

00:04:09.360 --> 00:04:09.370 align:start position:0%
is having people run their own nodes but
 

00:04:09.370 --> 00:04:12.470 align:start position:0%
is having people run their own nodes but
running<00:04:09.970><c> an</c><00:04:10.180><c> ethereum</c><00:04:10.540><c> node</c><00:04:10.780><c> at</c><00:04:11.110><c> scale</c><00:04:11.950><c> in</c>

00:04:12.470 --> 00:04:12.480 align:start position:0%
running an ethereum node at scale in
 

00:04:12.480 --> 00:04:15.390 align:start position:0%
running an ethereum node at scale in
production<00:04:13.480><c> is</c><00:04:13.750><c> really</c><00:04:14.500><c> not</c><00:04:14.650><c> well</c><00:04:14.890><c> documented</c>

00:04:15.390 --> 00:04:15.400 align:start position:0%
production is really not well documented
 

00:04:15.400 --> 00:04:19.560 align:start position:0%
production is really not well documented
online<00:04:15.970><c> right</c><00:04:16.660><c> now</c><00:04:17.549><c> there's</c><00:04:18.549><c> also</c><00:04:18.910><c> costs</c>

00:04:19.560 --> 00:04:19.570 align:start position:0%
online right now there's also costs
 

00:04:19.570 --> 00:04:21.740 align:start position:0%
online right now there's also costs
associated<00:04:20.320><c> with</c><00:04:20.560><c> running</c><00:04:20.709><c> your</c><00:04:20.979><c> own</c><00:04:21.010><c> notes</c>

00:04:21.740 --> 00:04:21.750 align:start position:0%
associated with running your own notes
 

00:04:21.750 --> 00:04:25.500 align:start position:0%
associated with running your own notes
not<00:04:22.750><c> well-documented</c><00:04:23.320><c> either</c><00:04:24.120><c> so</c><00:04:25.120><c> not</c><00:04:25.390><c> only</c>

00:04:25.500 --> 00:04:25.510 align:start position:0%
not well-documented either so not only
 

00:04:25.510 --> 00:04:27.090 align:start position:0%
not well-documented either so not only
do<00:04:25.660><c> you</c><00:04:25.720><c> have</c><00:04:25.780><c> the</c><00:04:25.960><c> overhead</c><00:04:26.320><c> costs</c><00:04:26.770><c> of</c>

00:04:27.090 --> 00:04:27.100 align:start position:0%
do you have the overhead costs of
 

00:04:27.100 --> 00:04:28.710 align:start position:0%
do you have the overhead costs of
the<00:04:27.160><c> actual</c><00:04:27.550><c> infrastructure</c><00:04:28.090><c> for</c><00:04:28.390><c> running</c>

00:04:28.710 --> 00:04:28.720 align:start position:0%
the actual infrastructure for running
 

00:04:28.720 --> 00:04:31.200 align:start position:0%
the actual infrastructure for running
your<00:04:28.870><c> own</c><00:04:28.900><c> node</c><00:04:29.290><c> but</c><00:04:30.040><c> you</c><00:04:30.130><c> also</c><00:04:30.310><c> have</c><00:04:30.580><c> costs</c><00:04:31.060><c> on</c>

00:04:31.200 --> 00:04:31.210 align:start position:0%
your own node but you also have costs on
 

00:04:31.210 --> 00:04:33.300 align:start position:0%
your own node but you also have costs on
your<00:04:31.360><c> team</c><00:04:31.660><c> to</c><00:04:31.990><c> create</c><00:04:32.260><c> the</c><00:04:32.620><c> infrastructure</c>

00:04:33.300 --> 00:04:33.310 align:start position:0%
your team to create the infrastructure
 

00:04:33.310 --> 00:04:36.360 align:start position:0%
your team to create the infrastructure
and<00:04:33.520><c> create</c><00:04:34.270><c> the</c><00:04:34.570><c> software</c><00:04:35.410><c> that</c><00:04:36.130><c> manages</c>

00:04:36.360 --> 00:04:36.370 align:start position:0%
and create the software that manages
 

00:04:36.370 --> 00:04:38.070 align:start position:0%
and create the software that manages
your<00:04:36.700><c> nodes</c><00:04:37.030><c> make</c><00:04:37.330><c> sure</c><00:04:37.540><c> that</c><00:04:37.720><c> your</c><00:04:37.900><c> nodes</c>

00:04:38.070 --> 00:04:38.080 align:start position:0%
your nodes make sure that your nodes
 

00:04:38.080 --> 00:04:41.790 align:start position:0%
your nodes make sure that your nodes
stay<00:04:38.350><c> in</c><00:04:38.500><c> sync</c><00:04:39.480><c> there's</c><00:04:40.480><c> a</c><00:04:40.720><c> lot</c><00:04:41.110><c> of</c><00:04:41.260><c> resources</c>

00:04:41.790 --> 00:04:41.800 align:start position:0%
stay in sync there's a lot of resources
 

00:04:41.800 --> 00:04:43.620 align:start position:0%
stay in sync there's a lot of resources
online<00:04:41.980><c> pertaining</c><00:04:42.580><c> to</c><00:04:42.700><c> optimizing</c><00:04:43.240><c> nodes</c>

00:04:43.620 --> 00:04:43.630 align:start position:0%
online pertaining to optimizing nodes
 

00:04:43.630 --> 00:04:46.140 align:start position:0%
online pertaining to optimizing nodes
for<00:04:44.020><c> mining</c><00:04:44.700><c> but</c><00:04:45.700><c> there's</c><00:04:45.850><c> not</c><00:04:46.000><c> many</c>

00:04:46.140 --> 00:04:46.150 align:start position:0%
for mining but there's not many
 

00:04:46.150 --> 00:04:50.490 align:start position:0%
for mining but there's not many
resources<00:04:46.950><c> optimized</c><00:04:47.950><c> for</c><00:04:48.940><c> reading</c><00:04:49.510><c> and</c><00:04:49.810><c> read</c>

00:04:50.490 --> 00:04:50.500 align:start position:0%
resources optimized for reading and read
 

00:04:50.500 --> 00:04:55.350 align:start position:0%
resources optimized for reading and read
heavy<00:04:50.800><c> workloads</c><00:04:51.430><c> that</c><00:04:52.000><c> adapt</c><00:04:52.540><c> needs</c><00:04:54.060><c> it</c><00:04:55.060><c> gets</c>

00:04:55.350 --> 00:04:55.360 align:start position:0%
heavy workloads that adapt needs it gets
 

00:04:55.360 --> 00:04:56.820 align:start position:0%
heavy workloads that adapt needs it gets
even<00:04:55.630><c> worse</c><00:04:55.660><c> when</c><00:04:56.020><c> you</c><00:04:56.200><c> start</c><00:04:56.410><c> going</c><00:04:56.530><c> into</c>

00:04:56.820 --> 00:04:56.830 align:start position:0%
even worse when you start going into
 

00:04:56.830 --> 00:04:59.550 align:start position:0%
even worse when you start going into
data<00:04:57.130><c> querying</c><00:04:57.730><c> and</c><00:04:58.150><c> trying</c><00:04:58.780><c> to</c><00:04:58.960><c> understand</c>

00:04:59.550 --> 00:04:59.560 align:start position:0%
data querying and trying to understand
 

00:04:59.560 --> 00:05:02.700 align:start position:0%
data querying and trying to understand
how<00:04:59.650><c> you</c><00:04:59.830><c> process</c><00:05:00.310><c> this</c><00:05:00.790><c> data</c><00:05:01.320><c> there's</c><00:05:02.320><c> very</c>

00:05:02.700 --> 00:05:02.710 align:start position:0%
how you process this data there's very
 

00:05:02.710 --> 00:05:05.040 align:start position:0%
how you process this data there's very
few<00:05:02.830><c> resources</c><00:05:03.760><c> online</c><00:05:03.940><c> for</c><00:05:04.180><c> data</c><00:05:04.570><c> querying</c>

00:05:05.040 --> 00:05:05.050 align:start position:0%
few resources online for data querying
 

00:05:05.050 --> 00:05:07.470 align:start position:0%
few resources online for data querying
for<00:05:05.170><c> taking</c><00:05:05.860><c> block</c><00:05:06.280><c> data</c><00:05:06.640><c> and</c><00:05:06.940><c> storing</c><00:05:07.360><c> it</c>

00:05:07.470 --> 00:05:07.480 align:start position:0%
for taking block data and storing it
 

00:05:07.480 --> 00:05:10.380 align:start position:0%
for taking block data and storing it
internally<00:05:08.310><c> we</c><00:05:09.310><c> as</c><00:05:09.670><c> well</c><00:05:09.940><c> as</c><00:05:10.030><c> everyone</c><00:05:10.210><c> else</c>

00:05:10.380 --> 00:05:10.390 align:start position:0%
internally we as well as everyone else
 

00:05:10.390 --> 00:05:11.820 align:start position:0%
internally we as well as everyone else
who<00:05:10.450><c> was</c><00:05:10.480><c> up</c><00:05:10.660><c> here</c><00:05:10.810><c> before</c><00:05:11.140><c> I</c><00:05:11.170><c> have</c><00:05:11.320><c> created</c>

00:05:11.820 --> 00:05:11.830 align:start position:0%
who was up here before I have created
 

00:05:11.830 --> 00:05:13.620 align:start position:0%
who was up here before I have created
tools<00:05:12.040><c> for</c><00:05:12.370><c> doing</c><00:05:12.490><c> that</c>

00:05:13.620 --> 00:05:13.630 align:start position:0%
tools for doing that
 

00:05:13.630 --> 00:05:16.560 align:start position:0%
tools for doing that
we're<00:05:14.320><c> not</c><00:05:14.410><c> outsourcing</c><00:05:15.010><c> those</c><00:05:15.160><c> yet</c><00:05:15.400><c> but</c><00:05:16.240><c> you</c>

00:05:16.560 --> 00:05:16.570 align:start position:0%
we're not outsourcing those yet but you
 

00:05:16.570 --> 00:05:17.880 align:start position:0%
we're not outsourcing those yet but you
know<00:05:16.630><c> that</c><00:05:16.810><c> is</c><00:05:16.930><c> something</c><00:05:17.260><c> that</c><00:05:17.410><c> we</c><00:05:17.500><c> are</c><00:05:17.530><c> all</c>

00:05:17.880 --> 00:05:17.890 align:start position:0%
know that is something that we are all
 

00:05:17.890 --> 00:05:20.220 align:start position:0%
know that is something that we are all
creating<00:05:18.400><c> our</c><00:05:18.610><c> own</c><00:05:18.760><c> data</c><00:05:19.120><c> querying</c><00:05:19.660><c> layer</c><00:05:19.960><c> on</c>

00:05:20.220 --> 00:05:20.230 align:start position:0%
creating our own data querying layer on
 

00:05:20.230 --> 00:05:22.650 align:start position:0%
creating our own data querying layer on
top<00:05:20.500><c> of</c><00:05:20.710><c> the</c><00:05:20.800><c> blockchain</c><00:05:21.040><c> and</c><00:05:21.730><c> there</c><00:05:22.360><c> are</c><00:05:22.450><c> some</c>

00:05:22.650 --> 00:05:22.660 align:start position:0%
top of the blockchain and there are some
 

00:05:22.660 --> 00:05:23.850 align:start position:0%
top of the blockchain and there are some
companies<00:05:22.900><c> right</c><00:05:23.170><c> now</c><00:05:23.290><c> like</c><00:05:23.500><c> the</c><00:05:23.620><c> graph</c><00:05:23.830><c> that</c>

00:05:23.850 --> 00:05:23.860 align:start position:0%
companies right now like the graph that
 

00:05:23.860 --> 00:05:26.610 align:start position:0%
companies right now like the graph that
are<00:05:24.190><c> actively</c><00:05:24.460><c> working</c><00:05:24.580><c> on</c><00:05:25.180><c> making</c><00:05:26.110><c> a</c><00:05:26.380><c> way</c><00:05:26.560><c> to</c>

00:05:26.610 --> 00:05:26.620 align:start position:0%
are actively working on making a way to
 

00:05:26.620 --> 00:05:31.500 align:start position:0%
are actively working on making a way to
query<00:05:27.600><c> using</c><00:05:28.600><c> graph</c><00:05:28.870><c> QL</c><00:05:29.140><c> but</c><00:05:29.860><c> they</c><00:05:30.760><c> also</c><00:05:31.060><c> still</c>

00:05:31.500 --> 00:05:31.510 align:start position:0%
query using graph QL but they also still
 

00:05:31.510 --> 00:05:33.570 align:start position:0%
query using graph QL but they also still
require<00:05:31.810><c> that</c><00:05:31.960><c> you</c><00:05:32.080><c> run</c><00:05:32.290><c> your</c><00:05:32.470><c> own</c><00:05:32.500><c> nodes</c><00:05:32.920><c> or</c>

00:05:33.570 --> 00:05:33.580 align:start position:0%
require that you run your own nodes or
 

00:05:33.580 --> 00:05:36.000 align:start position:0%
require that you run your own nodes or
you<00:05:33.730><c> find</c><00:05:34.000><c> somebody</c><00:05:34.450><c> that</c><00:05:34.840><c> can</c><00:05:35.080><c> run</c><00:05:35.260><c> nodes</c><00:05:35.590><c> for</c>

00:05:36.000 --> 00:05:36.010 align:start position:0%
you find somebody that can run nodes for
 

00:05:36.010 --> 00:05:40.920 align:start position:0%
you find somebody that can run nodes for
you<00:05:36.250><c> to</c><00:05:36.760><c> get</c><00:05:36.880><c> the</c><00:05:36.970><c> underlying</c><00:05:37.300><c> state</c><00:05:37.690><c> data</c><00:05:39.930><c> so</c>

00:05:40.920 --> 00:05:40.930 align:start position:0%
you to get the underlying state data so
 

00:05:40.930 --> 00:05:43.560 align:start position:0%
you to get the underlying state data so
right<00:05:41.110><c> here</c><00:05:41.410><c> is</c><00:05:41.650><c> a</c><00:05:42.130><c> simplistic</c><00:05:42.670><c> view</c><00:05:42.820><c> of</c><00:05:43.240><c> our</c>

00:05:43.560 --> 00:05:43.570 align:start position:0%
right here is a simplistic view of our
 

00:05:43.570 --> 00:05:48.210 align:start position:0%
right here is a simplistic view of our
death<00:05:43.810><c> architecture</c><00:05:45.480><c> we</c><00:05:46.480><c> run</c><00:05:47.020><c> a</c><00:05:47.410><c> production</c>

00:05:48.210 --> 00:05:48.220 align:start position:0%
death architecture we run a production
 

00:05:48.220 --> 00:05:51.620 align:start position:0%
death architecture we run a production
cluster<00:05:48.730><c> and</c><00:05:49.240><c> it's</c><00:05:49.960><c> basically</c><00:05:50.530><c> a</c><00:05:50.920><c> group</c><00:05:51.280><c> of</c>

00:05:51.620 --> 00:05:51.630 align:start position:0%
cluster and it's basically a group of
 

00:05:51.630 --> 00:05:54.990 align:start position:0%
cluster and it's basically a group of
load-balanced<00:05:52.630><c> death</c><00:05:52.960><c> nodes</c><00:05:53.290><c> behind</c><00:05:54.220><c> RS</c><00:05:54.850><c> re</c>

00:05:54.990 --> 00:05:55.000 align:start position:0%
load-balanced death nodes behind RS re
 

00:05:55.000 --> 00:05:57.090 align:start position:0%
load-balanced death nodes behind RS re
in<00:05:55.180><c> an</c><00:05:55.300><c> auto</c><00:05:55.450><c> scaling</c><00:05:55.810><c> group</c><00:05:55.980><c> behind</c><00:05:56.980><c> an</c>

00:05:57.090 --> 00:05:57.100 align:start position:0%
in an auto scaling group behind an
 

00:05:57.100 --> 00:06:01.290 align:start position:0%
in an auto scaling group behind an
application<00:05:57.610><c> load</c><00:05:57.790><c> balancer</c><00:05:58.330><c> on</c><00:05:58.510><c> AWS</c><00:06:00.300><c> the</c>

00:06:01.290 --> 00:06:01.300 align:start position:0%
application load balancer on AWS the
 

00:06:01.300 --> 00:06:03.300 align:start position:0%
application load balancer on AWS the
application<00:06:02.080><c> load</c><00:06:02.230><c> balancer</c><00:06:02.620><c> allows</c><00:06:02.860><c> us</c><00:06:03.070><c> to</c>

00:06:03.300 --> 00:06:03.310 align:start position:0%
application load balancer allows us to
 

00:06:03.310 --> 00:06:07.200 align:start position:0%
application load balancer allows us to
upgrade<00:06:03.520><c> non-secure</c><00:06:04.300><c> requests</c><00:06:04.810><c> to</c><00:06:05.350><c> TLS</c><00:06:06.210><c> we</c>

00:06:07.200 --> 00:06:07.210 align:start position:0%
upgrade non-secure requests to TLS we
 

00:06:07.210 --> 00:06:10.560 align:start position:0%
upgrade non-secure requests to TLS we
can<00:06:07.360><c> also</c><00:06:07.510><c> run</c><00:06:07.960><c> very</c><00:06:08.590><c> tight</c><00:06:08.950><c> health</c><00:06:09.220><c> checks</c><00:06:09.580><c> to</c>

00:06:10.560 --> 00:06:10.570 align:start position:0%
can also run very tight health checks to
 

00:06:10.570 --> 00:06:13.440 align:start position:0%
can also run very tight health checks to
cycle<00:06:10.960><c> out</c><00:06:11.020><c> nodes</c><00:06:11.380><c> that</c><00:06:11.650><c> are</c><00:06:11.710><c> not</c><00:06:11.830><c> healthy</c><00:06:12.610><c> out</c>

00:06:13.440 --> 00:06:13.450 align:start position:0%
cycle out nodes that are not healthy out
 

00:06:13.450 --> 00:06:15.750 align:start position:0%
cycle out nodes that are not healthy out
of<00:06:13.600><c> the</c><00:06:13.690><c> load</c><00:06:13.840><c> balancer</c><00:06:14.320><c> target</c><00:06:14.680><c> group</c><00:06:14.860><c> so</c><00:06:15.640><c> if</c>

00:06:15.750 --> 00:06:15.760 align:start position:0%
of the load balancer target group so if
 

00:06:15.760 --> 00:06:17.010 align:start position:0%
of the load balancer target group so if
they<00:06:15.910><c> fall</c><00:06:16.090><c> behind</c><00:06:16.240><c> for</c><00:06:16.600><c> instance</c><00:06:16.810><c> like</c><00:06:16.900><c> the</c>

00:06:17.010 --> 00:06:17.020 align:start position:0%
they fall behind for instance like the
 

00:06:17.020 --> 00:06:19.830 align:start position:0%
they fall behind for instance like the
head<00:06:17.140><c> of</c><00:06:17.260><c> the</c><00:06:17.320><c> chain</c><00:06:17.560><c> and</c><00:06:18.420><c> usually</c><00:06:19.420><c> what</c><00:06:19.720><c> we</c>

00:06:19.830 --> 00:06:19.840 align:start position:0%
head of the chain and usually what we
 

00:06:19.840 --> 00:06:21.870 align:start position:0%
head of the chain and usually what we
found<00:06:20.110><c> in</c><00:06:20.290><c> our</c><00:06:20.380><c> internal</c><00:06:20.770><c> test</c><00:06:21.580><c> is</c><00:06:21.760><c> we</c>

00:06:21.870 --> 00:06:21.880 align:start position:0%
found in our internal test is we
 

00:06:21.880 --> 00:06:23.220 align:start position:0%
found in our internal test is we
recommend<00:06:22.270><c> studying</c><00:06:22.420><c> the</c><00:06:22.600><c> frequency</c><00:06:23.140><c> of</c>

00:06:23.220 --> 00:06:23.230 align:start position:0%
recommend studying the frequency of
 

00:06:23.230 --> 00:06:25.290 align:start position:0%
recommend studying the frequency of
those<00:06:23.350><c> health</c><00:06:23.590><c> checks</c><00:06:23.920><c> to</c><00:06:24.670><c> a</c><00:06:24.700><c> time</c><00:06:25.030><c> that</c><00:06:25.210><c> is</c>

00:06:25.290 --> 00:06:25.300 align:start position:0%
those health checks to a time that is
 

00:06:25.300 --> 00:06:27.780 align:start position:0%
those health checks to a time that is
less<00:06:25.510><c> than</c><00:06:25.780><c> a</c><00:06:25.900><c> single</c><00:06:26.350><c> block</c><00:06:26.790><c> propagation</c>

00:06:27.780 --> 00:06:27.790 align:start position:0%
less than a single block propagation
 

00:06:27.790 --> 00:06:29.850 align:start position:0%
less than a single block propagation
time<00:06:28.000><c> so</c><00:06:28.630><c> right</c><00:06:28.930><c> now</c><00:06:29.140><c> that's</c><00:06:29.320><c> doing</c><00:06:29.590><c> a</c><00:06:29.680><c> health</c>

00:06:29.850 --> 00:06:29.860 align:start position:0%
time so right now that's doing a health
 

00:06:29.860 --> 00:06:33.960 align:start position:0%
time so right now that's doing a health
check<00:06:30.270><c> inside</c><00:06:31.270><c> of</c><00:06:31.420><c> a</c><00:06:31.480><c> 15-second</c><00:06:32.260><c> window</c><00:06:32.970><c> this</c>

00:06:33.960 --> 00:06:33.970 align:start position:0%
check inside of a 15-second window this
 

00:06:33.970 --> 00:06:36.300 align:start position:0%
check inside of a 15-second window this
allows<00:06:34.270><c> nodes</c><00:06:34.510><c> that</c><00:06:34.630><c> fall</c><00:06:34.870><c> behind</c><00:06:35.050><c> to</c><00:06:36.040><c> be</c>

00:06:36.300 --> 00:06:36.310 align:start position:0%
allows nodes that fall behind to be
 

00:06:36.310 --> 00:06:37.680 align:start position:0%
allows nodes that fall behind to be
dropped<00:06:36.550><c> at</c><00:06:36.700><c> the</c><00:06:36.790><c> pool</c><00:06:36.970><c> quickly</c><00:06:37.360><c> so</c><00:06:37.570><c> they</c><00:06:37.660><c> can</c>

00:06:37.680 --> 00:06:37.690 align:start position:0%
dropped at the pool quickly so they can
 

00:06:37.690 --> 00:06:39.900 align:start position:0%
dropped at the pool quickly so they can
sink<00:06:38.140><c> back</c><00:06:38.380><c> in</c><00:06:38.710><c> so</c><00:06:39.250><c> you're</c><00:06:39.400><c> not</c><00:06:39.430><c> querying</c>

00:06:39.900 --> 00:06:39.910 align:start position:0%
sink back in so you're not querying
 

00:06:39.910 --> 00:06:40.500 align:start position:0%
sink back in so you're not querying
nodes

00:06:40.500 --> 00:06:40.510 align:start position:0%
nodes
 

00:06:40.510 --> 00:06:43.620 align:start position:0%
nodes
that<00:06:40.960><c> you</c><00:06:41.080><c> know</c><00:06:41.290><c> are</c><00:06:41.620><c> behind</c><00:06:41.980><c> in</c><00:06:42.130><c> state</c><00:06:42.630><c> the</c>

00:06:43.620 --> 00:06:43.630 align:start position:0%
that you know are behind in state the
 

00:06:43.630 --> 00:06:45.690 align:start position:0%
that you know are behind in state the
load-balanced<00:06:44.320><c> nature</c><00:06:44.620><c> of</c><00:06:44.710><c> our</c><00:06:44.830><c> clusters</c>

00:06:45.690 --> 00:06:45.700 align:start position:0%
load-balanced nature of our clusters
 

00:06:45.700 --> 00:06:47.310 align:start position:0%
load-balanced nature of our clusters
also<00:06:46.060><c> means</c><00:06:46.240><c> that</c><00:06:46.330><c> if</c><00:06:46.540><c> a</c><00:06:46.630><c> single</c><00:06:46.870><c> node</c><00:06:47.080><c> does</c>

00:06:47.310 --> 00:06:47.320 align:start position:0%
also means that if a single node does
 

00:06:47.320 --> 00:06:49.500 align:start position:0%
also means that if a single node does
fall<00:06:47.560><c> behind</c><00:06:47.860><c> our</c><00:06:48.340><c> overarching</c><00:06:48.820><c> service</c>

00:06:49.500 --> 00:06:49.510 align:start position:0%
fall behind our overarching service
 

00:06:49.510 --> 00:06:51.840 align:start position:0%
fall behind our overarching service
doesn't<00:06:50.350><c> actually</c><00:06:50.560><c> fall</c><00:06:51.070><c> out</c><00:06:51.130><c> of</c><00:06:51.370><c> sync</c><00:06:51.670><c> and</c>

00:06:51.840 --> 00:06:51.850 align:start position:0%
doesn't actually fall out of sync and
 

00:06:51.850 --> 00:06:57.330 align:start position:0%
doesn't actually fall out of sync and
become<00:06:52.120><c> unavailable</c><00:06:55.410><c> so</c><00:06:56.410><c> we</c><00:06:56.680><c> use</c><00:06:56.890><c> our</c><00:06:57.100><c> goth</c>

00:06:57.330 --> 00:06:57.340 align:start position:0%
become unavailable so we use our goth
 

00:06:57.340 --> 00:06:59.520 align:start position:0%
become unavailable so we use our goth
nodes<00:06:57.610><c> on</c><00:06:57.700><c> the</c><00:06:57.790><c> front</c><00:06:58.030><c> end</c><00:06:58.210><c> you</c><00:06:58.300><c> I</c><00:06:58.480><c> on</c><00:06:59.290><c> the</c><00:06:59.440><c> air</c>

00:06:59.520 --> 00:06:59.530 align:start position:0%
nodes on the front end you I on the air
 

00:06:59.530 --> 00:07:02.520 align:start position:0%
nodes on the front end you I on the air
swap<00:06:59.800><c> platform</c><00:07:00.340><c> as</c><00:07:00.660><c> well</c><00:07:01.660><c> as</c><00:07:01.720><c> in</c><00:07:02.230><c> the</c><00:07:02.320><c> backend</c>

00:07:02.520 --> 00:07:02.530 align:start position:0%
swap platform as well as in the backend
 

00:07:02.530 --> 00:07:05.790 align:start position:0%
swap platform as well as in the backend
for<00:07:03.160><c> state</c><00:07:03.340><c> management</c><00:07:03.700><c> and</c><00:07:04.030><c> storage</c><00:07:04.650><c> on</c><00:07:05.650><c> the</c>

00:07:05.790 --> 00:07:05.800 align:start position:0%
for state management and storage on the
 

00:07:05.800 --> 00:07:08.160 align:start position:0%
for state management and storage on the
front<00:07:06.040><c> end</c><00:07:06.220><c> this</c><00:07:06.370><c> takes</c><00:07:06.610><c> the</c><00:07:06.700><c> form</c><00:07:06.820><c> of</c><00:07:07.300><c> balance</c>

00:07:08.160 --> 00:07:08.170 align:start position:0%
front end this takes the form of balance
 

00:07:08.170 --> 00:07:10.710 align:start position:0%
front end this takes the form of balance
checks<00:07:08.680><c> in</c><00:07:08.980><c> the</c><00:07:09.100><c> UI</c><00:07:09.480><c> wrapping</c><00:07:10.480><c> and</c><00:07:10.630><c> unwrapping</c>

00:07:10.710 --> 00:07:10.720 align:start position:0%
checks in the UI wrapping and unwrapping
 

00:07:10.720 --> 00:07:14.130 align:start position:0%
checks in the UI wrapping and unwrapping
width<00:07:11.410><c> and</c><00:07:11.800><c> also</c><00:07:12.790><c> approvals</c><00:07:13.510><c> an</c><00:07:13.750><c> approval</c>

00:07:14.130 --> 00:07:14.140 align:start position:0%
width and also approvals an approval
 

00:07:14.140 --> 00:07:16.080 align:start position:0%
width and also approvals an approval
state<00:07:14.350><c> for</c><00:07:14.530><c> the</c><00:07:14.590><c> atomic</c><00:07:14.800><c> swaps</c><00:07:15.220><c> so</c><00:07:15.850><c> if</c><00:07:15.940><c> you've</c>

00:07:16.080 --> 00:07:16.090 align:start position:0%
state for the atomic swaps so if you've
 

00:07:16.090 --> 00:07:19.140 align:start position:0%
state for the atomic swaps so if you've
used<00:07:16.150><c> the</c><00:07:17.080><c> air</c><00:07:17.290><c> swap</c><00:07:17.530><c> platform</c><00:07:18.070><c> you</c><00:07:18.760><c> know</c><00:07:18.910><c> that</c>

00:07:19.140 --> 00:07:19.150 align:start position:0%
used the air swap platform you know that
 

00:07:19.150 --> 00:07:21.240 align:start position:0%
used the air swap platform you know that
I<00:07:19.180><c> like</c><00:07:19.390><c> on</c><00:07:19.540><c> the</c><00:07:19.660><c> new</c><00:07:19.860><c> spaces</c><00:07:20.860><c> on</c><00:07:21.010><c> the</c><00:07:21.100><c> right</c>

00:07:21.240 --> 00:07:21.250 align:start position:0%
I like on the new spaces on the right
 

00:07:21.250 --> 00:07:22.800 align:start position:0%
I like on the new spaces on the right
hand<00:07:21.460><c> side</c><00:07:21.670><c> you</c><00:07:21.790><c> know</c><00:07:21.850><c> we</c><00:07:21.970><c> have</c><00:07:22.180><c> a</c><00:07:22.480><c> bunch</c><00:07:22.720><c> of</c>

00:07:22.800 --> 00:07:22.810 align:start position:0%
hand side you know we have a bunch of
 

00:07:22.810 --> 00:07:24.810 align:start position:0%
hand side you know we have a bunch of
information<00:07:23.380><c> that</c><00:07:23.830><c> comes</c><00:07:24.190><c> from</c><00:07:24.310><c> our</c><00:07:24.430><c> Gotthard</c>

00:07:24.810 --> 00:07:24.820 align:start position:0%
information that comes from our Gotthard
 

00:07:24.820 --> 00:07:27.840 align:start position:0%
information that comes from our Gotthard
state<00:07:25.710><c> we</c><00:07:26.710><c> also</c><00:07:26.890><c> use</c><00:07:27.100><c> a</c><00:07:27.130><c> heavy</c><00:07:27.310><c> polling</c><00:07:27.730><c> method</c>

00:07:27.840 --> 00:07:27.850 align:start position:0%
state we also use a heavy polling method
 

00:07:27.850 --> 00:07:30.810 align:start position:0%
state we also use a heavy polling method
to<00:07:28.330><c> handle</c><00:07:28.630><c> trade</c><00:07:29.080><c> confirmations</c><00:07:29.680><c> so</c><00:07:30.550><c> if</c>

00:07:30.810 --> 00:07:30.820 align:start position:0%
to handle trade confirmations so if
 

00:07:30.820 --> 00:07:32.130 align:start position:0%
to handle trade confirmations so if
you've<00:07:30.940><c> ever</c><00:07:31.090><c> popped</c><00:07:31.360><c> open</c><00:07:31.510><c> the</c><00:07:31.720><c> network</c><00:07:31.870><c> tab</c>

00:07:32.130 --> 00:07:32.140 align:start position:0%
you've ever popped open the network tab
 

00:07:32.140 --> 00:07:34.740 align:start position:0%
you've ever popped open the network tab
in<00:07:32.320><c> chrome</c><00:07:32.350><c> while</c><00:07:33.040><c> using</c><00:07:33.310><c> air</c><00:07:33.640><c> swap</c><00:07:33.940><c> you'll</c>

00:07:34.740 --> 00:07:34.750 align:start position:0%
in chrome while using air swap you'll
 

00:07:34.750 --> 00:07:36.300 align:start position:0%
in chrome while using air swap you'll
notice<00:07:35.050><c> that</c><00:07:35.170><c> we</c><00:07:35.290><c> do</c><00:07:35.410><c> heavy</c><00:07:35.590><c> polling</c><00:07:36.040><c> against</c>

00:07:36.300 --> 00:07:36.310 align:start position:0%
notice that we do heavy polling against
 

00:07:36.310 --> 00:07:39.360 align:start position:0%
notice that we do heavy polling against
a<00:07:36.490><c> gap</c><00:07:36.700><c> cluster</c><00:07:37.410><c> basically</c><00:07:38.410><c> when</c><00:07:38.680><c> you</c><00:07:38.890><c> do</c><00:07:39.340><c> a</c>

00:07:39.360 --> 00:07:39.370 align:start position:0%
a gap cluster basically when you do a
 

00:07:39.370 --> 00:07:41.130 align:start position:0%
a gap cluster basically when you do a
trade<00:07:39.820><c> to</c><00:07:40.030><c> make</c><00:07:40.120><c> sure</c><00:07:40.300><c> the</c><00:07:40.480><c> trade</c><00:07:40.690><c> actually</c>

00:07:41.130 --> 00:07:41.140 align:start position:0%
trade to make sure the trade actually
 

00:07:41.140 --> 00:07:43.800 align:start position:0%
trade to make sure the trade actually
goes<00:07:41.260><c> through</c><00:07:41.470><c> and</c><00:07:41.560><c> gets</c><00:07:41.680><c> executed</c><00:07:42.660><c> we</c><00:07:43.660><c> also</c>

00:07:43.800 --> 00:07:43.810 align:start position:0%
goes through and gets executed we also
 

00:07:43.810 --> 00:07:46.050 align:start position:0%
goes through and gets executed we also
do<00:07:44.020><c> allow</c><00:07:44.230><c> limited</c><00:07:44.560><c> very</c><00:07:45.310><c> limited</c><00:07:45.790><c> third</c>

00:07:46.050 --> 00:07:46.060 align:start position:0%
do allow limited very limited third
 

00:07:46.060 --> 00:07:49.470 align:start position:0%
do allow limited very limited third
party<00:07:46.450><c> access</c><00:07:46.900><c> to</c><00:07:47.260><c> our</c><00:07:47.500><c> GAF</c><00:07:47.710><c> cluster</c><00:07:48.360><c> we</c><00:07:49.360><c> do</c>

00:07:49.470 --> 00:07:49.480 align:start position:0%
party access to our GAF cluster we do
 

00:07:49.480 --> 00:07:52.080 align:start position:0%
party access to our GAF cluster we do
have<00:07:49.720><c> some</c><00:07:50.080><c> of</c><00:07:50.170><c> our</c><00:07:50.260><c> maker</c><00:07:50.440><c> partners</c><00:07:51.010><c> who</c><00:07:51.760><c> use</c>

00:07:52.080 --> 00:07:52.090 align:start position:0%
have some of our maker partners who use
 

00:07:52.090 --> 00:07:54.360 align:start position:0%
have some of our maker partners who use
our<00:07:52.390><c> GAF</c><00:07:52.690><c> cluster</c><00:07:53.170><c> as</c><00:07:53.320><c> well</c><00:07:53.530><c> for</c><00:07:53.920><c> balance</c>

00:07:54.360 --> 00:07:54.370 align:start position:0%
our GAF cluster as well for balance
 

00:07:54.370 --> 00:07:57.630 align:start position:0%
our GAF cluster as well for balance
checks<00:07:54.700><c> both</c><00:07:55.480><c> for</c><00:07:55.870><c> their</c><00:07:56.140><c> own</c><00:07:56.320><c> wallets</c><00:07:56.830><c> that</c>

00:07:57.630 --> 00:07:57.640 align:start position:0%
checks both for their own wallets that
 

00:07:57.640 --> 00:07:59.130 align:start position:0%
checks both for their own wallets that
they<00:07:57.730><c> operate</c><00:07:58.090><c> out</c><00:07:58.270><c> of</c><00:07:58.420><c> as</c><00:07:58.600><c> well</c><00:07:58.900><c> as</c>

00:07:59.130 --> 00:07:59.140 align:start position:0%
they operate out of as well as
 

00:07:59.140 --> 00:08:00.930 align:start position:0%
they operate out of as well as
counterparty<00:07:59.830><c> balance</c><00:08:00.130><c> checks</c><00:08:00.400><c> to</c><00:08:00.610><c> make</c><00:08:00.730><c> sure</c>

00:08:00.930 --> 00:08:00.940 align:start position:0%
counterparty balance checks to make sure
 

00:08:00.940 --> 00:08:02.550 align:start position:0%
counterparty balance checks to make sure
that<00:08:01.060><c> the</c><00:08:01.180><c> counterparty</c><00:08:01.690><c> taking</c><00:08:01.990><c> a</c><00:08:02.080><c> trade</c><00:08:02.350><c> is</c>

00:08:02.550 --> 00:08:02.560 align:start position:0%
that the counterparty taking a trade is
 

00:08:02.560 --> 00:08:06.750 align:start position:0%
that the counterparty taking a trade is
a<00:08:03.430><c> valid</c><00:08:04.180><c> taker</c><00:08:05.250><c> further</c><00:08:06.250><c> our</c><00:08:06.430><c> parties</c><00:08:06.730><c> and</c>

00:08:06.750 --> 00:08:06.760 align:start position:0%
a valid taker further our parties and
 

00:08:06.760 --> 00:08:09.390 align:start position:0%
a valid taker further our parties and
also<00:08:07.090><c> use</c><00:08:07.330><c> the</c><00:08:07.750><c> GAF</c><00:08:08.140><c> cluster</c><00:08:08.560><c> for</c><00:08:08.800><c> market</c><00:08:09.250><c> data</c>

00:08:09.390 --> 00:08:09.400 align:start position:0%
also use the GAF cluster for market data
 

00:08:09.400 --> 00:08:12.390 align:start position:0%
also use the GAF cluster for market data
and<00:08:09.550><c> price</c><00:08:10.060><c> information</c><00:08:10.920><c> in</c><00:08:11.920><c> addition</c><00:08:12.130><c> with</c><00:08:12.370><c> a</c>

00:08:12.390 --> 00:08:12.400 align:start position:0%
and price information in addition with a
 

00:08:12.400 --> 00:08:14.340 align:start position:0%
and price information in addition with a
couple<00:08:12.610><c> of</c><00:08:12.670><c> their</c><00:08:12.790><c> sources</c><00:08:13.120><c> but</c><00:08:13.750><c> we</c><00:08:13.930><c> we</c><00:08:14.200><c> do</c>

00:08:14.340 --> 00:08:14.350 align:start position:0%
couple of their sources but we we do
 

00:08:14.350 --> 00:08:17.130 align:start position:0%
couple of their sources but we we do
provide<00:08:15.040><c> chain</c><00:08:15.400><c> state</c><00:08:15.700><c> to</c><00:08:15.820><c> them</c><00:08:15.970><c> for</c><00:08:16.330><c> pricing</c>

00:08:17.130 --> 00:08:17.140 align:start position:0%
provide chain state to them for pricing
 

00:08:17.140 --> 00:08:21.210 align:start position:0%
provide chain state to them for pricing
information<00:08:19.590><c> when</c><00:08:20.590><c> we</c><00:08:20.710><c> were</c><00:08:20.830><c> setting</c><00:08:20.980><c> up</c><00:08:21.100><c> our</c>

00:08:21.210 --> 00:08:21.220 align:start position:0%
information when we were setting up our
 

00:08:21.220 --> 00:08:23.070 align:start position:0%
information when we were setting up our
Gotha<00:08:21.430><c> cluster</c><00:08:21.700><c> for</c><00:08:21.850><c> the</c><00:08:21.910><c> first</c><00:08:22.120><c> time</c><00:08:22.420><c> we</c><00:08:22.930><c> ran</c>

00:08:23.070 --> 00:08:23.080 align:start position:0%
Gotha cluster for the first time we ran
 

00:08:23.080 --> 00:08:25.470 align:start position:0%
Gotha cluster for the first time we ran
into<00:08:23.230><c> many</c><00:08:23.440><c> issues</c><00:08:23.650><c> with</c><00:08:24.640><c> the</c><00:08:24.850><c> way</c><00:08:24.970><c> gift</c><00:08:25.270><c> was</c>

00:08:25.470 --> 00:08:25.480 align:start position:0%
into many issues with the way gift was
 

00:08:25.480 --> 00:08:27.660 align:start position:0%
into many issues with the way gift was
written<00:08:25.690><c> and</c><00:08:25.990><c> our</c><00:08:26.860><c> particular</c><00:08:27.220><c> use</c><00:08:27.400><c> case</c><00:08:27.640><c> of</c>

00:08:27.660 --> 00:08:27.670 align:start position:0%
written and our particular use case of
 

00:08:27.670 --> 00:08:29.970 align:start position:0%
written and our particular use case of
heavy<00:08:27.970><c> reads</c><00:08:28.290><c> this</c><00:08:29.290><c> is</c><00:08:29.410><c> not</c><00:08:29.530><c> a</c><00:08:29.560><c> knock</c><00:08:29.770><c> and</c><00:08:29.890><c> the</c>

00:08:29.970 --> 00:08:29.980 align:start position:0%
heavy reads this is not a knock and the
 

00:08:29.980 --> 00:08:31.260 align:start position:0%
heavy reads this is not a knock and the
guys<00:08:30.130><c> that</c><00:08:30.160><c> built</c><00:08:30.430><c> Geth</c><00:08:30.700><c> it's</c><00:08:30.880><c> a</c><00:08:30.940><c> great</c><00:08:31.120><c> piece</c>

00:08:31.260 --> 00:08:31.270 align:start position:0%
guys that built Geth it's a great piece
 

00:08:31.270 --> 00:08:34.320 align:start position:0%
guys that built Geth it's a great piece
of<00:08:31.300><c> software</c><00:08:31.720><c> but</c><00:08:32.500><c> we</c><00:08:32.979><c> just</c><00:08:33.220><c> operated</c><00:08:34.030><c> it</c><00:08:34.150><c> at</c><00:08:34.240><c> a</c>

00:08:34.320 --> 00:08:34.330 align:start position:0%
of software but we just operated it at a
 

00:08:34.330 --> 00:08:36.719 align:start position:0%
of software but we just operated it at a
scale<00:08:34.479><c> that</c><00:08:34.660><c> really</c><00:08:35.290><c> no</c><00:08:35.440><c> one</c><00:08:35.590><c> else</c><00:08:35.710><c> had</c><00:08:36.400><c> been</c>

00:08:36.719 --> 00:08:36.729 align:start position:0%
scale that really no one else had been
 

00:08:36.729 --> 00:08:39.089 align:start position:0%
scale that really no one else had been
publicly<00:08:37.000><c> talking</c><00:08:37.300><c> about</c><00:08:37.620><c> so</c><00:08:38.620><c> the</c><00:08:38.860><c> first</c>

00:08:39.089 --> 00:08:39.099 align:start position:0%
publicly talking about so the first
 

00:08:39.099 --> 00:08:40.530 align:start position:0%
publicly talking about so the first
problem<00:08:39.250><c> we</c><00:08:39.400><c> had</c><00:08:39.550><c> was</c><00:08:39.729><c> GAF</c><00:08:39.970><c> wasn't</c><00:08:40.390><c> written</c>

00:08:40.530 --> 00:08:40.540 align:start position:0%
problem we had was GAF wasn't written
 

00:08:40.540 --> 00:08:43.770 align:start position:0%
problem we had was GAF wasn't written
with<00:08:40.840><c> modern</c><00:08:41.229><c> pub/sub</c><00:08:41.770><c> methods</c><00:08:42.510><c> this</c><00:08:43.510><c> meant</c>

00:08:43.770 --> 00:08:43.780 align:start position:0%
with modern pub/sub methods this meant
 

00:08:43.780 --> 00:08:45.180 align:start position:0%
with modern pub/sub methods this meant
that<00:08:44.020><c> you</c><00:08:44.110><c> have</c><00:08:44.260><c> to</c><00:08:44.380><c> do</c><00:08:44.470><c> heavy</c><00:08:44.650><c> frequent</c>

00:08:45.180 --> 00:08:45.190 align:start position:0%
that you have to do heavy frequent
 

00:08:45.190 --> 00:08:46.980 align:start position:0%
that you have to do heavy frequent
polling<00:08:45.580><c> in</c><00:08:45.730><c> order</c><00:08:45.970><c> to</c><00:08:46.120><c> get</c><00:08:46.270><c> state</c><00:08:46.570><c> changes</c>

00:08:46.980 --> 00:08:46.990 align:start position:0%
polling in order to get state changes
 

00:08:46.990 --> 00:08:49.470 align:start position:0%
polling in order to get state changes
and<00:08:47.200><c> you</c><00:08:47.950><c> can't</c><00:08:48.190><c> just</c><00:08:48.310><c> simply</c><00:08:48.490><c> subscribe</c><00:08:49.210><c> to</c>

00:08:49.470 --> 00:08:49.480 align:start position:0%
and you can't just simply subscribe to
 

00:08:49.480 --> 00:08:51.450 align:start position:0%
and you can't just simply subscribe to
the<00:08:49.600><c> events</c><00:08:50.080><c> being</c><00:08:50.590><c> emitted</c><00:08:50.890><c> out</c><00:08:51.160><c> of</c><00:08:51.400><c> the</c>

00:08:51.450 --> 00:08:51.460 align:start position:0%
the events being emitted out of the
 

00:08:51.460 --> 00:08:53.070 align:start position:0%
the events being emitted out of the
blockchain<00:08:51.670><c> that</c><00:08:51.970><c> you</c><00:08:52.090><c> want</c><00:08:52.270><c> to</c><00:08:52.330><c> get</c>

00:08:53.070 --> 00:08:53.080 align:start position:0%
blockchain that you want to get
 

00:08:53.080 --> 00:08:55.230 align:start position:0%
blockchain that you want to get
now<00:08:53.950><c> that</c><00:08:54.130><c> that's</c><00:08:54.310><c> kind</c><00:08:54.550><c> of</c><00:08:54.640><c> true</c><00:08:54.790><c> because</c><00:08:55.060><c> you</c>

00:08:55.230 --> 00:08:55.240 align:start position:0%
now that that's kind of true because you
 

00:08:55.240 --> 00:08:58.440 align:start position:0%
now that that's kind of true because you
can<00:08:55.690><c> with</c><00:08:55.870><c> filters</c><00:08:56.610><c> but</c><00:08:57.610><c> in</c><00:08:57.820><c> and</c><00:08:58.209><c> I've</c><00:08:58.269><c> heard</c><00:08:58.420><c> a</c>

00:08:58.440 --> 00:08:58.450 align:start position:0%
can with filters but in and I've heard a
 

00:08:58.450 --> 00:08:59.850 align:start position:0%
can with filters but in and I've heard a
rumor<00:08:58.690><c> here</c><00:08:58.839><c> that</c><00:08:58.990><c> this</c><00:08:59.260><c> may</c><00:08:59.440><c> no</c><00:08:59.560><c> longer</c><00:08:59.589><c> be</c>

00:08:59.850 --> 00:08:59.860 align:start position:0%
rumor here that this may no longer be
 

00:08:59.860 --> 00:09:02.310 align:start position:0%
rumor here that this may no longer be
true<00:09:00.279><c> but</c><00:09:00.490><c> at</c><00:09:00.610><c> the</c><00:09:00.700><c> time</c><00:09:01.140><c> filters</c><00:09:02.140><c> were</c>

00:09:02.310 --> 00:09:02.320 align:start position:0%
true but at the time filters were
 

00:09:02.320 --> 00:09:05.940 align:start position:0%
true but at the time filters were
dropped<00:09:02.709><c> on</c><00:09:03.010><c> a</c><00:09:03.070><c> node</c><00:09:03.399><c> resetting</c><00:09:04.029><c> and</c><00:09:04.950><c> you'll</c>

00:09:05.940 --> 00:09:05.950 align:start position:0%
dropped on a node resetting and you'll
 

00:09:05.950 --> 00:09:07.139 align:start position:0%
dropped on a node resetting and you'll
find<00:09:06.279><c> out</c><00:09:06.430><c> in</c><00:09:06.519><c> a</c><00:09:06.550><c> couple</c><00:09:06.580><c> slides</c><00:09:06.940><c> whoa</c><00:09:07.060><c> that</c>

00:09:07.139 --> 00:09:07.149 align:start position:0%
find out in a couple slides whoa that
 

00:09:07.149 --> 00:09:09.750 align:start position:0%
find out in a couple slides whoa that
was<00:09:07.240><c> a</c><00:09:07.300><c> huge</c><00:09:07.510><c> issue</c><00:09:07.720><c> for</c><00:09:07.870><c> us</c><00:09:08.279><c> but</c><00:09:09.279><c> basically</c>

00:09:09.750 --> 00:09:09.760 align:start position:0%
was a huge issue for us but basically
 

00:09:09.760 --> 00:09:12.329 align:start position:0%
was a huge issue for us but basically
the<00:09:10.390><c> filters</c><00:09:10.779><c> being</c><00:09:11.019><c> dropped</c><00:09:11.410><c> was</c><00:09:11.829><c> a</c>

00:09:12.329 --> 00:09:12.339 align:start position:0%
the filters being dropped was a
 

00:09:12.339 --> 00:09:15.180 align:start position:0%
the filters being dropped was a
hindrance<00:09:13.120><c> to</c><00:09:13.329><c> us</c><00:09:13.589><c> properly</c><00:09:14.589><c> getting</c><00:09:14.860><c> a</c>

00:09:15.180 --> 00:09:15.190 align:start position:0%
hindrance to us properly getting a
 

00:09:15.190 --> 00:09:18.329 align:start position:0%
hindrance to us properly getting a
pub/sub<00:09:15.940><c> system</c><00:09:16.540><c> setup</c><00:09:16.779><c> and</c><00:09:17.200><c> then</c><00:09:18.070><c> further</c>

00:09:18.329 --> 00:09:18.339 align:start position:0%
pub/sub system setup and then further
 

00:09:18.339 --> 00:09:19.560 align:start position:0%
pub/sub system setup and then further
complicating<00:09:18.820><c> that</c><00:09:18.910><c> is</c><00:09:19.029><c> filters</c><00:09:19.329><c> aren't</c><00:09:19.480><c> a</c>

00:09:19.560 --> 00:09:19.570 align:start position:0%
complicating that is filters aren't a
 

00:09:19.570 --> 00:09:22.290 align:start position:0%
complicating that is filters aren't a
single<00:09:19.839><c> node</c><00:09:19.990><c> only</c><00:09:20.370><c> so</c><00:09:21.370><c> when</c><00:09:21.760><c> you</c><00:09:21.880><c> cost</c><00:09:22.149><c> your</c>

00:09:22.290 --> 00:09:22.300 align:start position:0%
single node only so when you cost your
 

00:09:22.300 --> 00:09:24.090 align:start position:0%
single node only so when you cost your
nose<00:09:22.480><c> behind</c><00:09:22.750><c> a</c><00:09:22.779><c> load</c><00:09:22.959><c> balancer</c><00:09:23.110><c> the</c>

00:09:24.090 --> 00:09:24.100 align:start position:0%
nose behind a load balancer the
 

00:09:24.100 --> 00:09:25.800 align:start position:0%
nose behind a load balancer the
round-robin<00:09:24.610><c> aspect</c><00:09:25.120><c> the</c><00:09:25.240><c> load</c><00:09:25.420><c> balancer</c>

00:09:25.800 --> 00:09:25.810 align:start position:0%
round-robin aspect the load balancer
 

00:09:25.810 --> 00:09:27.120 align:start position:0%
round-robin aspect the load balancer
means<00:09:25.959><c> you</c><00:09:26.079><c> can</c><00:09:26.230><c> no</c><00:09:26.290><c> longer</c><00:09:26.470><c> guarantee</c><00:09:26.920><c> which</c>

00:09:27.120 --> 00:09:27.130 align:start position:0%
means you can no longer guarantee which
 

00:09:27.130 --> 00:09:29.639 align:start position:0%
means you can no longer guarantee which
node<00:09:27.370><c> is</c><00:09:27.399><c> being</c><00:09:27.700><c> hit</c><00:09:28.029><c> and</c><00:09:28.269><c> if</c><00:09:29.050><c> the</c><00:09:29.200><c> filter</c><00:09:29.470><c> even</c>

00:09:29.639 --> 00:09:29.649 align:start position:0%
node is being hit and if the filter even
 

00:09:29.649 --> 00:09:32.370 align:start position:0%
node is being hit and if the filter even
existed<00:09:30.130><c> there</c><00:09:30.690><c> one</c><00:09:31.690><c> of</c><00:09:31.720><c> the</c><00:09:31.839><c> solutions</c><00:09:32.260><c> we</c>

00:09:32.370 --> 00:09:32.380 align:start position:0%
existed there one of the solutions we
 

00:09:32.380 --> 00:09:34.590 align:start position:0%
existed there one of the solutions we
found<00:09:32.589><c> at</c><00:09:32.709><c> the</c><00:09:32.769><c> time</c><00:09:33.010><c> was</c><00:09:33.610><c> a</c><00:09:33.640><c> node.js</c><00:09:33.910><c> library</c>

00:09:34.590 --> 00:09:34.600 align:start position:0%
found at the time was a node.js library
 

00:09:34.600 --> 00:09:37.079 align:start position:0%
found at the time was a node.js library
that<00:09:34.720><c> basically</c><00:09:35.050><c> allowed</c><00:09:35.320><c> you</c><00:09:35.589><c> to</c><00:09:35.620><c> do</c><00:09:36.010><c> a</c><00:09:36.310><c> multi</c>

00:09:37.079 --> 00:09:37.089 align:start position:0%
that basically allowed you to do a multi
 

00:09:37.089 --> 00:09:39.060 align:start position:0%
that basically allowed you to do a multi
node<00:09:37.240><c> filter</c><00:09:37.630><c> setup</c><00:09:37.899><c> and</c><00:09:38.110><c> all</c><00:09:38.589><c> it</c><00:09:38.709><c> would</c><00:09:38.829><c> do</c><00:09:38.920><c> is</c>

00:09:39.060 --> 00:09:39.070 align:start position:0%
node filter setup and all it would do is
 

00:09:39.070 --> 00:09:41.250 align:start position:0%
node filter setup and all it would do is
iterate<00:09:39.220><c> over</c><00:09:39.430><c> an</c><00:09:39.730><c> array</c><00:09:39.820><c> of</c><00:09:40.029><c> guest</c><00:09:40.779><c> nodes</c><00:09:41.019><c> and</c>

00:09:41.250 --> 00:09:41.260 align:start position:0%
iterate over an array of guest nodes and
 

00:09:41.260 --> 00:09:43.440 align:start position:0%
iterate over an array of guest nodes and
set<00:09:41.440><c> up</c><00:09:41.529><c> filters</c><00:09:41.709><c> on</c><00:09:41.950><c> each</c><00:09:42.130><c> node</c><00:09:42.490><c> it</c><00:09:43.240><c> was</c><00:09:43.420><c> a</c>

00:09:43.440 --> 00:09:43.450 align:start position:0%
set up filters on each node it was a
 

00:09:43.450 --> 00:09:45.540 align:start position:0%
set up filters on each node it was a
heavy<00:09:43.750><c> client-side</c><00:09:44.320><c> solution</c><00:09:44.920><c> and</c><00:09:45.100><c> we</c><00:09:45.370><c> really</c>

00:09:45.540 --> 00:09:45.550 align:start position:0%
heavy client-side solution and we really
 

00:09:45.550 --> 00:09:46.319 align:start position:0%
heavy client-side solution and we really
didn't<00:09:45.730><c> think</c><00:09:45.760><c> that</c><00:09:45.910><c> that</c><00:09:46.029><c> was</c><00:09:46.120><c> what</c><00:09:46.240><c> we</c>

00:09:46.319 --> 00:09:46.329 align:start position:0%
didn't think that that was what we
 

00:09:46.329 --> 00:09:48.449 align:start position:0%
didn't think that that was what we
wanted<00:09:46.510><c> to</c><00:09:46.720><c> do</c><00:09:47.019><c> we</c><00:09:47.709><c> were</c><00:09:47.800><c> hoping</c><00:09:48.070><c> for</c><00:09:48.130><c> more</c><00:09:48.399><c> of</c>

00:09:48.449 --> 00:09:48.459 align:start position:0%
wanted to do we were hoping for more of
 

00:09:48.459 --> 00:09:49.980 align:start position:0%
wanted to do we were hoping for more of
a<00:09:48.550><c> server-side</c><00:09:49.029><c> solution</c><00:09:49.570><c> rather</c><00:09:49.810><c> than</c>

00:09:49.980 --> 00:09:49.990 align:start position:0%
a server-side solution rather than
 

00:09:49.990 --> 00:09:53.250 align:start position:0%
a server-side solution rather than
relying<00:09:50.230><c> on</c><00:09:50.410><c> a</c><00:09:50.470><c> client</c><00:09:50.860><c> implementation</c><00:09:52.260><c> so</c>

00:09:53.250 --> 00:09:53.260 align:start position:0%
relying on a client implementation so
 

00:09:53.260 --> 00:09:54.780 align:start position:0%
relying on a client implementation so
the<00:09:53.350><c> underlying</c><00:09:53.680><c> issue</c><00:09:53.950><c> that</c><00:09:54.160><c> we</c><00:09:54.279><c> found</c><00:09:54.640><c> in</c>

00:09:54.780 --> 00:09:54.790 align:start position:0%
the underlying issue that we found in
 

00:09:54.790 --> 00:09:55.860 align:start position:0%
the underlying issue that we found in
some<00:09:54.820><c> of</c><00:09:54.910><c> the</c><00:09:55.000><c> people</c><00:09:55.180><c> have</c><00:09:55.300><c> alluded</c><00:09:55.480><c> to</c><00:09:55.750><c> is</c>

00:09:55.860 --> 00:09:55.870 align:start position:0%
some of the people have alluded to is
 

00:09:55.870 --> 00:09:58.079 align:start position:0%
some of the people have alluded to is
the<00:09:55.990><c> overall</c><00:09:56.440><c> ecosystem</c><00:09:56.950><c> of</c><00:09:57.430><c> ethereum</c><00:09:57.760><c> is</c>

00:09:58.079 --> 00:09:58.089 align:start position:0%
the overall ecosystem of ethereum is
 

00:09:58.089 --> 00:10:00.180 align:start position:0%
the overall ecosystem of ethereum is
meant<00:09:58.300><c> to</c><00:09:58.420><c> be</c><00:09:58.510><c> fault</c><00:09:58.810><c> tolerant</c><00:09:59.380><c> when</c><00:09:59.829><c> it</c><00:09:59.980><c> comes</c>

00:10:00.180 --> 00:10:00.190 align:start position:0%
meant to be fault tolerant when it comes
 

00:10:00.190 --> 00:10:04.319 align:start position:0%
meant to be fault tolerant when it comes
to<00:10:00.370><c> chain</c><00:10:00.579><c> State</c><00:10:01.290><c> however</c><00:10:02.290><c> there's</c><00:10:03.040><c> no</c><00:10:03.700><c> real</c>

00:10:04.319 --> 00:10:04.329 align:start position:0%
to chain State however there's no real
 

00:10:04.329 --> 00:10:05.880 align:start position:0%
to chain State however there's no real
thought<00:10:04.630><c> that's</c><00:10:04.839><c> been</c><00:10:05.020><c> given</c><00:10:05.260><c> to</c><00:10:05.380><c> the</c><00:10:05.560><c> notion</c>

00:10:05.880 --> 00:10:05.890 align:start position:0%
thought that's been given to the notion
 

00:10:05.890 --> 00:10:07.860 align:start position:0%
thought that's been given to the notion
of<00:10:05.950><c> creating</c><00:10:06.130><c> a</c><00:10:06.370><c> subset</c><00:10:06.910><c> of</c><00:10:06.940><c> nodes</c><00:10:07.270><c> that</c><00:10:07.570><c> are</c>

00:10:07.860 --> 00:10:07.870 align:start position:0%
of creating a subset of nodes that are
 

00:10:07.870 --> 00:10:09.630 align:start position:0%
of creating a subset of nodes that are
also<00:10:08.140><c> fault</c><00:10:08.709><c> tolerant</c><00:10:09.220><c> in</c><00:10:09.339><c> and</c><00:10:09.490><c> of</c><00:10:09.550><c> themselves</c>

00:10:09.630 --> 00:10:09.640 align:start position:0%
also fault tolerant in and of themselves
 

00:10:09.640 --> 00:10:13.680 align:start position:0%
also fault tolerant in and of themselves
and<00:10:10.360><c> so</c><00:10:11.350><c> with</c><00:10:12.040><c> adapt</c><00:10:12.399><c> this</c><00:10:12.700><c> means</c><00:10:13.089><c> either</c>

00:10:13.680 --> 00:10:13.690 align:start position:0%
and so with adapt this means either
 

00:10:13.690 --> 00:10:16.110 align:start position:0%
and so with adapt this means either
querying<00:10:14.440><c> a</c><00:10:14.620><c> single</c><00:10:14.980><c> node</c><00:10:15.130><c> and</c><00:10:15.399><c> praying</c><00:10:15.850><c> that</c>

00:10:16.110 --> 00:10:16.120 align:start position:0%
querying a single node and praying that
 

00:10:16.120 --> 00:10:18.090 align:start position:0%
querying a single node and praying that
it<00:10:16.209><c> doesn't</c><00:10:16.450><c> go</c><00:10:16.660><c> down</c><00:10:16.839><c> using</c><00:10:17.800><c> a</c><00:10:17.860><c> bunch</c><00:10:18.040><c> of</c>

00:10:18.090 --> 00:10:18.100 align:start position:0%
it doesn't go down using a bunch of
 

00:10:18.100 --> 00:10:19.560 align:start position:0%
it doesn't go down using a bunch of
third<00:10:18.310><c> party</c><00:10:18.670><c> nodes</c><00:10:18.880><c> and</c><00:10:19.089><c> hoping</c><00:10:19.329><c> you</c><00:10:19.390><c> have</c>

00:10:19.560 --> 00:10:19.570 align:start position:0%
third party nodes and hoping you have
 

00:10:19.570 --> 00:10:22.560 align:start position:0%
third party nodes and hoping you have
the<00:10:19.690><c> right</c><00:10:19.810><c> state</c><00:10:20.170><c> or</c><00:10:21.029><c> doing</c><00:10:22.029><c> what</c><00:10:22.180><c> in</c><00:10:22.300><c> fira</c>

00:10:22.560 --> 00:10:22.570 align:start position:0%
the right state or doing what in fira
 

00:10:22.570 --> 00:10:26.100 align:start position:0%
the right state or doing what in fira
did<00:10:22.870><c> which</c><00:10:23.829><c> is</c><00:10:24.160><c> writing</c><00:10:25.120><c> a</c><00:10:25.329><c> really</c><00:10:25.600><c> cool</c><00:10:25.870><c> piece</c>

00:10:26.100 --> 00:10:26.110 align:start position:0%
did which is writing a really cool piece
 

00:10:26.110 --> 00:10:28.829 align:start position:0%
did which is writing a really cool piece
of<00:10:26.140><c> software</c><00:10:26.740><c> and</c><00:10:26.860><c> hardware</c><00:10:27.300><c> called</c><00:10:28.300><c> ferryman</c>

00:10:28.829 --> 00:10:28.839 align:start position:0%
of software and hardware called ferryman
 

00:10:28.839 --> 00:10:32.370 align:start position:0%
of software and hardware called ferryman
which<00:10:29.589><c> basically</c><00:10:30.130><c> takes</c><00:10:31.170><c> introspects</c><00:10:32.170><c> the</c>

00:10:32.370 --> 00:10:32.380 align:start position:0%
which basically takes introspects the
 

00:10:32.380 --> 00:10:35.069 align:start position:0%
which basically takes introspects the
request<00:10:32.770><c> coming</c><00:10:33.040><c> in</c><00:10:33.310><c> and</c><00:10:33.550><c> then</c><00:10:34.209><c> it</c><00:10:34.540><c> sends</c><00:10:34.990><c> the</c>

00:10:35.069 --> 00:10:35.079 align:start position:0%
request coming in and then it sends the
 

00:10:35.079 --> 00:10:37.280 align:start position:0%
request coming in and then it sends the
request<00:10:35.230><c> off</c><00:10:35.649><c> to</c><00:10:35.829><c> the</c><00:10:35.920><c> proper</c><00:10:36.250><c> type</c><00:10:36.430><c> of</c><00:10:36.610><c> node</c>

00:10:37.280 --> 00:10:37.290 align:start position:0%
request off to the proper type of node
 

00:10:37.290 --> 00:10:39.960 align:start position:0%
request off to the proper type of node
also<00:10:38.290><c> provides</c><00:10:38.589><c> a</c><00:10:38.740><c> modern</c><00:10:38.920><c> pub</c><00:10:39.250><c> sub</c><00:10:39.550><c> layer</c><00:10:39.730><c> on</c>

00:10:39.960 --> 00:10:39.970 align:start position:0%
also provides a modern pub sub layer on
 

00:10:39.970 --> 00:10:43.380 align:start position:0%
also provides a modern pub sub layer on
top<00:10:40.209><c> of</c><00:10:40.270><c> that</c><00:10:40.740><c> and</c><00:10:41.740><c> then</c><00:10:41.860><c> allows</c><00:10:42.160><c> for</c><00:10:42.850><c> you</c><00:10:43.209><c> to</c>

00:10:43.380 --> 00:10:43.390 align:start position:0%
top of that and then allows for you to
 

00:10:43.390 --> 00:10:45.960 align:start position:0%
top of that and then allows for you to
subscribe<00:10:43.600><c> to</c><00:10:44.050><c> client</c><00:10:44.380><c> events</c><00:10:44.740><c> the</c><00:10:45.520><c> problem</c>

00:10:45.960 --> 00:10:45.970 align:start position:0%
subscribe to client events the problem
 

00:10:45.970 --> 00:10:47.730 align:start position:0%
subscribe to client events the problem
is<00:10:46.089><c> the</c><00:10:46.300><c> inferior</c><00:10:46.600><c> solution</c><00:10:47.110><c> is</c><00:10:47.470><c> very</c>

00:10:47.730 --> 00:10:47.740 align:start position:0%
is the inferior solution is very
 

00:10:47.740 --> 00:10:50.189 align:start position:0%
is the inferior solution is very
proprietary<00:10:48.520><c> and</c><00:10:48.820><c> we</c><00:10:49.149><c> make</c><00:10:49.329><c> sense</c><00:10:49.630><c> for</c><00:10:49.899><c> their</c>

00:10:50.189 --> 00:10:50.199 align:start position:0%
proprietary and we make sense for their
 

00:10:50.199 --> 00:10:52.380 align:start position:0%
proprietary and we make sense for their
setup<00:10:50.680><c> so</c><00:10:51.310><c> they</c><00:10:51.430><c> can't</c><00:10:51.670><c> really</c><00:10:51.790><c> open</c><00:10:52.180><c> source</c>

00:10:52.380 --> 00:10:52.390 align:start position:0%
setup so they can't really open source
 

00:10:52.390 --> 00:10:56.910 align:start position:0%
setup so they can't really open source
that<00:10:52.630><c> to</c><00:10:52.779><c> the</c><00:10:52.839><c> community</c><00:10:54.990><c> our</c><00:10:55.990><c> story</c><00:10:56.620><c> on</c><00:10:56.890><c> our</c>

00:10:56.910 --> 00:10:56.920 align:start position:0%
that to the community our story on our
 

00:10:56.920 --> 00:11:00.600 align:start position:0%
that to the community our story on our
gaff<00:10:57.399><c> nodes</c><00:10:58.199><c> we</c><00:10:59.199><c> do</c><00:10:59.410><c> about</c><00:10:59.680><c> 800</c><00:11:00.130><c> requests</c><00:11:00.430><c> per</c>

00:11:00.600 --> 00:11:00.610 align:start position:0%
gaff nodes we do about 800 requests per
 

00:11:00.610 --> 00:11:04.260 align:start position:0%
gaff nodes we do about 800 requests per
second<00:11:01.000><c> on</c><00:11:01.180><c> our</c><00:11:01.500><c> gatherings</c><00:11:03.029><c> requests</c><00:11:04.029><c> per</c>

00:11:04.260 --> 00:11:04.270 align:start position:0%
second on our gatherings requests per
 

00:11:04.270 --> 00:11:06.220 align:start position:0%
second on our gatherings requests per
day<00:11:04.470><c> that's</c><00:11:05.470><c> over</c>

00:11:06.220 --> 00:11:06.230 align:start position:0%
day that's over
 

00:11:06.230 --> 00:11:08.470 align:start position:0%
day that's over
to<00:11:06.350><c> clusters</c><00:11:06.800><c> of</c><00:11:06.830><c> three</c><00:11:07.040><c> nodes</c><00:11:07.280><c> each</c><00:11:07.480><c> so</c>

00:11:08.470 --> 00:11:08.480 align:start position:0%
to clusters of three nodes each so
 

00:11:08.480 --> 00:11:10.120 align:start position:0%
to clusters of three nodes each so
that's<00:11:08.780><c> a</c><00:11:08.990><c> fairly</c><00:11:09.260><c> large</c><00:11:09.470><c> amount</c><00:11:09.650><c> of</c><00:11:09.920><c> traffic</c>

00:11:10.120 --> 00:11:10.130 align:start position:0%
that's a fairly large amount of traffic
 

00:11:10.130 --> 00:11:14.700 align:start position:0%
that's a fairly large amount of traffic
and<00:11:11.020><c> under</c><00:11:12.020><c> this</c><00:11:12.140><c> load</c><00:11:12.500><c> death</c><00:11:13.250><c> actually</c><00:11:14.030><c> broke</c>

00:11:14.700 --> 00:11:14.710 align:start position:0%
and under this load death actually broke
 

00:11:14.710 --> 00:11:18.310 align:start position:0%
and under this load death actually broke
we<00:11:15.710><c> had</c><00:11:16.130><c> a</c><00:11:16.160><c> massive</c><00:11:16.610><c> memory</c><00:11:17.210><c> usage</c><00:11:17.630><c> issue</c><00:11:17.900><c> and</c>

00:11:18.310 --> 00:11:18.320 align:start position:0%
we had a massive memory usage issue and
 

00:11:18.320 --> 00:11:20.530 align:start position:0%
we had a massive memory usage issue and
a<00:11:18.350><c> recurring</c><00:11:18.800><c> memory</c><00:11:19.100><c> leak</c><00:11:19.340><c> that</c><00:11:19.880><c> caused</c><00:11:20.210><c> each</c>

00:11:20.530 --> 00:11:20.540 align:start position:0%
a recurring memory leak that caused each
 

00:11:20.540 --> 00:11:22.600 align:start position:0%
a recurring memory leak that caused each
node<00:11:20.810><c> to</c><00:11:20.990><c> slowly</c><00:11:21.260><c> utilize</c><00:11:21.770><c> all</c><00:11:22.160><c> the</c><00:11:22.460><c> RAM</c>

00:11:22.600 --> 00:11:22.610 align:start position:0%
node to slowly utilize all the RAM
 

00:11:22.610 --> 00:11:24.310 align:start position:0%
node to slowly utilize all the RAM
available<00:11:23.330><c> on</c><00:11:23.480><c> the</c><00:11:23.720><c> box</c>

00:11:24.310 --> 00:11:24.320 align:start position:0%
available on the box
 

00:11:24.320 --> 00:11:27.880 align:start position:0%
available on the box
we<00:11:25.280><c> tried</c><00:11:25.850><c> scaling</c><00:11:26.210><c> up</c><00:11:26.330><c> our</c><00:11:26.480><c> hardware</c><00:11:26.840><c> -</c><00:11:27.170><c> this</c>

00:11:27.880 --> 00:11:27.890 align:start position:0%
we tried scaling up our hardware - this
 

00:11:27.890 --> 00:11:30.820 align:start position:0%
we tried scaling up our hardware - this
is<00:11:28.010><c> AWS</c><00:11:28.490><c> terms</c><00:11:28.730><c> but</c><00:11:28.940><c> m-52</c><00:11:29.540><c> X</c><00:11:29.720><c> larges</c><00:11:30.140><c> so</c><00:11:30.650><c> it's</c><00:11:30.770><c> a</c>

00:11:30.820 --> 00:11:30.830 align:start position:0%
is AWS terms but m-52 X larges so it's a
 

00:11:30.830 --> 00:11:33.880 align:start position:0%
is AWS terms but m-52 X larges so it's a
32<00:11:31.220><c> gig</c><00:11:31.490><c> of</c><00:11:31.610><c> ram</c><00:11:31.640><c> 8</c><00:11:31.910><c> v</c><00:11:32.150><c> cpu</c><00:11:32.780><c> piece</c><00:11:33.440><c> of</c><00:11:33.590><c> hardware</c>

00:11:33.880 --> 00:11:33.890 align:start position:0%
32 gig of ram 8 v cpu piece of hardware
 

00:11:33.890 --> 00:11:37.270 align:start position:0%
32 gig of ram 8 v cpu piece of hardware
and<00:11:34.390><c> with</c><00:11:35.390><c> six</c><00:11:35.720><c> of</c><00:11:35.840><c> those</c><00:11:35.960><c> in</c><00:11:36.200><c> production</c><00:11:36.800><c> you</c>

00:11:37.270 --> 00:11:37.280 align:start position:0%
and with six of those in production you
 

00:11:37.280 --> 00:11:39.580 align:start position:0%
and with six of those in production you
should<00:11:37.610><c> be</c><00:11:37.760><c> able</c><00:11:37.940><c> to</c><00:11:38.090><c> do</c><00:11:38.360><c> substantially</c><00:11:39.320><c> more</c>

00:11:39.580 --> 00:11:39.590 align:start position:0%
should be able to do substantially more
 

00:11:39.590 --> 00:11:42.610 align:start position:0%
should be able to do substantially more
than<00:11:39.920><c> 70</c><00:11:40.610><c> million</c><00:11:40.790><c> requests</c><00:11:41.240><c> per</c><00:11:41.270><c> day</c><00:11:41.530><c> but</c><00:11:42.530><c> as</c>

00:11:42.610 --> 00:11:42.620 align:start position:0%
than 70 million requests per day but as
 

00:11:42.620 --> 00:11:44.680 align:start position:0%
than 70 million requests per day but as
you<00:11:42.710><c> can</c><00:11:42.800><c> see</c><00:11:42.860><c> from</c><00:11:43.100><c> the</c><00:11:43.160><c> chart</c><00:11:43.190><c> here</c><00:11:43.730><c> after</c>

00:11:44.680 --> 00:11:44.690 align:start position:0%
you can see from the chart here after
 

00:11:44.690 --> 00:11:46.300 align:start position:0%
you can see from the chart here after
about<00:11:44.840><c> 15</c><00:11:45.260><c> hours</c><00:11:45.410><c> we</c><00:11:45.680><c> had</c><00:11:45.770><c> topped</c><00:11:46.040><c> out</c><00:11:46.190><c> our</c>

00:11:46.300 --> 00:11:46.310 align:start position:0%
about 15 hours we had topped out our
 

00:11:46.310 --> 00:11:49.120 align:start position:0%
about 15 hours we had topped out our
memory<00:11:46.580><c> right</c><00:11:47.210><c> at</c><00:11:47.330><c> 32</c><00:11:47.720><c> gigs</c><00:11:48.020><c> and</c><00:11:48.290><c> the</c><00:11:48.860><c> drops</c>

00:11:49.120 --> 00:11:49.130 align:start position:0%
memory right at 32 gigs and the drops
 

00:11:49.130 --> 00:11:50.440 align:start position:0%
memory right at 32 gigs and the drops
you<00:11:49.340><c> see</c><00:11:49.520><c> where</c><00:11:49.730><c> we</c><00:11:49.820><c> actually</c><00:11:50.210><c> went</c><00:11:50.360><c> in</c>

00:11:50.440 --> 00:11:50.450 align:start position:0%
you see where we actually went in
 

00:11:50.450 --> 00:11:51.760 align:start position:0%
you see where we actually went in
physically<00:11:50.960><c> and</c><00:11:51.080><c> restarted</c><00:11:51.560><c> the</c><00:11:51.620><c> goth</c>

00:11:51.760 --> 00:11:51.770 align:start position:0%
physically and restarted the goth
 

00:11:51.770 --> 00:11:57.310 align:start position:0%
physically and restarted the goth
process<00:11:54.220><c> the</c><00:11:55.220><c> memory</c><00:11:56.150><c> leak</c><00:11:56.300><c> meant</c><00:11:56.690><c> that</c><00:11:57.170><c> we</c>

00:11:57.310 --> 00:11:57.320 align:start position:0%
process the memory leak meant that we
 

00:11:57.320 --> 00:11:58.870 align:start position:0%
process the memory leak meant that we
had<00:11:57.440><c> to</c><00:11:57.470><c> cycle</c><00:11:57.890><c> our</c><00:11:57.980><c> gas</c><00:11:58.130><c> nodes</c><00:11:58.370><c> before</c><00:11:58.610><c> the</c>

00:11:58.870 --> 00:11:58.880 align:start position:0%
had to cycle our gas nodes before the
 

00:11:58.880 --> 00:12:01.030 align:start position:0%
had to cycle our gas nodes before the
GAF<00:11:59.030><c> processes</c><00:11:59.660><c> used</c><00:12:00.050><c> all</c><00:12:00.320><c> the</c><00:12:00.470><c> available</c><00:12:00.680><c> ram</c>

00:12:01.030 --> 00:12:01.040 align:start position:0%
GAF processes used all the available ram
 

00:12:01.040 --> 00:12:03.760 align:start position:0%
GAF processes used all the available ram
in<00:12:01.880><c> fact</c><00:12:02.150><c> if</c><00:12:02.270><c> we</c><00:12:02.390><c> didn't</c><00:12:02.690><c> catch</c><00:12:02.900><c> it</c><00:12:03.080><c> in</c><00:12:03.170><c> time</c>

00:12:03.760 --> 00:12:03.770 align:start position:0%
in fact if we didn't catch it in time
 

00:12:03.770 --> 00:12:07.510 align:start position:0%
in fact if we didn't catch it in time
the<00:12:04.190><c> box</c><00:12:04.460><c> itself</c><00:12:04.700><c> was</c><00:12:05.540><c> so</c><00:12:06.100><c> the</c><00:12:07.100><c> ram</c><00:12:07.220><c> was</c><00:12:07.370><c> still</c>

00:12:07.510 --> 00:12:07.520 align:start position:0%
the box itself was so the ram was still
 

00:12:07.520 --> 00:12:09.340 align:start position:0%
the box itself was so the ram was still
used<00:12:07.760><c> up</c><00:12:07.880><c> you</c><00:12:08.030><c> couldn't</c><00:12:08.300><c> even</c><00:12:08.390><c> SSH</c><00:12:08.930><c> into</c><00:12:09.260><c> the</c>

00:12:09.340 --> 00:12:09.350 align:start position:0%
used up you couldn't even SSH into the
 

00:12:09.350 --> 00:12:11.800 align:start position:0%
used up you couldn't even SSH into the
box<00:12:09.590><c> to</c><00:12:10.280><c> kill</c><00:12:10.460><c> the</c><00:12:10.580><c> GAF</c><00:12:10.700><c> process</c><00:12:11.180><c> you</c><00:12:11.600><c> had</c><00:12:11.720><c> to</c>

00:12:11.800 --> 00:12:11.810 align:start position:0%
box to kill the GAF process you had to
 

00:12:11.810 --> 00:12:15.670 align:start position:0%
box to kill the GAF process you had to
restart<00:12:12.200><c> the</c><00:12:12.500><c> whole</c><00:12:12.710><c> node</c><00:12:13.520><c> itself</c><00:12:13.880><c> and</c><00:12:14.680><c> this</c>

00:12:15.670 --> 00:12:15.680 align:start position:0%
restart the whole node itself and this
 

00:12:15.680 --> 00:12:17.080 align:start position:0%
restart the whole node itself and this
meant<00:12:15.920><c> that</c><00:12:16.040><c> we</c><00:12:16.130><c> were</c><00:12:16.190><c> waking</c><00:12:16.370><c> up</c><00:12:16.670><c> every</c><00:12:16.970><c> three</c>

00:12:17.080 --> 00:12:17.090 align:start position:0%
meant that we were waking up every three
 

00:12:17.090 --> 00:12:18.490 align:start position:0%
meant that we were waking up every three
to<00:12:17.240><c> four</c><00:12:17.390><c> hours</c><00:12:17.450><c> to</c><00:12:18.020><c> check</c><00:12:18.170><c> memory</c>

00:12:18.490 --> 00:12:18.500 align:start position:0%
to four hours to check memory
 

00:12:18.500 --> 00:12:20.500 align:start position:0%
to four hours to check memory
consumption<00:12:18.920><c> and</c><00:12:19.310><c> manually</c><00:12:20.090><c> we</c><00:12:20.210><c> start</c><00:12:20.420><c> the</c>

00:12:20.500 --> 00:12:20.510 align:start position:0%
consumption and manually we start the
 

00:12:20.510 --> 00:12:21.730 align:start position:0%
consumption and manually we start the
process<00:12:20.720><c> to</c><00:12:21.110><c> make</c><00:12:21.230><c> sure</c><00:12:21.380><c> we</c><00:12:21.470><c> didn't</c><00:12:21.650><c> get</c>

00:12:21.730 --> 00:12:21.740 align:start position:0%
process to make sure we didn't get
 

00:12:21.740 --> 00:12:24.580 align:start position:0%
process to make sure we didn't get
locked<00:12:21.950><c> out</c><00:12:22.100><c> of</c><00:12:22.130><c> our</c><00:12:22.220><c> boxes</c><00:12:22.730><c> and</c><00:12:23.500><c> once</c><00:12:24.500><c> we</c>

00:12:24.580 --> 00:12:24.590 align:start position:0%
locked out of our boxes and once we
 

00:12:24.590 --> 00:12:26.380 align:start position:0%
locked out of our boxes and once we
figure<00:12:24.710><c> that's</c><00:12:24.950><c> the</c><00:12:24.980><c> usual</c><00:12:25.190><c> cycle</c><00:12:25.820><c> of</c><00:12:26.000><c> RAM</c>

00:12:26.380 --> 00:12:26.390 align:start position:0%
figure that's the usual cycle of RAM
 

00:12:26.390 --> 00:12:28.600 align:start position:0%
figure that's the usual cycle of RAM
usage<00:12:26.630><c> we</c><00:12:27.050><c> were</c><00:12:27.140><c> able</c><00:12:27.320><c> to</c><00:12:27.380><c> write</c><00:12:27.560><c> cron</c><00:12:27.830><c> jobs</c><00:12:28.160><c> to</c>

00:12:28.600 --> 00:12:28.610 align:start position:0%
usage we were able to write cron jobs to
 

00:12:28.610 --> 00:12:31.690 align:start position:0%
usage we were able to write cron jobs to
then<00:12:28.730><c> go</c><00:12:28.910><c> in</c><00:12:29.120><c> and</c><00:12:29.420><c> restart</c><00:12:30.320><c> our</c><00:12:30.500><c> Geth</c><00:12:30.710><c> process</c>

00:12:31.690 --> 00:12:31.700 align:start position:0%
then go in and restart our Geth process
 

00:12:31.700 --> 00:12:33.790 align:start position:0%
then go in and restart our Geth process
and<00:12:32.030><c> we</c><00:12:32.480><c> staged</c><00:12:32.750><c> that</c><00:12:32.990><c> over</c><00:12:33.290><c> about</c><00:12:33.350><c> an</c><00:12:33.590><c> hour</c>

00:12:33.790 --> 00:12:33.800 align:start position:0%
and we staged that over about an hour
 

00:12:33.800 --> 00:12:37.570 align:start position:0%
and we staged that over about an hour
across<00:12:34.220><c> six</c><00:12:34.610><c> nodes</c><00:12:34.880><c> and</c><00:12:35.470><c> it</c><00:12:36.470><c> worked</c><00:12:36.740><c> but</c><00:12:37.400><c> for</c>

00:12:37.570 --> 00:12:37.580 align:start position:0%
across six nodes and it worked but for
 

00:12:37.580 --> 00:12:38.350 align:start position:0%
across six nodes and it worked but for
any<00:12:37.700><c> of</c><00:12:37.760><c> you</c><00:12:37.910><c> guys</c><00:12:38.000><c> that</c><00:12:38.150><c> work</c><00:12:38.300><c> in</c>

00:12:38.350 --> 00:12:38.360 align:start position:0%
any of you guys that work in
 

00:12:38.360 --> 00:12:40.180 align:start position:0%
any of you guys that work in
infrastructure<00:12:38.870><c> trusting</c><00:12:39.860><c> your</c><00:12:39.920><c> entire</c>

00:12:40.180 --> 00:12:40.190 align:start position:0%
infrastructure trusting your entire
 

00:12:40.190 --> 00:12:43.000 align:start position:0%
infrastructure trusting your entire
system<00:12:40.640><c> to</c><00:12:40.670><c> six</c><00:12:40.970><c> cron</c><00:12:41.240><c> jobs</c><00:12:41.570><c> is</c><00:12:42.020><c> incredibly</c>

00:12:43.000 --> 00:12:43.010 align:start position:0%
system to six cron jobs is incredibly
 

00:12:43.010 --> 00:12:46.150 align:start position:0%
system to six cron jobs is incredibly
scary<00:12:43.480><c> so</c><00:12:44.480><c> we</c><00:12:45.230><c> started</c><00:12:45.620><c> tinkering</c><00:12:45.770><c> with</c><00:12:45.950><c> some</c>

00:12:46.150 --> 00:12:46.160 align:start position:0%
scary so we started tinkering with some
 

00:12:46.160 --> 00:12:48.370 align:start position:0%
scary so we started tinkering with some
of<00:12:46.280><c> our</c><00:12:46.400><c> guest</c><00:12:47.030><c> settings</c><00:12:47.390><c> and</c><00:12:47.660><c> we</c><00:12:47.870><c> actually</c>

00:12:48.370 --> 00:12:48.380 align:start position:0%
of our guest settings and we actually
 

00:12:48.380 --> 00:12:50.650 align:start position:0%
of our guest settings and we actually
dropped<00:12:48.560><c> our</c><00:12:48.770><c> max</c><00:12:48.950><c> peers</c><00:12:49.370><c> setting</c><00:12:49.790><c> and</c><00:12:49.970><c> the</c>

00:12:50.650 --> 00:12:50.660 align:start position:0%
dropped our max peers setting and the
 

00:12:50.660 --> 00:12:52.890 align:start position:0%
dropped our max peers setting and the
memory<00:12:50.930><c> usage</c><00:12:51.080><c> issue</c><00:12:51.440><c> was</c><00:12:51.710><c> largely</c><00:12:52.070><c> resolved</c>

00:12:52.890 --> 00:12:52.900 align:start position:0%
memory usage issue was largely resolved
 

00:12:52.900 --> 00:12:55.270 align:start position:0%
memory usage issue was largely resolved
and<00:12:53.900><c> it</c><00:12:54.020><c> turned</c><00:12:54.200><c> out</c><00:12:54.290><c> -</c><00:12:54.410><c> the</c><00:12:54.500><c> memory</c><00:12:54.770><c> leak</c><00:12:54.920><c> with</c>

00:12:55.270 --> 00:12:55.280 align:start position:0%
and it turned out - the memory leak with
 

00:12:55.280 --> 00:12:57.070 align:start position:0%
and it turned out - the memory leak with
the<00:12:55.490><c> max</c><00:12:55.700><c> peer</c><00:12:56.000><c> setting</c><00:12:56.360><c> really</c><00:12:56.900><c> only</c>

00:12:57.070 --> 00:12:57.080 align:start position:0%
the max peer setting really only
 

00:12:57.080 --> 00:12:58.360 align:start position:0%
the max peer setting really only
occurred<00:12:57.440><c> at</c><00:12:57.560><c> the</c><00:12:57.650><c> scale</c><00:12:57.890><c> at</c><00:12:58.010><c> which</c><00:12:58.040><c> we</c><00:12:58.250><c> were</c>

00:12:58.360 --> 00:12:58.370 align:start position:0%
occurred at the scale at which we were
 

00:12:58.370 --> 00:13:00.040 align:start position:0%
occurred at the scale at which we were
operating<00:12:58.730><c> and</c><00:12:59.150><c> it</c><00:12:59.450><c> wasn't</c><00:12:59.630><c> publicly</c>

00:13:00.040 --> 00:13:00.050 align:start position:0%
operating and it wasn't publicly
 

00:13:00.050 --> 00:13:02.920 align:start position:0%
operating and it wasn't publicly
documented<00:13:00.380><c> prior</c><00:13:00.860><c> to</c><00:13:01.040><c> that</c><00:13:01.600><c> as</c><00:13:02.600><c> you</c><00:13:02.660><c> can</c><00:13:02.810><c> see</c>

00:13:02.920 --> 00:13:02.930 align:start position:0%
documented prior to that as you can see
 

00:13:02.930 --> 00:13:04.600 align:start position:0%
documented prior to that as you can see
in<00:13:02.990><c> the</c><00:13:03.080><c> charts</c><00:13:03.290><c> here</c><00:13:03.530><c> those</c><00:13:04.040><c> those</c><00:13:04.310><c> drops</c>

00:13:04.600 --> 00:13:04.610 align:start position:0%
in the charts here those those drops
 

00:13:04.610 --> 00:13:05.980 align:start position:0%
in the charts here those those drops
like<00:13:04.790><c> that's</c><00:13:05.060><c> when</c><00:13:05.270><c> we</c><00:13:05.420><c> were</c><00:13:05.540><c> restarting</c>

00:13:05.980 --> 00:13:05.990 align:start position:0%
like that's when we were restarting
 

00:13:05.990 --> 00:13:10.330 align:start position:0%
like that's when we were restarting
death<00:13:08.200><c> the</c><00:13:09.200><c> stability</c><00:13:09.620><c> that</c><00:13:09.710><c> we</c><00:13:09.830><c> did</c><00:13:10.010><c> finally</c>

00:13:10.330 --> 00:13:10.340 align:start position:0%
death the stability that we did finally
 

00:13:10.340 --> 00:13:11.830 align:start position:0%
death the stability that we did finally
get<00:13:10.490><c> came</c><00:13:10.760><c> at</c><00:13:10.910><c> an</c><00:13:11.030><c> incredible</c><00:13:11.390><c> cost</c><00:13:11.600><c> to</c><00:13:11.780><c> our</c>

00:13:11.830 --> 00:13:11.840 align:start position:0%
get came at an incredible cost to our
 

00:13:11.840 --> 00:13:14.950 align:start position:0%
get came at an incredible cost to our
operations<00:13:12.350><c> team</c><00:13:12.590><c> so</c><00:13:13.490><c> for</c><00:13:14.270><c> at</c><00:13:14.540><c> least</c><00:13:14.630><c> two</c><00:13:14.840><c> of</c>

00:13:14.950 --> 00:13:14.960 align:start position:0%
operations team so for at least two of
 

00:13:14.960 --> 00:13:16.090 align:start position:0%
operations team so for at least two of
us<00:13:15.050><c> we</c><00:13:15.200><c> were</c><00:13:15.260><c> getting</c><00:13:15.440><c> nothing</c><00:13:15.710><c> done</c><00:13:15.740><c> during</c>

00:13:16.090 --> 00:13:16.100 align:start position:0%
us we were getting nothing done during
 

00:13:16.100 --> 00:13:19.450 align:start position:0%
us we were getting nothing done during
the<00:13:16.280><c> day</c><00:13:16.310><c> other</c><00:13:16.850><c> than</c><00:13:17.450><c> goth</c><00:13:17.600><c> node</c><00:13:17.840><c> work</c><00:13:18.110><c> and</c><00:13:18.460><c> I</c>

00:13:19.450 --> 00:13:19.460 align:start position:0%
the day other than goth node work and I
 

00:13:19.460 --> 00:13:19.840 align:start position:0%
the day other than goth node work and I
can't

00:13:19.840 --> 00:13:19.850 align:start position:0%
can't
 

00:13:19.850 --> 00:13:21.370 align:start position:0%
can't
that<00:13:20.149><c> your</c><00:13:20.269><c> sleep</c><00:13:20.449><c> quality</c><00:13:20.720><c> certainly</c>

00:13:21.370 --> 00:13:21.380 align:start position:0%
that your sleep quality certainly
 

00:13:21.380 --> 00:13:23.110 align:start position:0%
that your sleep quality certainly
suffers<00:13:21.829><c> when</c><00:13:22.069><c> you're</c><00:13:22.190><c> waking</c><00:13:22.310><c> up</c><00:13:22.610><c> every</c><00:13:22.880><c> few</c>

00:13:23.110 --> 00:13:23.120 align:start position:0%
suffers when you're waking up every few
 

00:13:23.120 --> 00:13:25.090 align:start position:0%
suffers when you're waking up every few
hours<00:13:23.480><c> to</c><00:13:23.990><c> make</c><00:13:24.170><c> sure</c><00:13:24.410><c> that</c><00:13:24.589><c> your</c><00:13:24.740><c> boxes</c>

00:13:25.090 --> 00:13:25.100 align:start position:0%
hours to make sure that your boxes
 

00:13:25.100 --> 00:13:27.120 align:start position:0%
hours to make sure that your boxes
aren't<00:13:25.250><c> freezing</c><00:13:25.759><c> or</c><00:13:26.060><c> running</c><00:13:26.569><c> out</c><00:13:26.660><c> of</c><00:13:26.690><c> memory</c>

00:13:27.120 --> 00:13:27.130 align:start position:0%
aren't freezing or running out of memory
 

00:13:27.130 --> 00:13:29.800 align:start position:0%
aren't freezing or running out of memory
also<00:13:28.130><c> your</c><00:13:28.579><c> morale</c><00:13:28.850><c> really</c><00:13:29.209><c> suffers</c><00:13:29.600><c> when</c>

00:13:29.800 --> 00:13:29.810 align:start position:0%
also your morale really suffers when
 

00:13:29.810 --> 00:13:31.629 align:start position:0%
also your morale really suffers when
every<00:13:30.170><c> morning</c><00:13:30.529><c> before</c><00:13:30.649><c> breakfast</c><00:13:31.279><c> you</c><00:13:31.459><c> wake</c>

00:13:31.629 --> 00:13:31.639 align:start position:0%
every morning before breakfast you wake
 

00:13:31.639 --> 00:13:34.389 align:start position:0%
every morning before breakfast you wake
up<00:13:31.850><c> to</c><00:13:32.089><c> 50-plus</c><00:13:32.660><c> pager</c><00:13:33.079><c> duty</c><00:13:33.440><c> alerts</c><00:13:33.680><c> and</c><00:13:34.009><c> they</c>

00:13:34.389 --> 00:13:34.399 align:start position:0%
up to 50-plus pager duty alerts and they
 

00:13:34.399 --> 00:13:36.780 align:start position:0%
up to 50-plus pager duty alerts and they
just<00:13:34.579><c> keep</c><00:13:34.790><c> rolling</c><00:13:35.240><c> in</c><00:13:35.389><c> throughout</c><00:13:35.660><c> the</c><00:13:35.720><c> day</c>

00:13:36.780 --> 00:13:36.790 align:start position:0%
just keep rolling in throughout the day
 

00:13:36.790 --> 00:13:39.879 align:start position:0%
just keep rolling in throughout the day
so<00:13:37.790><c> we</c><00:13:38.269><c> wanted</c><00:13:38.540><c> to</c><00:13:38.630><c> fix</c><00:13:38.810><c> this</c><00:13:39.050><c> and</c><00:13:39.350><c> we</c><00:13:39.500><c> embarked</c>

00:13:39.879 --> 00:13:39.889 align:start position:0%
so we wanted to fix this and we embarked
 

00:13:39.889 --> 00:13:42.280 align:start position:0%
so we wanted to fix this and we embarked
any<00:13:40.069><c> massive</c><00:13:40.430><c> experimentation</c><00:13:41.060><c> to</c><00:13:41.899><c> find</c><00:13:42.170><c> the</c>

00:13:42.280 --> 00:13:42.290 align:start position:0%
any massive experimentation to find the
 

00:13:42.290 --> 00:13:43.329 align:start position:0%
any massive experimentation to find the
correct<00:13:42.589><c> hardware</c><00:13:42.769><c> and</c><00:13:43.160><c> software</c>

00:13:43.329 --> 00:13:43.339 align:start position:0%
correct hardware and software
 

00:13:43.339 --> 00:13:44.889 align:start position:0%
correct hardware and software
combination<00:13:44.240><c> that</c><00:13:44.420><c> would</c><00:13:44.509><c> be</c><00:13:44.630><c> the</c><00:13:44.750><c> most</c>

00:13:44.889 --> 00:13:44.899 align:start position:0%
combination that would be the most
 

00:13:44.899 --> 00:13:46.809 align:start position:0%
combination that would be the most
stable<00:13:45.230><c> and</c><00:13:45.610><c> cost-effective</c>

00:13:46.809 --> 00:13:46.819 align:start position:0%
stable and cost-effective
 

00:13:46.819 --> 00:13:49.300 align:start position:0%
stable and cost-effective
we<00:13:47.750><c> ended</c><00:13:47.990><c> up</c><00:13:48.079><c> iterating</c><00:13:48.709><c> over</c><00:13:48.769><c> ten</c><00:13:49.040><c> different</c>

00:13:49.300 --> 00:13:49.310 align:start position:0%
we ended up iterating over ten different
 

00:13:49.310 --> 00:13:51.639 align:start position:0%
we ended up iterating over ten different
instance<00:13:49.940><c> types</c><00:13:50.209><c> spinning</c><00:13:51.199><c> up</c><00:13:51.290><c> everything</c>

00:13:51.639 --> 00:13:51.649 align:start position:0%
instance types spinning up everything
 

00:13:51.649 --> 00:13:55.030 align:start position:0%
instance types spinning up everything
from<00:13:51.769><c> t2</c><00:13:52.040><c> micros</c><00:13:52.730><c> to</c><00:13:53.180><c> four</c><00:13:53.420><c> Excel</c><00:13:53.750><c> boxes</c><00:13:54.319><c> and</c>

00:13:55.030 --> 00:13:55.040 align:start position:0%
from t2 micros to four Excel boxes and
 

00:13:55.040 --> 00:13:57.160 align:start position:0%
from t2 micros to four Excel boxes and
we<00:13:55.279><c> tried</c><00:13:55.459><c> everything</c><00:13:55.639><c> from</c><00:13:55.839><c> compute</c><00:13:56.839><c> focus</c>

00:13:57.160 --> 00:13:57.170 align:start position:0%
we tried everything from compute focus
 

00:13:57.170 --> 00:13:59.379 align:start position:0%
we tried everything from compute focus
memory<00:13:57.500><c> focus</c><00:13:57.949><c> instant</c><00:13:58.579><c> store</c><00:13:58.910><c> focused</c>

00:13:59.379 --> 00:13:59.389 align:start position:0%
memory focus instant store focused
 

00:13:59.389 --> 00:14:02.139 align:start position:0%
memory focus instant store focused
trying<00:14:00.170><c> to</c><00:14:00.290><c> find</c><00:14:00.589><c> and</c><00:14:00.920><c> profile</c><00:14:01.459><c> the</c><00:14:01.699><c> way</c><00:14:01.850><c> that</c>

00:14:02.139 --> 00:14:02.149 align:start position:0%
trying to find and profile the way that
 

00:14:02.149 --> 00:14:04.240 align:start position:0%
trying to find and profile the way that
the<00:14:02.360><c> Geth</c><00:14:02.660><c> process</c><00:14:03.199><c> worked</c><00:14:03.529><c> under</c><00:14:03.920><c> the</c><00:14:04.040><c> loads</c>

00:14:04.240 --> 00:14:04.250 align:start position:0%
the Geth process worked under the loads
 

00:14:04.250 --> 00:14:06.660 align:start position:0%
the Geth process worked under the loads
that<00:14:04.459><c> we</c><00:14:04.579><c> were</c><00:14:04.699><c> seeing</c>

00:14:06.660 --> 00:14:06.670 align:start position:0%
that we were seeing
 

00:14:06.670 --> 00:14:08.949 align:start position:0%
that we were seeing
we<00:14:07.670><c> made</c><00:14:07.850><c> some</c><00:14:08.000><c> concessions</c><00:14:08.180><c> along</c><00:14:08.720><c> the</c><00:14:08.839><c> way</c>

00:14:08.949 --> 00:14:08.959 align:start position:0%
we made some concessions along the way
 

00:14:08.959 --> 00:14:11.740 align:start position:0%
we made some concessions along the way
that<00:14:09.769><c> we</c><00:14:10.250><c> have</c><00:14:10.670><c> built</c><00:14:11.120><c> into</c><00:14:11.300><c> our</c><00:14:11.449><c> open</c><00:14:11.630><c> source</c>

00:14:11.740 --> 00:14:11.750 align:start position:0%
that we have built into our open source
 

00:14:11.750 --> 00:14:14.949 align:start position:0%
that we have built into our open source
solution<00:14:12.319><c> unfortunately</c><00:14:13.180><c> no</c><00:14:14.180><c> pub/sub</c><00:14:14.630><c> method</c>

00:14:14.949 --> 00:14:14.959 align:start position:0%
solution unfortunately no pub/sub method
 

00:14:14.959 --> 00:14:15.879 align:start position:0%
solution unfortunately no pub/sub method
meant<00:14:15.230><c> that</c><00:14:15.350><c> we</c><00:14:15.440><c> were</c><00:14:15.500><c> just</c><00:14:15.589><c> gonna</c><00:14:15.709><c> brute</c>

00:14:15.879 --> 00:14:15.889 align:start position:0%
meant that we were just gonna brute
 

00:14:15.889 --> 00:14:17.980 align:start position:0%
meant that we were just gonna brute
force<00:14:16.130><c> it</c><00:14:16.310><c> and</c><00:14:16.490><c> that</c><00:14:17.360><c> was</c><00:14:17.509><c> one</c><00:14:17.660><c> of</c><00:14:17.690><c> our</c><00:14:17.779><c> big</c>

00:14:17.980 --> 00:14:17.990 align:start position:0%
force it and that was one of our big
 

00:14:17.990 --> 00:14:20.610 align:start position:0%
force it and that was one of our big
decisions<00:14:18.019><c> out</c><00:14:18.800><c> of</c><00:14:19.190><c> the</c><00:14:19.339><c> bat</c><00:14:19.459><c> out</c><00:14:20.180><c> of</c><00:14:20.209><c> the</c><00:14:20.300><c> gate</c>

00:14:20.610 --> 00:14:20.620 align:start position:0%
decisions out of the bat out of the gate
 

00:14:20.620 --> 00:14:23.019 align:start position:0%
decisions out of the bat out of the gate
we<00:14:21.620><c> couldn't</c><00:14:21.920><c> guarantee</c><00:14:22.040><c> that</c><00:14:22.370><c> a</c><00:14:22.610><c> single</c><00:14:22.910><c> node</c>

00:14:23.019 --> 00:14:23.029 align:start position:0%
we couldn't guarantee that a single node
 

00:14:23.029 --> 00:14:24.910 align:start position:0%
we couldn't guarantee that a single node
was<00:14:23.180><c> up</c><00:14:23.329><c> so</c><00:14:23.839><c> we</c><00:14:24.019><c> needed</c><00:14:24.170><c> to</c><00:14:24.259><c> load</c><00:14:24.470><c> balancer</c>

00:14:24.910 --> 00:14:24.920 align:start position:0%
was up so we needed to load balancer
 

00:14:24.920 --> 00:14:27.220 align:start position:0%
was up so we needed to load balancer
nodes<00:14:25.389><c> we</c><00:14:26.389><c> couldn't</c><00:14:26.750><c> guarantee</c><00:14:26.870><c> there</c><00:14:27.170><c> are</c>

00:14:27.220 --> 00:14:27.230 align:start position:0%
nodes we couldn't guarantee there are
 

00:14:27.230 --> 00:14:29.650 align:start position:0%
nodes we couldn't guarantee there are
nodes<00:14:27.350><c> were</c><00:14:27.529><c> in</c><00:14:27.680><c> sync</c><00:14:28.040><c> and</c><00:14:28.250><c> up</c><00:14:28.639><c> so</c><00:14:29.389><c> we</c><00:14:29.480><c> needed</c>

00:14:29.650 --> 00:14:29.660 align:start position:0%
nodes were in sync and up so we needed
 

00:14:29.660 --> 00:14:32.019 align:start position:0%
nodes were in sync and up so we needed
to<00:14:29.779><c> write</c><00:14:29.930><c> health</c><00:14:30.170><c> checks</c><00:14:30.670><c> we</c><00:14:31.670><c> also</c><00:14:31.790><c> couldn't</c>

00:14:32.019 --> 00:14:32.029 align:start position:0%
to write health checks we also couldn't
 

00:14:32.029 --> 00:14:33.639 align:start position:0%
to write health checks we also couldn't
guarantee<00:14:32.209><c> that</c><00:14:32.750><c> a</c><00:14:32.779><c> node</c><00:14:33.110><c> was</c><00:14:33.319><c> at</c><00:14:33.410><c> the</c><00:14:33.500><c> latest</c>

00:14:33.639 --> 00:14:33.649 align:start position:0%
guarantee that a node was at the latest
 

00:14:33.649 --> 00:14:36.040 align:start position:0%
guarantee that a node was at the latest
head<00:14:33.980><c> so</c><00:14:34.250><c> we</c><00:14:34.339><c> wanted</c><00:14:34.610><c> to</c><00:14:34.699><c> do</c><00:14:34.819><c> pure</c><00:14:35.089><c> checking</c><00:14:35.540><c> to</c>

00:14:36.040 --> 00:14:36.050 align:start position:0%
head so we wanted to do pure checking to
 

00:14:36.050 --> 00:14:37.749 align:start position:0%
head so we wanted to do pure checking to
make<00:14:36.079><c> sure</c><00:14:36.259><c> that</c><00:14:36.589><c> we</c><00:14:36.709><c> were</c><00:14:36.800><c> actually</c><00:14:36.980><c> at</c><00:14:37.490><c> the</c>

00:14:37.749 --> 00:14:37.759 align:start position:0%
make sure that we were actually at the
 

00:14:37.759 --> 00:14:39.040 align:start position:0%
make sure that we were actually at the
the<00:14:38.029><c> head</c><00:14:38.180><c> state</c><00:14:38.420><c> that</c><00:14:38.540><c> we</c><00:14:38.630><c> thought</c><00:14:38.810><c> we</c><00:14:38.930><c> were</c>

00:14:39.040 --> 00:14:39.050 align:start position:0%
the head state that we thought we were
 

00:14:39.050 --> 00:14:40.960 align:start position:0%
the head state that we thought we were
so<00:14:39.980><c> that</c><00:14:40.100><c> combination</c><00:14:40.339><c> was</c><00:14:40.639><c> kind</c><00:14:40.850><c> of</c><00:14:40.880><c> the</c>

00:14:40.960 --> 00:14:40.970 align:start position:0%
so that combination was kind of the
 

00:14:40.970 --> 00:14:42.160 align:start position:0%
so that combination was kind of the
secret<00:14:41.240><c> sauce</c><00:14:41.420><c> that</c><00:14:41.630><c> no</c><00:14:41.720><c> one</c><00:14:41.870><c> was</c><00:14:41.959><c> really</c>

00:14:42.160 --> 00:14:42.170 align:start position:0%
secret sauce that no one was really
 

00:14:42.170 --> 00:14:43.660 align:start position:0%
secret sauce that no one was really
talking<00:14:42.470><c> about</c><00:14:42.500><c> online</c><00:14:42.740><c> which</c><00:14:43.490><c> was</c>

00:14:43.660 --> 00:14:43.670 align:start position:0%
talking about online which was
 

00:14:43.670 --> 00:14:45.340 align:start position:0%
talking about online which was
aggressive<00:14:44.120><c> health</c><00:14:44.269><c> checking</c><00:14:44.689><c> aggressive</c>

00:14:45.340 --> 00:14:45.350 align:start position:0%
aggressive health checking aggressive
 

00:14:45.350 --> 00:14:47.379 align:start position:0%
aggressive health checking aggressive
peer<00:14:45.560><c> checking</c><00:14:45.949><c> load</c><00:14:46.550><c> balancing</c><00:14:47.149><c> and</c>

00:14:47.379 --> 00:14:47.389 align:start position:0%
peer checking load balancing and
 

00:14:47.389 --> 00:14:51.610 align:start position:0%
peer checking load balancing and
improper<00:14:47.899><c> hardware</c><00:14:49.959><c> so</c><00:14:50.959><c> let's</c><00:14:51.500><c> talk</c><00:14:51.560><c> about</c>

00:14:51.610 --> 00:14:51.620 align:start position:0%
improper hardware so let's talk about
 

00:14:51.620 --> 00:14:53.139 align:start position:0%
improper hardware so let's talk about
the<00:14:51.829><c> infrastructure</c><00:14:52.189><c> we</c><00:14:52.339><c> actually</c><00:14:52.639><c> run</c><00:14:52.880><c> in</c>

00:14:53.139 --> 00:14:53.149 align:start position:0%
the infrastructure we actually run in
 

00:14:53.149 --> 00:14:54.910 align:start position:0%
the infrastructure we actually run in
depth<00:14:53.569><c> is</c><00:14:53.839><c> what</c><00:14:54.259><c> we're</c><00:14:54.350><c> gonna</c><00:14:54.470><c> be</c><00:14:54.649><c> open</c>

00:14:54.910 --> 00:14:54.920 align:start position:0%
depth is what we're gonna be open
 

00:14:54.920 --> 00:15:00.910 align:start position:0%
depth is what we're gonna be open
sourcing<00:14:55.990><c> so</c><00:14:58.420><c> when</c><00:14:59.420><c> when</c><00:15:00.290><c> we</c><00:15:00.410><c> run</c><00:15:00.680><c> or</c><00:15:00.769><c> knows</c>

00:15:00.910 --> 00:15:00.920 align:start position:0%
sourcing so when when we run or knows
 

00:15:00.920 --> 00:15:04.210 align:start position:0%
sourcing so when when we run or knows
you<00:15:01.069><c> run</c><00:15:01.220><c> on</c><00:15:01.310><c> top</c><00:15:01.459><c> of</c><00:15:01.519><c> Boone</c><00:15:02.509><c> -</c><00:15:02.689><c> so</c><00:15:03.110><c> we</c><00:15:03.500><c> use</c><00:15:03.800><c> the</c>

00:15:04.210 --> 00:15:04.220 align:start position:0%
you run on top of Boone - so we use the
 

00:15:04.220 --> 00:15:05.740 align:start position:0%
you run on top of Boone - so we use the
service<00:15:04.670><c> construct</c><00:15:05.240><c> to</c><00:15:05.360><c> start</c><00:15:05.600><c> our</c>

00:15:05.740 --> 00:15:05.750 align:start position:0%
service construct to start our
 

00:15:05.750 --> 00:15:08.259 align:start position:0%
service construct to start our
proprietary<00:15:06.199><c> tasks</c><00:15:07.000><c> here</c><00:15:08.000><c> we're</c><00:15:08.149><c> actually</c>

00:15:08.259 --> 00:15:08.269 align:start position:0%
proprietary tasks here we're actually
 

00:15:08.269 --> 00:15:10.449 align:start position:0%
proprietary tasks here we're actually
starting<00:15:08.480><c> the</c><00:15:08.750><c> death</c><00:15:08.990><c> process</c><00:15:09.170><c> so</c><00:15:10.160><c> this</c><00:15:10.310><c> is</c><00:15:10.399><c> in</c>

00:15:10.449 --> 00:15:10.459 align:start position:0%
starting the death process so this is in
 

00:15:10.459 --> 00:15:11.710 align:start position:0%
starting the death process so this is in
the<00:15:10.550><c> open</c><00:15:10.759><c> source</c><00:15:10.850><c> repo</c><00:15:11.240><c> you</c><00:15:11.360><c> don't</c><00:15:11.509><c> need</c><00:15:11.630><c> to</c>

00:15:11.710 --> 00:15:11.720 align:start position:0%
the open source repo you don't need to
 

00:15:11.720 --> 00:15:13.480 align:start position:0%
the open source repo you don't need to
worry<00:15:11.870><c> if</c><00:15:12.050><c> you</c><00:15:12.139><c> can't</c><00:15:12.319><c> read</c><00:15:12.500><c> the</c><00:15:12.529><c> actual</c><00:15:13.130><c> code</c>

00:15:13.480 --> 00:15:13.490 align:start position:0%
worry if you can't read the actual code
 

00:15:13.490 --> 00:15:15.519 align:start position:0%
worry if you can't read the actual code
but<00:15:14.389><c> let's</c><00:15:14.420><c> break</c><00:15:14.660><c> down</c><00:15:14.689><c> the</c><00:15:14.839><c> options</c><00:15:15.139><c> we</c><00:15:15.290><c> use</c>

00:15:15.519 --> 00:15:15.529 align:start position:0%
but let's break down the options we use
 

00:15:15.529 --> 00:15:17.439 align:start position:0%
but let's break down the options we use
so<00:15:16.220><c> we</c><00:15:16.370><c> brought</c><00:15:16.490><c> the</c><00:15:16.639><c> max</c><00:15:16.790><c> peers</c><00:15:17.000><c> down</c><00:15:17.149><c> to</c><00:15:17.269><c> fix</c>

00:15:17.439 --> 00:15:17.449 align:start position:0%
so we brought the max peers down to fix
 

00:15:17.449 --> 00:15:20.019 align:start position:0%
so we brought the max peers down to fix
50<00:15:18.110><c> this</c><00:15:18.680><c> solved</c><00:15:19.040><c> memory</c><00:15:19.310><c> leak</c><00:15:19.490><c> issue</c><00:15:19.670><c> and</c>

00:15:20.019 --> 00:15:20.029 align:start position:0%
50 this solved memory leak issue and
 

00:15:20.029 --> 00:15:23.019 align:start position:0%
50 this solved memory leak issue and
also<00:15:20.540><c> helped</c><00:15:20.899><c> with</c><00:15:21.110><c> the</c><00:15:21.980><c> data</c><00:15:22.279><c> transfer</c><00:15:22.579><c> costs</c>

00:15:23.019 --> 00:15:23.029 align:start position:0%
also helped with the data transfer costs
 

00:15:23.029 --> 00:15:24.220 align:start position:0%
also helped with the data transfer costs
that<00:15:23.149><c> we'll</c><00:15:23.269><c> talk</c><00:15:23.389><c> about</c><00:15:23.449><c> a</c><00:15:23.660><c> couple</c><00:15:23.930><c> of</c><00:15:23.990><c> slides</c>

00:15:24.220 --> 00:15:24.230 align:start position:0%
that we'll talk about a couple of slides
 

00:15:24.230 --> 00:15:26.829 align:start position:0%
that we'll talk about a couple of slides
we<00:15:25.040><c> use</c><00:15:25.160><c> a</c><00:15:25.189><c> custom</c><00:15:25.519><c> data</c><00:15:25.670><c> Durr</c><00:15:25.910><c> parameter</c><00:15:26.720><c> to</c>

00:15:26.829 --> 00:15:26.839 align:start position:0%
we use a custom data Durr parameter to
 

00:15:26.839 --> 00:15:28.449 align:start position:0%
we use a custom data Durr parameter to
take<00:15:26.959><c> advantage</c><00:15:27.259><c> of</c><00:15:27.350><c> the</c><00:15:27.410><c> nvme</c><00:15:27.860><c> drives</c><00:15:28.160><c> that</c>

00:15:28.449 --> 00:15:28.459 align:start position:0%
take advantage of the nvme drives that
 

00:15:28.459 --> 00:15:31.720 align:start position:0%
take advantage of the nvme drives that
AWS<00:15:28.910><c> recently</c><00:15:29.300><c> made</c><00:15:29.480><c> available</c><00:15:30.550><c> right</c><00:15:31.550><c> now</c>

00:15:31.720 --> 00:15:31.730 align:start position:0%
AWS recently made available right now
 

00:15:31.730 --> 00:15:33.490 align:start position:0%
AWS recently made available right now
our<00:15:31.910><c> default</c><00:15:32.240><c> is</c><00:15:32.480><c> cores</c><00:15:33.110><c> turn</c>

00:15:33.490 --> 00:15:33.500 align:start position:0%
our default is cores turn
 

00:15:33.500 --> 00:15:35.860 align:start position:0%
our default is cores turn
everywhere<00:15:34.010><c> you</c><00:15:34.730><c> may</c><00:15:34.910><c> want</c><00:15:35.210><c> to</c><00:15:35.300><c> restrict</c><00:15:35.780><c> this</c>

00:15:35.860 --> 00:15:35.870 align:start position:0%
everywhere you may want to restrict this
 

00:15:35.870 --> 00:15:38.200 align:start position:0%
everywhere you may want to restrict this
for<00:15:36.080><c> your</c><00:15:36.200><c> own</c><00:15:36.230><c> implementation</c><00:15:37.030><c> we</c><00:15:38.030><c> use</c><00:15:38.120><c> a</c>

00:15:38.200 --> 00:15:38.210 align:start position:0%
for your own implementation we use a
 

00:15:38.210 --> 00:15:40.180 align:start position:0%
for your own implementation we use a
four<00:15:38.390><c> gig</c><00:15:38.570><c> cache</c><00:15:38.840><c> to</c><00:15:39.560><c> speed</c><00:15:39.770><c> up</c><00:15:39.860><c> the</c><00:15:39.920><c> initial</c>

00:15:40.180 --> 00:15:40.190 align:start position:0%
four gig cache to speed up the initial
 

00:15:40.190 --> 00:15:44.140 align:start position:0%
four gig cache to speed up the initial
sync<00:15:40.400><c> process</c><00:15:42.310><c> this</c><00:15:43.310><c> is</c><00:15:43.580><c> the</c><00:15:43.760><c> health</c><00:15:43.970><c> check</c>

00:15:44.140 --> 00:15:44.150 align:start position:0%
sync process this is the health check
 

00:15:44.150 --> 00:15:45.850 align:start position:0%
sync process this is the health check
that<00:15:44.300><c> we</c><00:15:44.360><c> use</c><00:15:44.450><c> to</c><00:15:44.570><c> keep</c><00:15:44.630><c> our</c><00:15:44.780><c> nodes</c><00:15:44.960><c> in</c><00:15:45.500><c> sync</c>

00:15:45.850 --> 00:15:45.860 align:start position:0%
that we use to keep our nodes in sync
 

00:15:45.860 --> 00:15:47.950 align:start position:0%
that we use to keep our nodes in sync
it's<00:15:46.610><c> probably</c><00:15:46.940><c> pretty</c><00:15:47.090><c> small</c><00:15:47.210><c> but</c><00:15:47.750><c> what</c><00:15:47.870><c> it</c>

00:15:47.950 --> 00:15:47.960 align:start position:0%
it's probably pretty small but what it
 

00:15:47.960 --> 00:15:50.740 align:start position:0%
it's probably pretty small but what it
essentially<00:15:48.290><c> is</c><00:15:48.560><c> is</c><00:15:48.890><c> a</c><00:15:49.400><c> node.js</c><00:15:49.940><c> Express</c><00:15:50.540><c> app</c>

00:15:50.740 --> 00:15:50.750 align:start position:0%
essentially is is a node.js Express app
 

00:15:50.750 --> 00:15:52.810 align:start position:0%
essentially is is a node.js Express app
that<00:15:51.500><c> just</c><00:15:51.710><c> does</c><00:15:51.860><c> the</c><00:15:52.010><c> waterfall</c><00:15:52.400><c> queries</c>

00:15:52.810 --> 00:15:52.820 align:start position:0%
that just does the waterfall queries
 

00:15:52.820 --> 00:15:56.470 align:start position:0%
that just does the waterfall queries
over<00:15:53.150><c> our</c><00:15:53.840><c> peers</c><00:15:54.380><c> to</c><00:15:54.590><c> determine</c><00:15:54.980><c> state</c><00:15:55.360><c> so</c><00:15:56.360><c> we</c>

00:15:56.470 --> 00:15:56.480 align:start position:0%
over our peers to determine state so we
 

00:15:56.480 --> 00:15:58.900 align:start position:0%
over our peers to determine state so we
compared<00:15:56.840><c> to</c><00:15:57.050><c> in</c><00:15:57.200><c> fira</c><00:15:57.410><c> and</c><00:15:57.590><c> ether</c><00:15:57.830><c> scan</c><00:15:58.070><c> but</c>

00:15:58.900 --> 00:15:58.910 align:start position:0%
compared to in fira and ether scan but
 

00:15:58.910 --> 00:16:00.400 align:start position:0%
compared to in fira and ether scan but
you<00:15:58.970><c> can</c><00:15:59.090><c> certainly</c><00:15:59.210><c> customize</c><00:15:59.750><c> this</c><00:15:59.960><c> to</c><00:16:00.200><c> run</c>

00:16:00.400 --> 00:16:00.410 align:start position:0%
you can certainly customize this to run
 

00:16:00.410 --> 00:16:02.830 align:start position:0%
you can certainly customize this to run
on<00:16:00.650><c> additional</c><00:16:01.130><c> peers</c><00:16:01.540><c> we</c><00:16:02.540><c> consider</c>

00:16:02.830 --> 00:16:02.840 align:start position:0%
on additional peers we consider
 

00:16:02.840 --> 00:16:04.690 align:start position:0%
on additional peers we consider
ourselves<00:16:02.960><c> to</c><00:16:03.170><c> be</c><00:16:03.230><c> in</c><00:16:03.440><c> sync</c><00:16:03.800><c> if</c><00:16:04.070><c> we're</c><00:16:04.520><c> within</c>

00:16:04.690 --> 00:16:04.700 align:start position:0%
ourselves to be in sync if we're within
 

00:16:04.700 --> 00:16:07.030 align:start position:0%
ourselves to be in sync if we're within
10<00:16:04.940><c> blocks</c><00:16:05.060><c> of</c><00:16:05.330><c> the</c><00:16:05.420><c> head</c><00:16:05.600><c> and</c><00:16:05.870><c> you</c><00:16:06.710><c> can</c><00:16:06.890><c> make</c>

00:16:07.030 --> 00:16:07.040 align:start position:0%
10 blocks of the head and you can make
 

00:16:07.040 --> 00:16:08.290 align:start position:0%
10 blocks of the head and you can make
this<00:16:07.160><c> tighter</c><00:16:07.430><c> but</c><00:16:07.670><c> we</c><00:16:07.760><c> found</c><00:16:08.030><c> that</c><00:16:08.150><c> if</c><00:16:08.270><c> you</c>

00:16:08.290 --> 00:16:08.300 align:start position:0%
this tighter but we found that if you
 

00:16:08.300 --> 00:16:11.020 align:start position:0%
this tighter but we found that if you
tighten<00:16:08.780><c> it</c><00:16:08.840><c> up</c><00:16:09.050><c> too</c><00:16:09.890><c> close</c><00:16:10.070><c> to</c><00:16:10.580><c> the</c><00:16:10.670><c> actual</c>

00:16:11.020 --> 00:16:11.030 align:start position:0%
tighten it up too close to the actual
 

00:16:11.030 --> 00:16:13.570 align:start position:0%
tighten it up too close to the actual
head<00:16:11.330><c> state</c><00:16:11.630><c> like</c><00:16:11.810><c> 3</c><00:16:12.080><c> blocks</c><00:16:12.320><c> or</c><00:16:12.500><c> less</c><00:16:12.680><c> you</c>

00:16:13.570 --> 00:16:13.580 align:start position:0%
head state like 3 blocks or less you
 

00:16:13.580 --> 00:16:15.970 align:start position:0%
head state like 3 blocks or less you
will<00:16:13.970><c> occasionally</c><00:16:14.300><c> drop</c><00:16:14.690><c> entirely</c><00:16:15.110><c> out</c><00:16:15.470><c> of</c>

00:16:15.970 --> 00:16:15.980 align:start position:0%
will occasionally drop entirely out of
 

00:16:15.980 --> 00:16:17.920 align:start position:0%
will occasionally drop entirely out of
sync<00:16:16.250><c> with</c><00:16:16.310><c> all</c><00:16:16.580><c> your</c><00:16:16.760><c> nodes</c><00:16:17.000><c> when</c><00:16:17.600><c> you</c><00:16:17.690><c> get</c><00:16:17.900><c> a</c>

00:16:17.920 --> 00:16:17.930 align:start position:0%
sync with all your nodes when you get a
 

00:16:17.930 --> 00:16:19.600 align:start position:0%
sync with all your nodes when you get a
small<00:16:18.350><c> chain</c><00:16:18.620><c> split</c><00:16:18.950><c> at</c><00:16:19.070><c> the</c><00:16:19.280><c> head</c><00:16:19.460><c> which</c>

00:16:19.600 --> 00:16:19.610 align:start position:0%
small chain split at the head which
 

00:16:19.610 --> 00:16:21.940 align:start position:0%
small chain split at the head which
happens<00:16:19.970><c> on</c><00:16:20.060><c> occasion</c><00:16:20.560><c> so</c><00:16:21.560><c> we</c><00:16:21.650><c> decided</c><00:16:21.890><c> to</c>

00:16:21.940 --> 00:16:21.950 align:start position:0%
happens on occasion so we decided to
 

00:16:21.950 --> 00:16:24.160 align:start position:0%
happens on occasion so we decided to
rather<00:16:22.100><c> stay</c><00:16:22.400><c> in</c><00:16:22.640><c> sync</c><00:16:23.360><c> all</c><00:16:23.660><c> right</c><00:16:23.810><c> sorry</c>

00:16:24.160 --> 00:16:24.170 align:start position:0%
rather stay in sync all right sorry
 

00:16:24.170 --> 00:16:26.650 align:start position:0%
rather stay in sync all right sorry
available<00:16:24.830><c> then</c><00:16:25.310><c> it</c><00:16:25.490><c> completely</c><00:16:25.730><c> in</c><00:16:26.060><c> sync</c><00:16:26.390><c> all</c>

00:16:26.650 --> 00:16:26.660 align:start position:0%
available then it completely in sync all
 

00:16:26.660 --> 00:16:29.410 align:start position:0%
available then it completely in sync all
the<00:16:26.930><c> time</c><00:16:27.190><c> we</c><00:16:28.190><c> returned</c><00:16:28.460><c> back</c><00:16:28.550><c> HTTP</c><00:16:29.210><c> status</c>

00:16:29.410 --> 00:16:29.420 align:start position:0%
the time we returned back HTTP status
 

00:16:29.420 --> 00:16:31.660 align:start position:0%
the time we returned back HTTP status
codes<00:16:29.780><c> that</c><00:16:30.290><c> do</c><00:16:30.470><c> correctly</c><00:16:30.860><c> identify</c><00:16:31.430><c> whether</c>

00:16:31.660 --> 00:16:31.670 align:start position:0%
codes that do correctly identify whether
 

00:16:31.670 --> 00:16:32.830 align:start position:0%
codes that do correctly identify whether
the<00:16:31.850><c> service</c><00:16:32.120><c> is</c><00:16:32.240><c> up</c><00:16:32.420><c> or</c><00:16:32.540><c> down</c>

00:16:32.830 --> 00:16:32.840 align:start position:0%
the service is up or down
 

00:16:32.840 --> 00:16:35.380 align:start position:0%
the service is up or down
we<00:16:33.650><c> also</c><00:16:33.800><c> returned</c><00:16:34.160><c> back</c><00:16:34.370><c> a</c><00:16:34.640><c> network</c><00:16:34.970><c> timeout</c>

00:16:35.380 --> 00:16:35.390 align:start position:0%
we also returned back a network timeout
 

00:16:35.390 --> 00:16:36.730 align:start position:0%
we also returned back a network timeout
because<00:16:35.630><c> we</c><00:16:35.720><c> found</c><00:16:35.870><c> out</c><00:16:36.020><c> occasionally</c><00:16:36.380><c> in</c>

00:16:36.730 --> 00:16:36.740 align:start position:0%
because we found out occasionally in
 

00:16:36.740 --> 00:16:40.030 align:start position:0%
because we found out occasionally in
fira<00:16:37.040><c> just</c><00:16:37.430><c> times</c><00:16:37.610><c> out</c><00:16:37.790><c> our</c><00:16:37.880><c> requests</c><00:16:39.040><c> we've</c>

00:16:40.030 --> 00:16:40.040 align:start position:0%
fira just times out our requests we've
 

00:16:40.040 --> 00:16:41.020 align:start position:0%
fira just times out our requests we've
got<00:16:40.130><c> a</c><00:16:40.160><c> couple</c><00:16:40.310><c> of</c><00:16:40.430><c> the</c><00:16:40.520><c> nifty</c><00:16:40.730><c> features</c>

00:16:41.020 --> 00:16:41.030 align:start position:0%
got a couple of the nifty features
 

00:16:41.030 --> 00:16:43.090 align:start position:0%
got a couple of the nifty features
health<00:16:41.840><c> check</c><00:16:42.080><c> is</c><00:16:42.110><c> started</c><00:16:42.530><c> as</c><00:16:42.620><c> a</c><00:16:42.650><c> service</c>

00:16:43.090 --> 00:16:43.100 align:start position:0%
health check is started as a service
 

00:16:43.100 --> 00:16:44.920 align:start position:0%
health check is started as a service
we've<00:16:43.250><c> run</c><00:16:43.400><c> into</c><00:16:43.580><c> issues</c><00:16:43.670><c> before</c><00:16:44.240><c> where</c><00:16:44.780><c> our</c>

00:16:44.920 --> 00:16:44.930 align:start position:0%
we've run into issues before where our
 

00:16:44.930 --> 00:16:47.320 align:start position:0%
we've run into issues before where our
health<00:16:45.110><c> check</c><00:16:45.410><c> was</c><00:16:46.130><c> down</c><00:16:46.700><c> but</c><00:16:47.000><c> the</c><00:16:47.060><c> node</c><00:16:47.210><c> was</c>

00:16:47.320 --> 00:16:47.330 align:start position:0%
health check was down but the node was
 

00:16:47.330 --> 00:16:49.870 align:start position:0%
health check was down but the node was
actually<00:16:47.660><c> off</c><00:16:47.810><c> we</c><00:16:48.650><c> have</c><00:16:48.770><c> cron</c><00:16:48.980><c> jobs</c><00:16:49.310><c> that</c>

00:16:49.870 --> 00:16:49.880 align:start position:0%
actually off we have cron jobs that
 

00:16:49.880 --> 00:16:51.940 align:start position:0%
actually off we have cron jobs that
reset<00:16:50.330><c> the</c><00:16:50.540><c> max</c><00:16:50.780><c> open</c><00:16:50.960><c> file</c><00:16:51.260><c> limit</c><00:16:51.560><c> this</c><00:16:51.770><c> was</c>

00:16:51.940 --> 00:16:51.950 align:start position:0%
reset the max open file limit this was
 

00:16:51.950 --> 00:16:53.920 align:start position:0%
reset the max open file limit this was
something<00:16:52.190><c> that</c><00:16:52.370><c> Goeff</c><00:16:53.060><c> had</c><00:16:53.450><c> an</c><00:16:53.570><c> issue</c><00:16:53.690><c> with</c>

00:16:53.920 --> 00:16:53.930 align:start position:0%
something that Goeff had an issue with
 

00:16:53.930 --> 00:16:56.440 align:start position:0%
something that Goeff had an issue with
earlier<00:16:54.380><c> where</c><00:16:55.100><c> it</c><00:16:55.280><c> was</c><00:16:55.430><c> not</c><00:16:55.760><c> respecting</c><00:16:56.360><c> the</c>

00:16:56.440 --> 00:16:56.450 align:start position:0%
earlier where it was not respecting the
 

00:16:56.450 --> 00:16:58.000 align:start position:0%
earlier where it was not respecting the
max<00:16:56.630><c> open</c><00:16:56.810><c> file</c><00:16:57.140><c> limit</c><00:16:57.440><c> so</c><00:16:57.620><c> we</c><00:16:57.710><c> just</c><00:16:57.860><c> wrote</c><00:16:57.980><c> a</c>

00:16:58.000 --> 00:16:58.010 align:start position:0%
max open file limit so we just wrote a
 

00:16:58.010 --> 00:17:00.490 align:start position:0%
max open file limit so we just wrote a
cron<00:16:58.220><c> job</c><00:16:58.250><c> to</c><00:16:58.580><c> fix</c><00:16:58.760><c> this</c><00:16:59.000><c> and</c><00:16:59.300><c> then</c><00:17:00.230><c> we</c><00:17:00.320><c> wrapped</c>

00:17:00.490 --> 00:17:00.500 align:start position:0%
cron job to fix this and then we wrapped
 

00:17:00.500 --> 00:17:03.070 align:start position:0%
cron job to fix this and then we wrapped
this<00:17:00.650><c> all</c><00:17:00.830><c> in</c><00:17:01.070><c> a</c><00:17:01.160><c> cloud</c><00:17:01.400><c> init</c><00:17:01.670><c> script</c><00:17:02.030><c> so</c><00:17:02.810><c> it</c>

00:17:03.070 --> 00:17:03.080 align:start position:0%
this all in a cloud init script so it
 

00:17:03.080 --> 00:17:04.570 align:start position:0%
this all in a cloud init script so it
automatically<00:17:03.590><c> spins</c><00:17:03.890><c> up</c><00:17:04.040><c> the</c><00:17:04.130><c> boxes</c>

00:17:04.570 --> 00:17:04.580 align:start position:0%
automatically spins up the boxes
 

00:17:04.580 --> 00:17:07.420 align:start position:0%
automatically spins up the boxes
installs<00:17:05.300><c> all</c><00:17:05.510><c> the</c><00:17:05.660><c> required</c><00:17:06.080><c> programs</c><00:17:06.680><c> death</c>

00:17:07.420 --> 00:17:07.430 align:start position:0%
installs all the required programs death
 

00:17:07.430 --> 00:17:10.480 align:start position:0%
installs all the required programs death
mounts<00:17:08.150><c> the</c><00:17:08.270><c> nvme</c><00:17:08.720><c> drives</c><00:17:09.050><c> and</c><00:17:09.400><c> starts</c><00:17:10.400><c> the</c>

00:17:10.480 --> 00:17:10.490 align:start position:0%
mounts the nvme drives and starts the
 

00:17:10.490 --> 00:17:12.490 align:start position:0%
mounts the nvme drives and starts the
services<00:17:10.970><c> so</c><00:17:11.420><c> your</c><00:17:11.510><c> boxes</c><00:17:11.900><c> spin</c><00:17:12.170><c> up</c><00:17:12.290><c> and</c><00:17:12.440><c> they</c>

00:17:12.490 --> 00:17:12.500 align:start position:0%
services so your boxes spin up and they
 

00:17:12.500 --> 00:17:13.990 align:start position:0%
services so your boxes spin up and they
start<00:17:12.740><c> syncing</c><00:17:13.190><c> you</c><00:17:13.370><c> can</c><00:17:13.520><c> actually</c><00:17:13.820><c> check</c>

00:17:13.990 --> 00:17:14.000 align:start position:0%
start syncing you can actually check
 

00:17:14.000 --> 00:17:15.400 align:start position:0%
start syncing you can actually check
that<00:17:14.150><c> in</c><00:17:14.270><c> a</c><00:17:14.360><c> health</c><00:17:14.540><c> check</c><00:17:14.780><c> that</c><00:17:14.930><c> we</c><00:17:15.020><c> publish</c>

00:17:15.400 --> 00:17:15.410 align:start position:0%
that in a health check that we publish
 

00:17:15.410 --> 00:17:17.230 align:start position:0%
that in a health check that we publish
as<00:17:16.010><c> to</c><00:17:16.220><c> whether</c><00:17:16.370><c> or</c><00:17:16.430><c> not</c><00:17:16.520><c> your</c><00:17:16.760><c> node</c><00:17:17.090><c> is</c>

00:17:17.230 --> 00:17:17.240 align:start position:0%
as to whether or not your node is
 

00:17:17.240 --> 00:17:20.590 align:start position:0%
as to whether or not your node is
running<00:17:18.790><c> one</c><00:17:19.790><c> of</c><00:17:19.850><c> the</c><00:17:19.940><c> biggest</c><00:17:20.150><c> takeaways</c><00:17:20.210><c> we</c>

00:17:20.590 --> 00:17:20.600 align:start position:0%
running one of the biggest takeaways we
 

00:17:20.600 --> 00:17:22.480 align:start position:0%
running one of the biggest takeaways we
had<00:17:20.720><c> was</c><00:17:20.900><c> the</c><00:17:20.990><c> hardware</c><00:17:21.200><c> selection</c><00:17:21.800><c> that</c><00:17:22.340><c> we</c>

00:17:22.480 --> 00:17:22.490 align:start position:0%
had was the hardware selection that we
 

00:17:22.490 --> 00:17:24.370 align:start position:0%
had was the hardware selection that we
used<00:17:22.760><c> so</c><00:17:23.300><c> we're</c><00:17:23.390><c> gonna</c><00:17:23.480><c> talk</c><00:17:23.630><c> about</c><00:17:23.660><c> IO</c><00:17:24.020><c> right</c>

00:17:24.370 --> 00:17:24.380 align:start position:0%
used so we're gonna talk about IO right
 

00:17:24.380 --> 00:17:26.500 align:start position:0%
used so we're gonna talk about IO right
now<00:17:24.670><c> magnetic</c><00:17:25.670><c> and</c><00:17:25.790><c> spinning</c><00:17:26.030><c> disk</c><00:17:26.210><c> drives</c>

00:17:26.500 --> 00:17:26.510 align:start position:0%
now magnetic and spinning disk drives
 

00:17:26.510 --> 00:17:28.780 align:start position:0%
now magnetic and spinning disk drives
just<00:17:26.840><c> don't</c><00:17:27.110><c> work</c><00:17:27.350><c> you</c><00:17:28.250><c> just</c><00:17:28.370><c> don't</c><00:17:28.520><c> stay</c><00:17:28.700><c> in</c>

00:17:28.780 --> 00:17:28.790 align:start position:0%
just don't work you just don't stay in
 

00:17:28.790 --> 00:17:31.750 align:start position:0%
just don't work you just don't stay in
sync<00:17:29.030><c> you</c><00:17:29.270><c> become</c><00:17:29.510><c> IO</c><00:17:29.720><c> bound</c><00:17:30.110><c> and</c><00:17:30.440><c> the</c><00:17:31.430><c> the</c>

00:17:31.750 --> 00:17:31.760 align:start position:0%
sync you become IO bound and the the
 

00:17:31.760 --> 00:17:34.810 align:start position:0%
sync you become IO bound and the the
node<00:17:31.940><c> will</c><00:17:32.540><c> freeze</c><00:17:33.280><c> similarly</c><00:17:34.280><c> provision</c><00:17:34.670><c> die</c>

00:17:34.810 --> 00:17:34.820 align:start position:0%
node will freeze similarly provision die
 

00:17:34.820 --> 00:17:36.940 align:start position:0%
node will freeze similarly provision die
ops<00:17:35.030><c> is</c><00:17:35.240><c> actually</c><00:17:35.570><c> not</c><00:17:35.660><c> cost</c><00:17:35.960><c> effective</c><00:17:36.110><c> you</c>

00:17:36.940 --> 00:17:36.950 align:start position:0%
ops is actually not cost effective you
 

00:17:36.950 --> 00:17:38.530 align:start position:0%
ops is actually not cost effective you
over<00:17:37.220><c> allocate</c><00:17:37.610><c> your</c><00:17:37.700><c> I</c><00:17:37.760><c> UPS</c><00:17:38.060><c> and</c><00:17:38.330><c> you're</c><00:17:38.420><c> only</c>

00:17:38.530 --> 00:17:38.540 align:start position:0%
over allocate your I UPS and you're only
 

00:17:38.540 --> 00:17:39.910 align:start position:0%
over allocate your I UPS and you're only
using<00:17:38.750><c> your</c><00:17:39.080><c> max</c><00:17:39.260><c> I</c><00:17:39.440><c> it's</c><00:17:39.620><c> about</c><00:17:39.680><c> three</c>

00:17:39.910 --> 00:17:39.920 align:start position:0%
using your max I it's about three
 

00:17:39.920 --> 00:17:41.890 align:start position:0%
using your max I it's about three
percent<00:17:40.100><c> of</c><00:17:40.310><c> the</c><00:17:40.400><c> time</c><00:17:40.610><c> so</c><00:17:41.390><c> this</c><00:17:41.510><c> means</c><00:17:41.720><c> you're</c>

00:17:41.890 --> 00:17:41.900 align:start position:0%
percent of the time so this means you're
 

00:17:41.900 --> 00:17:44.290 align:start position:0%
percent of the time so this means you're
just<00:17:42.050><c> wasting</c><00:17:42.380><c> money</c><00:17:42.560><c> so</c><00:17:43.310><c> we</c><00:17:43.460><c> try</c><00:17:43.760><c> moving</c><00:17:44.090><c> back</c>

00:17:44.290 --> 00:17:44.300 align:start position:0%
just wasting money so we try moving back
 

00:17:44.300 --> 00:17:47.240 align:start position:0%
just wasting money so we try moving back
to<00:17:44.570><c> births</c><00:17:44.900><c> based</c><00:17:45.170><c> EBS</c><00:17:46.100><c> drives</c>

00:17:47.240 --> 00:17:47.250 align:start position:0%
to births based EBS drives
 

00:17:47.250 --> 00:17:48.740 align:start position:0%
to births based EBS drives
and<00:17:47.340><c> you</c><00:17:47.580><c> have</c><00:17:47.730><c> to</c><00:17:47.850><c> actually</c><00:17:48.000><c> allocate</c><00:17:48.270><c> three</c>

00:17:48.740 --> 00:17:48.750 align:start position:0%
and you have to actually allocate three
 

00:17:48.750 --> 00:17:50.180 align:start position:0%
and you have to actually allocate three
terabytes<00:17:49.169><c> of</c><00:17:49.289><c> storage</c><00:17:49.350><c> space</c><00:17:49.860><c> to</c><00:17:50.039><c> get</c><00:17:50.130><c> the</c>

00:17:50.180 --> 00:17:50.190 align:start position:0%
terabytes of storage space to get the
 

00:17:50.190 --> 00:17:52.399 align:start position:0%
terabytes of storage space to get the
provisioned<00:17:50.640><c> I</c><00:17:50.760><c> ops</c><00:17:50.940><c> that</c><00:17:51.059><c> you</c><00:17:51.240><c> need</c><00:17:51.480><c> but</c>

00:17:52.399 --> 00:17:52.409 align:start position:0%
provisioned I ops that you need but
 

00:17:52.409 --> 00:17:54.830 align:start position:0%
provisioned I ops that you need but
again<00:17:52.740><c> because</c><00:17:53.580><c> now</c><00:17:53.940><c> you're</c><00:17:54.150><c> below</c><00:17:54.570><c> where</c>

00:17:54.830 --> 00:17:54.840 align:start position:0%
again because now you're below where
 

00:17:54.840 --> 00:17:56.149 align:start position:0%
again because now you're below where
you'd<00:17:54.990><c> want</c><00:17:55.049><c> to</c><00:17:55.289><c> be</c><00:17:55.409><c> in</c><00:17:55.500><c> AI</c><00:17:55.650><c> ops</c><00:17:55.919><c> you're</c>

00:17:56.149 --> 00:17:56.159 align:start position:0%
you'd want to be in AI ops you're
 

00:17:56.159 --> 00:17:57.950 align:start position:0%
you'd want to be in AI ops you're
actually<00:17:56.520><c> hitting</c><00:17:56.669><c> caps</c><00:17:57.150><c> when</c><00:17:57.450><c> a</c><00:17:57.480><c> large</c><00:17:57.690><c> block</c>

00:17:57.950 --> 00:17:57.960 align:start position:0%
actually hitting caps when a large block
 

00:17:57.960 --> 00:18:00.380 align:start position:0%
actually hitting caps when a large block
comes<00:17:58.260><c> in</c><00:17:58.470><c> and</c><00:17:58.710><c> so</c><00:17:59.100><c> now</c><00:17:59.220><c> you</c><00:17:59.280><c> have</c><00:17:59.580><c> a</c><00:17:59.610><c> right</c><00:17:59.970><c> to</c>

00:18:00.380 --> 00:18:00.390 align:start position:0%
comes in and so now you have a right to
 

00:18:00.390 --> 00:18:02.600 align:start position:0%
comes in and so now you have a right to
that<00:18:00.690><c> will</c><00:18:01.380><c> build</c><00:18:01.590><c> up</c><00:18:01.770><c> over</c><00:18:01.980><c> time</c><00:18:02.100><c> you</c><00:18:02.400><c> know</c><00:18:02.490><c> it</c>

00:18:02.600 --> 00:18:02.610 align:start position:0%
that will build up over time you know it
 

00:18:02.610 --> 00:18:05.390 align:start position:0%
that will build up over time you know it
falls<00:18:02.820><c> out</c><00:18:02.970><c> of</c><00:18:03.090><c> sync</c><00:18:03.559><c> EFS</c><00:18:04.559><c> is</c><00:18:04.770><c> something</c><00:18:05.130><c> that</c>

00:18:05.390 --> 00:18:05.400 align:start position:0%
falls out of sync EFS is something that
 

00:18:05.400 --> 00:18:07.010 align:start position:0%
falls out of sync EFS is something that
AWS<00:18:05.909><c> provides</c><00:18:05.940><c> an</c><00:18:06.480><c> infinitely</c><00:18:06.840><c> scalable</c>

00:18:07.010 --> 00:18:07.020 align:start position:0%
AWS provides an infinitely scalable
 

00:18:07.020 --> 00:18:10.399 align:start position:0%
AWS provides an infinitely scalable
network<00:18:07.530><c> attached</c><00:18:07.799><c> storage</c><00:18:08.429><c> and</c><00:18:09.080><c> the</c><00:18:10.080><c> network</c>

00:18:10.399 --> 00:18:10.409 align:start position:0%
network attached storage and the network
 

00:18:10.409 --> 00:18:12.200 align:start position:0%
network attached storage and the network
overhead<00:18:10.650><c> actually</c><00:18:11.250><c> makes</c><00:18:11.400><c> it</c><00:18:11.520><c> so</c><00:18:11.669><c> your</c><00:18:11.940><c> node</c>

00:18:12.200 --> 00:18:12.210 align:start position:0%
overhead actually makes it so your node
 

00:18:12.210 --> 00:18:13.549 align:start position:0%
overhead actually makes it so your node
will<00:18:12.390><c> never</c><00:18:12.539><c> sink</c><00:18:12.840><c> as</c><00:18:12.960><c> well</c><00:18:13.080><c> so</c><00:18:13.260><c> just</c><00:18:13.320><c> don't</c>

00:18:13.549 --> 00:18:13.559 align:start position:0%
will never sink as well so just don't
 

00:18:13.559 --> 00:18:16.340 align:start position:0%
will never sink as well so just don't
try<00:18:13.740><c> that</c><00:18:13.770><c> and</c><00:18:14.690><c> nvme</c><00:18:15.690><c> drives</c><00:18:15.929><c> were</c><00:18:16.080><c> announced</c>

00:18:16.340 --> 00:18:16.350 align:start position:0%
try that and nvme drives were announced
 

00:18:16.350 --> 00:18:18.289 align:start position:0%
try that and nvme drives were announced
a<00:18:16.409><c> few</c><00:18:16.559><c> months</c><00:18:16.799><c> ago</c><00:18:16.919><c> that's</c><00:18:17.640><c> actually</c><00:18:18.059><c> what</c><00:18:18.179><c> we</c>

00:18:18.289 --> 00:18:18.299 align:start position:0%
a few months ago that's actually what we
 

00:18:18.299 --> 00:18:22.909 align:start position:0%
a few months ago that's actually what we
use<00:18:18.330><c> it</c><00:18:18.929><c> is</c><00:18:19.200><c> a</c><00:18:19.590><c> very</c><00:18:20.130><c> good</c><00:18:20.490><c> io</c><00:18:21.320><c> based</c><00:18:22.320><c> instance</c>

00:18:22.909 --> 00:18:22.919 align:start position:0%
use it is a very good io based instance
 

00:18:22.919 --> 00:18:27.740 align:start position:0%
use it is a very good io based instance
store<00:18:23.159><c> drive</c><00:18:24.830><c> familywize</c><00:18:26.000><c> death</c><00:18:27.000><c> is</c><00:18:27.179><c> io</c>

00:18:27.740 --> 00:18:27.750 align:start position:0%
store drive familywize death is io
 

00:18:27.750 --> 00:18:29.600 align:start position:0%
store drive familywize death is io
bounded<00:18:28.289><c> incoming</c><00:18:28.679><c> data</c><00:18:28.860><c> and</c><00:18:29.100><c> compute</c><00:18:29.490><c> bound</c>

00:18:29.600 --> 00:18:29.610 align:start position:0%
bounded incoming data and compute bound
 

00:18:29.610 --> 00:18:32.690 align:start position:0%
bounded incoming data and compute bound
and<00:18:29.789><c> serving</c><00:18:30.059><c> requests</c><00:18:30.630><c> so</c><00:18:31.590><c> m4</c><00:18:32.100><c> and</c><00:18:32.220><c> m5</c>

00:18:32.690 --> 00:18:32.700 align:start position:0%
and serving requests so m4 and m5
 

00:18:32.700 --> 00:18:35.029 align:start position:0%
and serving requests so m4 and m5
general<00:18:33.419><c> classes</c><00:18:33.840><c> over</c><00:18:33.990><c> allocate</c><00:18:34.440><c> memory</c><00:18:34.590><c> we</c>

00:18:35.029 --> 00:18:35.039 align:start position:0%
general classes over allocate memory we
 

00:18:35.039 --> 00:18:38.120 align:start position:0%
general classes over allocate memory we
don't<00:18:35.220><c> use</c><00:18:35.429><c> those</c><00:18:35.960><c> any</c><00:18:36.960><c> other</c><00:18:37.200><c> memory</c><00:18:37.919><c> heavy</c>

00:18:38.120 --> 00:18:38.130 align:start position:0%
don't use those any other memory heavy
 

00:18:38.130 --> 00:18:41.539 align:start position:0%
don't use those any other memory heavy
family<00:18:39.000><c> is</c><00:18:39.179><c> actually</c><00:18:39.390><c> not</c><00:18:39.870><c> going</c><00:18:40.140><c> to</c><00:18:40.260><c> be</c><00:18:40.549><c> cost</c>

00:18:41.539 --> 00:18:41.549 align:start position:0%
family is actually not going to be cost
 

00:18:41.549 --> 00:18:44.690 align:start position:0%
family is actually not going to be cost
effective<00:18:41.970><c> I</c><00:18:42.260><c> three</c><00:18:43.260><c> classes</c><00:18:43.770><c> is</c><00:18:44.039><c> actually</c>

00:18:44.690 --> 00:18:44.700 align:start position:0%
effective I three classes is actually
 

00:18:44.700 --> 00:18:47.060 align:start position:0%
effective I three classes is actually
what<00:18:44.820><c> inferior</c><00:18:45.240><c> uses</c><00:18:45.630><c> or</c><00:18:46.470><c> use</c><00:18:46.679><c> the</c><00:18:46.890><c> time</c><00:18:47.039><c> I</c>

00:18:47.060 --> 00:18:47.070 align:start position:0%
what inferior uses or use the time I
 

00:18:47.070 --> 00:18:49.370 align:start position:0%
what inferior uses or use the time I
talk<00:18:47.220><c> to</c><00:18:47.490><c> them</c><00:18:47.610><c> so</c><00:18:48.120><c> they</c><00:18:48.240><c> work</c><00:18:48.390><c> well</c><00:18:48.659><c> but</c><00:18:48.960><c> nvm</c>

00:18:49.370 --> 00:18:49.380 align:start position:0%
talk to them so they work well but nvm
 

00:18:49.380 --> 00:18:51.230 align:start position:0%
talk to them so they work well but nvm
you<00:18:49.409><c> drives</c><00:18:49.710><c> are</c><00:18:49.890><c> now</c><00:18:50.010><c> back</c><00:18:50.280><c> out</c><00:18:50.549><c> and</c><00:18:50.850><c> that's</c><00:18:51.120><c> a</c>

00:18:51.230 --> 00:18:51.240 align:start position:0%
you drives are now back out and that's a
 

00:18:51.240 --> 00:18:53.830 align:start position:0%
you drives are now back out and that's a
better<00:18:51.600><c> instance</c><00:18:52.080><c> store</c><00:18:52.380><c> than</c><00:18:52.980><c> the</c><00:18:53.190><c> i3</c><00:18:53.549><c> class</c>

00:18:53.830 --> 00:18:53.840 align:start position:0%
better instance store than the i3 class
 

00:18:53.840 --> 00:18:57.470 align:start position:0%
better instance store than the i3 class
we<00:18:54.840><c> run</c><00:18:55.020><c> C</c><00:18:55.260><c> 5</c><00:18:55.440><c> D</c><00:18:55.620><c> is</c><00:18:55.679><c> in</c><00:18:55.830><c> production</c><00:18:56.330><c> this</c><00:18:57.330><c> is</c>

00:18:57.470 --> 00:18:57.480 align:start position:0%
we run C 5 D is in production this is
 

00:18:57.480 --> 00:19:00.250 align:start position:0%
we run C 5 D is in production this is
the<00:18:57.600><c> proper</c><00:18:58.080><c> mix</c><00:18:58.860><c> of</c><00:18:59.010><c> compute</c><00:18:59.280><c> power</c><00:18:59.309><c> with</c><00:18:59.880><c> IO</c>

00:19:00.250 --> 00:19:00.260 align:start position:0%
the proper mix of compute power with IO
 

00:19:00.260 --> 00:19:03.830 align:start position:0%
the proper mix of compute power with IO
4<00:19:01.260><c> what</c><00:19:01.500><c> we</c><00:19:01.679><c> what</c><00:19:02.520><c> we</c><00:19:02.549><c> run</c><00:19:02.940><c> we</c><00:19:03.419><c> found</c><00:19:03.659><c> anything</c>

00:19:03.830 --> 00:19:03.840 align:start position:0%
4 what we what we run we found anything
 

00:19:03.840 --> 00:19:05.659 align:start position:0%
4 what we what we run we found anything
smaller<00:19:04.380><c> than</c><00:19:04.500><c> a</c><00:19:04.620><c> large</c><00:19:04.890><c> instance</c><00:19:05.460><c> is</c>

00:19:05.659 --> 00:19:05.669 align:start position:0%
smaller than a large instance is
 

00:19:05.669 --> 00:19:06.649 align:start position:0%
smaller than a large instance is
actually<00:19:06.030><c> not</c><00:19:06.150><c> going</c><00:19:06.270><c> to</c><00:19:06.360><c> give</c><00:19:06.450><c> you</c><00:19:06.510><c> enough</c>

00:19:06.649 --> 00:19:06.659 align:start position:0%
actually not going to give you enough
 

00:19:06.659 --> 00:19:08.659 align:start position:0%
actually not going to give you enough
power<00:19:06.900><c> to</c><00:19:07.200><c> run</c><00:19:07.710><c> your</c><00:19:07.860><c> nodes</c><00:19:08.039><c> in</c><00:19:08.220><c> production</c><00:19:08.580><c> at</c>

00:19:08.659 --> 00:19:08.669 align:start position:0%
power to run your nodes in production at
 

00:19:08.669 --> 00:19:11.330 align:start position:0%
power to run your nodes in production at
scale<00:19:08.970><c> and</c><00:19:09.240><c> any</c><00:19:10.110><c> other</c><00:19:10.289><c> family</c><00:19:10.500><c> than</c><00:19:10.770><c> these</c><00:19:10.890><c> it</c>

00:19:11.330 --> 00:19:11.340 align:start position:0%
scale and any other family than these it
 

00:19:11.340 --> 00:19:16.580 align:start position:0%
scale and any other family than these it
it's<00:19:11.820><c> just</c><00:19:12.140><c> cost</c><00:19:13.140><c> too</c><00:19:13.289><c> much</c><00:19:13.789><c> so</c><00:19:14.789><c> we</c><00:19:14.970><c> run</c><00:19:15.539><c> 6</c><00:19:16.200><c> c</c><00:19:16.409><c> 5</c>

00:19:16.580 --> 00:19:16.590 align:start position:0%
it's just cost too much so we run 6 c 5
 

00:19:16.590 --> 00:19:19.010 align:start position:0%
it's just cost too much so we run 6 c 5
d<00:19:16.770><c> 4</c><00:19:17.010><c> excels</c><00:19:17.340><c> in</c><00:19:17.460><c> production</c><00:19:17.880><c> and</c><00:19:18.240><c> we</c><00:19:18.299><c> have</c><00:19:18.900><c> not</c>

00:19:19.010 --> 00:19:19.020 align:start position:0%
d 4 excels in production and we have not
 

00:19:19.020 --> 00:19:20.659 align:start position:0%
d 4 excels in production and we have not
had<00:19:19.230><c> a</c><00:19:19.289><c> single</c><00:19:19.500><c> instance</c><00:19:19.950><c> the</c><00:19:20.039><c> downtime</c><00:19:20.370><c> since</c>

00:19:20.659 --> 00:19:20.669 align:start position:0%
had a single instance the downtime since
 

00:19:20.669 --> 00:19:24.830 align:start position:0%
had a single instance the downtime since
August<00:19:21.090><c> last</c><00:19:23.120><c> factors</c><00:19:24.120><c> cost</c><00:19:24.390><c> so</c><00:19:24.600><c> what</c><00:19:24.720><c> do</c><00:19:24.780><c> you</c>

00:19:24.830 --> 00:19:24.840 align:start position:0%
August last factors cost so what do you
 

00:19:24.840 --> 00:19:26.390 align:start position:0%
August last factors cost so what do you
pay<00:19:24.960><c> for</c><00:19:24.990><c> you</c><00:19:25.230><c> pay</c><00:19:25.350><c> for</c><00:19:25.409><c> the</c><00:19:25.710><c> ec2</c><00:19:26.010><c> instances</c>

00:19:26.390 --> 00:19:26.400 align:start position:0%
pay for you pay for the ec2 instances
 

00:19:26.400 --> 00:19:29.029 align:start position:0%
pay for you pay for the ec2 instances
pay<00:19:27.179><c> for</c><00:19:27.330><c> the</c><00:19:27.390><c> load</c><00:19:27.539><c> balancers</c><00:19:28.110><c> and</c><00:19:28.350><c> then</c><00:19:28.950><c> when</c>

00:19:29.029 --> 00:19:29.039 align:start position:0%
pay for the load balancers and then when
 

00:19:29.039 --> 00:19:30.529 align:start position:0%
pay for the load balancers and then when
you<00:19:29.100><c> also</c><00:19:29.250><c> pay</c><00:19:29.429><c> for</c><00:19:29.460><c> outbound</c><00:19:29.820><c> data</c><00:19:30.090><c> transfer</c>

00:19:30.529 --> 00:19:30.539 align:start position:0%
you also pay for outbound data transfer
 

00:19:30.539 --> 00:19:32.330 align:start position:0%
you also pay for outbound data transfer
something<00:19:31.200><c> we</c><00:19:31.380><c> didn't</c><00:19:31.710><c> know</c><00:19:31.890><c> when</c><00:19:32.070><c> we</c><00:19:32.159><c> had</c><00:19:32.309><c> our</c>

00:19:32.330 --> 00:19:32.340 align:start position:0%
something we didn't know when we had our
 

00:19:32.340 --> 00:19:34.220 align:start position:0%
something we didn't know when we had our
max<00:19:32.580><c> pure</c><00:19:32.789><c> set</c><00:19:32.970><c> as</c><00:19:33.090><c> high</c><00:19:33.240><c> as</c><00:19:33.390><c> they</c><00:19:33.539><c> were</c><00:19:33.570><c> was</c>

00:19:34.220 --> 00:19:34.230 align:start position:0%
max pure set as high as they were was
 

00:19:34.230 --> 00:19:35.299 align:start position:0%
max pure set as high as they were was
your<00:19:34.350><c> outbound</c><00:19:34.590><c> data</c><00:19:34.799><c> transfer</c><00:19:35.190><c> actually</c>

00:19:35.299 --> 00:19:35.309 align:start position:0%
your outbound data transfer actually
 

00:19:35.309 --> 00:19:36.560 align:start position:0%
your outbound data transfer actually
runs<00:19:35.580><c> into</c><00:19:35.760><c> the</c><00:19:35.820><c> thousands</c><00:19:36.179><c> of</c><00:19:36.270><c> dollars</c><00:19:36.330><c> per</c>

00:19:36.560 --> 00:19:36.570 align:start position:0%
runs into the thousands of dollars per
 

00:19:36.570 --> 00:19:38.810 align:start position:0%
runs into the thousands of dollars per
month<00:19:36.750><c> so</c><00:19:37.590><c> we've</c><00:19:37.770><c> dropped</c><00:19:37.980><c> this</c><00:19:38.159><c> down</c><00:19:38.370><c> with</c><00:19:38.520><c> 50</c>

00:19:38.810 --> 00:19:38.820 align:start position:0%
month so we've dropped this down with 50
 

00:19:38.820 --> 00:19:42.080 align:start position:0%
month so we've dropped this down with 50
peers<00:19:39.240><c> we</c><00:19:40.049><c> actually</c><00:19:40.470><c> end</c><00:19:40.620><c> up</c><00:19:40.770><c> with</c><00:19:41.100><c> about</c><00:19:41.340><c> 2</c><00:19:42.000><c> to</c>

00:19:42.080 --> 00:19:42.090 align:start position:0%
peers we actually end up with about 2 to
 

00:19:42.090 --> 00:19:45.590 align:start position:0%
peers we actually end up with about 2 to
3<00:19:42.240><c> terabytes</c><00:19:42.690><c> out</c><00:19:42.900><c> every</c><00:19:43.320><c> month</c><00:19:44.390><c> real</c><00:19:45.390><c> quick</c>

00:19:45.590 --> 00:19:45.600 align:start position:0%
3 terabytes out every month real quick
 

00:19:45.600 --> 00:19:49.940 align:start position:0%
3 terabytes out every month real quick
slide<00:19:46.880><c> why</c><00:19:47.880><c> not</c><00:19:48.030><c> parody</c><00:19:48.360><c> when</c><00:19:49.169><c> we</c><00:19:49.320><c> did</c><00:19:49.530><c> parody</c>

00:19:49.940 --> 00:19:49.950 align:start position:0%
slide why not parody when we did parody
 

00:19:49.950 --> 00:19:51.680 align:start position:0%
slide why not parody when we did parody
about<00:19:50.370><c> 5</c><00:19:50.640><c> months</c><00:19:50.789><c> ago</c><00:19:51.059><c> we</c><00:19:51.299><c> were</c><00:19:51.330><c> getting</c><00:19:51.450><c> a</c>

00:19:51.680 --> 00:19:51.690 align:start position:0%
about 5 months ago we were getting a
 

00:19:51.690 --> 00:19:53.990 align:start position:0%
about 5 months ago we were getting a
bunch<00:19:51.870><c> of</c><00:19:51.990><c> false</c><00:19:52.230><c> nodes</c><00:19:53.070><c> so</c><00:19:53.669><c> we</c><00:19:53.700><c> were</c><00:19:53.909><c> not</c>

00:19:53.990 --> 00:19:54.000 align:start position:0%
bunch of false nodes so we were not
 

00:19:54.000 --> 00:19:55.789 align:start position:0%
bunch of false nodes so we were not
actually<00:19:54.390><c> staying</c><00:19:54.630><c> in</c><00:19:54.840><c> sync</c><00:19:55.169><c> appropriately</c>

00:19:55.789 --> 00:19:55.799 align:start position:0%
actually staying in sync appropriately
 

00:19:55.799 --> 00:19:57.529 align:start position:0%
actually staying in sync appropriately
with<00:19:55.919><c> enough</c><00:19:56.130><c> peers</c><00:19:56.399><c> so</c><00:19:57.059><c> we</c><00:19:57.179><c> just</c><00:19:57.330><c> dropped</c>

00:19:57.529 --> 00:19:57.539 align:start position:0%
with enough peers so we just dropped
 

00:19:57.539 --> 00:19:59.299 align:start position:0%
with enough peers so we just dropped
them<00:19:57.690><c> but</c><00:19:58.320><c> version</c><00:19:58.710><c> 2.0</c>

00:19:59.299 --> 00:19:59.309 align:start position:0%
them but version 2.0
 

00:19:59.309 --> 00:20:00.910 align:start position:0%
them but version 2.0
we<00:19:59.580><c> certainly</c><00:19:59.789><c> want</c><00:20:00.030><c> to</c><00:20:00.120><c> go</c><00:20:00.240><c> ahead</c><00:20:00.360><c> and</c>

00:20:00.910 --> 00:20:00.920 align:start position:0%
we certainly want to go ahead and
 

00:20:00.920 --> 00:20:02.260 align:start position:0%
we certainly want to go ahead and
looking<00:20:01.160><c> at</c><00:20:01.220><c> other</c><00:20:01.370><c> clients</c><00:20:01.790><c> to</c><00:20:01.820><c> bring</c><00:20:02.090><c> out</c>

00:20:02.260 --> 00:20:02.270 align:start position:0%
looking at other clients to bring out
 

00:20:02.270 --> 00:20:03.880 align:start position:0%
looking at other clients to bring out
and<00:20:02.480><c> I</c><00:20:02.870><c> think</c><00:20:02.990><c> that's</c><00:20:03.140><c> something</c><00:20:03.290><c> that</c><00:20:03.410><c> we</c><00:20:03.560><c> you</c>

00:20:03.880 --> 00:20:03.890 align:start position:0%
and I think that's something that we you
 

00:20:03.890 --> 00:20:05.020 align:start position:0%
and I think that's something that we you
know<00:20:03.980><c> kind</c><00:20:04.220><c> of</c><00:20:04.280><c> call</c><00:20:04.460><c> for</c><00:20:04.490><c> help</c><00:20:04.700><c> on</c><00:20:04.910><c> the</c>

00:20:05.020 --> 00:20:05.030 align:start position:0%
know kind of call for help on the
 

00:20:05.030 --> 00:20:06.880 align:start position:0%
know kind of call for help on the
open-source<00:20:05.360><c> side</c><00:20:05.630><c> if</c><00:20:06.260><c> you</c><00:20:06.350><c> guys</c><00:20:06.440><c> know</c><00:20:06.680><c> how</c><00:20:06.860><c> to</c>

00:20:06.880 --> 00:20:06.890 align:start position:0%
open-source side if you guys know how to
 

00:20:06.890 --> 00:20:09.010 align:start position:0%
open-source side if you guys know how to
properly<00:20:07.430><c> configure</c><00:20:07.640><c> parity</c><00:20:08.150><c> like</c><00:20:08.810><c> this</c>

00:20:09.010 --> 00:20:09.020 align:start position:0%
properly configure parity like this
 

00:20:09.020 --> 00:20:11.340 align:start position:0%
properly configure parity like this
month<00:20:09.230><c> that</c><00:20:09.500><c> would</c><00:20:09.620><c> be</c><00:20:09.710><c> great</c>

00:20:11.340 --> 00:20:11.350 align:start position:0%
month that would be great
 

00:20:11.350 --> 00:20:13.210 align:start position:0%
month that would be great
and<00:20:12.350><c> lastly</c><00:20:12.650><c> here's</c><00:20:12.830><c> the</c><00:20:12.920><c> CloudFormation</c>

00:20:13.210 --> 00:20:13.220 align:start position:0%
and lastly here's the CloudFormation
 

00:20:13.220 --> 00:20:16.270 align:start position:0%
and lastly here's the CloudFormation
stack<00:20:13.700><c> like</c><00:20:13.970><c> I</c><00:20:14.060><c> said</c><00:20:14.210><c> we</c><00:20:14.330><c> do</c><00:20:14.540><c> run</c><00:20:14.690><c> an</c><00:20:14.840><c> AWS</c><00:20:15.380><c> but</c>

00:20:16.270 --> 00:20:16.280 align:start position:0%
stack like I said we do run an AWS but
 

00:20:16.280 --> 00:20:18.340 align:start position:0%
stack like I said we do run an AWS but
this<00:20:16.400><c> URL</c><00:20:16.700><c> will</c><00:20:16.910><c> take</c><00:20:17.090><c> you</c><00:20:17.330><c> basically</c><00:20:17.780><c> to</c><00:20:18.020><c> our</c>

00:20:18.340 --> 00:20:18.350 align:start position:0%
this URL will take you basically to our
 

00:20:18.350 --> 00:20:20.290 align:start position:0%
this URL will take you basically to our
github<00:20:18.560><c> repository</c><00:20:18.790><c> where</c><00:20:19.790><c> you</c><00:20:19.970><c> can</c><00:20:20.090><c> go</c><00:20:20.180><c> ahead</c>

00:20:20.290 --> 00:20:20.300 align:start position:0%
github repository where you can go ahead
 

00:20:20.300 --> 00:20:22.420 align:start position:0%
github repository where you can go ahead
and<00:20:20.750><c> click</c><00:20:21.230><c> with</c><00:20:21.410><c> a</c><00:20:21.470><c> single</c><00:20:21.890><c> launch</c><00:20:22.070><c> stack</c>

00:20:22.420 --> 00:20:22.430 align:start position:0%
and click with a single launch stack
 

00:20:22.430 --> 00:20:24.490 align:start position:0%
and click with a single launch stack
spin<00:20:23.300><c> up</c><00:20:23.390><c> the</c><00:20:23.420><c> exact</c><00:20:23.720><c> stack</c><00:20:23.990><c> that</c><00:20:24.110><c> we</c><00:20:24.170><c> run</c><00:20:24.410><c> in</c>

00:20:24.490 --> 00:20:24.500 align:start position:0%
spin up the exact stack that we run in
 

00:20:24.500 --> 00:20:26.530 align:start position:0%
spin up the exact stack that we run in
production<00:20:25.000><c> that's</c><00:20:26.000><c> all</c><00:20:26.150><c> I</c><00:20:26.210><c> have</c>

00:20:26.530 --> 00:20:26.540 align:start position:0%
production that's all I have
 

00:20:26.540 --> 00:20:28.400 align:start position:0%
production that's all I have
thanks<00:20:26.870><c> guys</c>

00:20:28.400 --> 00:20:28.410 align:start position:0%
thanks guys
 

00:20:28.410 --> 00:20:39.970 align:start position:0%
thanks guys
[Applause]

00:20:39.970 --> 00:20:39.980 align:start position:0%
 
 

00:20:39.980 --> 00:20:42.040 align:start position:0%
 
you

