►
From YouTube: Rust Cologne: WASM in the wild
Description
https://media.ccc.de/v/rustcologne.2018.11.wasm-in-the-wild
hot-upgradable runtime in substrate thanks to Rust
2018 is the year of WebAssembly.
But did you know, you can do more than “Web” with it?
In this talk we’ll investigate how wasm allows substrate,
the Rust blockchain framework that will run Polkadot,
to provide a hot-upgradable, fully configurable
blockchain runtime that runs at native speed (most of the time).
Benjamin Kampmann
A
A
Hello,
everyone,
my
name,
is
Ben.
Full
name
is
done
there,
but
you
can
just
call
me
Ben
I'm,
going
to
see
it
at
the
end
again,
if
you
want
to
contact
me.
Thank
you
very
much
for
having
me
I'd
like
to
talk
to
you
a
little
bit
about
how
we
use
wisdom
in
one
of
our
projects
and
our
new
upcoming
projects
actually
to
create
a
hot
upgradable
runtime
on
a
blockchain
I
work
for
a
company
called
parity.
Who
here
knows
of
parody?
A
Okay,
it's
a
few.
You
get
stickers,
there's
plenty
of
stickers
down
here,
like
a
wine
tent
yourself,
we're
probably
most
known
for
this
one
parody
theorem,
which
is
in
the
theorem
client
that
that
we've
been
building
for
a
couple
of
years.
The
second
biggest
project
is
a
Bitcoin
client
that
we've
built.
They
are
all
in
rest,
we're
very
big
and
long-term
rust
fans
and
people.
Almost
we
put
anything
in
not
less.
Oh
yeah.
We
have
JavaScript
frameworks
to
do
some
front-end
stuff,
other
projects
that
we
have.
A
There
are
not
also
not
blockchain
specific,
although
in
the
crypto
space,
if
you
will
like,
if
your
wallets
or
offline
wallets,
as
well
as
secret
storage,
is
on
the
blockchain
as
well
as
the
parity
bridge
was
also
on
the
blockchain,
which
is
compiled
to
evm
I.
Think
that's
also
basically
arrest,
but
then
also
like
stuff
falls
out
of
there.
That
is
not
necessarily
something
we
always
intend
to
build,
but
we
need
for
other
projects.
One
of
them
is
our
blossom
interpreter.
A
The
parity
wasn't
stack,
which
was
also
mentioned
very
often
in
one
of
the
recent
blog
post.
It
was
about
the
state
of
wisdom
and
exists.
Our
vision
was
mentioned
there,
a
lot
of
the
covent,
which
is
a
second
generation
network
in
general.
What
we
do
is
we
build
next
generation
crypto
tag
infrastructure
because
we
can
and
it's
fun
today.
A
In
general,
there
is
meant
to
be
an
interoperability
layer
and,
as
all
things
web
three,
it
is
supposed
to
enforce
order
and
validity
of
those
messages.
So
I
like
TCP,
where
the
order
is
not
guaranteed
by
the
network
with
this
protocol,
the
order
would
be
guaranteed
to
you
when
you
come
to
when
you
connect
your
chain
to
this
chain
and
through
developing
this,
which
is
a
blockchain
itself.
We've
noticed
very
quickly
that
what
we
have
been
doing
in
party
theorem
and
now
do
in
this
project.
A
There's
a
lot
of
things
that
are
common,
that
are
very
you
can
say,
standard
in
order.
If
you
want
to
build
the
blockchain
and
we
started
building
our
own
framework
to
build
block
chains
which
we
now
build,
polka
dot
on,
which
is
substrate
so
substrate
in
general,
is
a
pocketed,
compatible,
general-purpose
blockchain
development
kit.
B
The
idea
is
that
blocks
have
some
sort
of
sequence,
pointers
previous
blocks.
They
say,
I
trust
this.
One
I
verify
this
one
who's;
okay,
yes,
so
you
have
a
chain
of
blocks
and
the
blocks
point
dips
blocks
that
are
in
the
past.
They
say
this
one
looks
okay,
thereby
verifying
it
and
you
built
upon
these
blocks
getting
on
more
stuff
at
the
end,
and
you
can
store
information
in
them
and
in
more
advanced
cases,
you
can
also
do
computation
on
them,
like
only
theorem.
So.
B
A
That
is
correct,
so
in
general,
when
we
talk
about
it's,
it's
a
log
of
state
transitions
and
these
transitions
are
bundled
in
a
block,
hence
the
name
block.
And
then,
whenever
you
create
a
new
block,
it
references
the
previous
block,
that
it
says
that
was
a
trade
state
transition.
The
state
effectively.
That
happened
and
on
that
please
apply
these
following
trade
state
transitions.
A
And
so
it
means
that
anybody
can
take
that
first
block
and
then
just
run
all
these
transitions
through
and
verify
that
the
state
that
you
are
claiming
the
system
is
supposed
to
be
in
is
exactly
that,
one
that
it's
supposed
to
be
in,
because
you
can
just
apply
them
yourself.
That's
generally
a
blockchain.
A
A
It
wouldn't
understand
its
blocks,
because
the
the
set
of
features
that
this
chain
provides,
and
also
like
things
like
what
crypto
it
is
using
in
order
to
verify
these
things,
they
depend
on
the
the
particular
blockchain
that
you
are
looking
at,
and
this
is
where
we
get
the
idea
of
having
multiple
block
chains
from
because
they
use
different
consensus,
algorithms
or
a
different
crypto,
because
they
they
they
provide
different
features
like
some
of
some
of
them.
You
cannot
really
provide
Hardware
forward
to
make
faster
some.
A
You
actually
do
build
the
blockchain
in
order
to
make
them
very,
very
fast,
with
specific
Tamplin
technology,
but
that
is
always
dependent
on
the
specific
block
chains
that
you
do
so
in
that,
in
that
context,
how
general
can
a
general-purpose
blockchain
system
really
be,
and
we've
tried
to
make
it
as
general
as
possible?
By
saying
we
don't
know?
What's
in
your
block,
it's
an
abstract
block
format.
It's
just
a
binary
block,
must've
substrate.
A
It's
therefore
also
perfectly
just
called
extrinsic,
because
it
doesn't
have
to
be
a
state
transition
for
in
the
idea
of
substrate.
You
can
plug
in
your
own
crypto
database
that
you'd
like
to
use
your
storage
with
this
different
features
at
different
databases.
Allow
you
to
do
so
depending
on
what
kind
of
chain
you
want
to
do.
You
might
have
big
data
that
you
want
to
move
through
and
then
it's
and
then
you
don't
need
to
look
it
up
very
often
and
that
that
kind
of
feature
said
is
something
that
you
can
actually
come
decide
upon.
A
The
same
is
for
consensus
so
which
consensus
algorithm
you're
using
meaning.
How
do
you
figure
out?
What
is
the
next
reddit
blog,
that
is,
consensus,
there's
different
methods
to
do
that.
One
of
the
most
famous
one
is
the
Bitcoin
one,
where
basically,
anybody
could
prove
the
the
puzzle
and
therefore
create
the
next
block,
but
there's
also
the
upcoming
more
common
ones
are
coming
out
of
the
cluster
database.
Cluster
management
systems,
like
raft
or
PACs,
are
systems
where
you
have
a
very
small
set
of
authorities.
Who's
allowed
to
create
or
decide
upon.
A
A
When
you
think
of
a
substrate
node,
it's
actually
two
things:
there's
substrate
and
then
there's
the
actual
chain.
Runtime
this
division
makes
sense
once
you
have
done
multiple
chains
and
we
have
zombicide
from
the
node
the
three
known
ones
that
I
mentioned
before
we
have
experimented
with
a
lot
of
sets
of
chains,
there's
a
bunch
of
things
that
are
common,
like
the
networking
layer
to
see
this
CLI
interface
and
in
other
parts
that
are
just
very
common
and
they
don't
have
to
bother
about
too
much
between
different
chains.
A
But
then
the
exactly
what
I
said
before
what
is
actually
in
your
block
and
what
is
allowed
to
happen
in
within
a
block
that
is
very
change
specific
and
can
be
almost
arbitrary.
So
the
idea
that
the
general
structure
of
substrate
is
that
there's
a
lot
of
stuff
provided
around
it
and
then
there's
this
one
time
in
the
middle
that
effectively
gives
one
function
to
the
outside,
exposes
one
function,
and
that
is
called
execute
block.
And
now,
when,
when
we
see
a
new
block
come
in,
what
happens?
A
Is
that
substrate
receives
that
lock
through
the
networking
layer?
And
there
are
some
general
checks,
like
you
configure
it.
This
is
the
hashing
algorithm,
so
we
make
sure
that
whatever,
but
we
got
in
and
it
didn't
get
corrupt
it
on
the
on
the
networking
layer
and
then
it
hands
that
over
to
that
runtime
and
say
just
execute
that
block
whatever.
That
is
because
substrate
doesn't
know
that
usually
does
some
form
of
consensus
check.
It
checks
whether
that
is
a
valid
block
within
the
frame
of
the
chain
itself.
A
A
Assuming
that
the
block
is
valid,
it
executes
the
the
transitions
that
are
in
the
block,
which
effectively
call
get
state
and
set
state
down
on
substrate,
which
is
provided
by
the
by
the
internal
database,
and
in
the
end
of
that,
if
everything
worked
out
and
the
the
entire
set
of
transitions
is
not
failing,
which
substrate
also
provides
a
and
in
between
layer
for
like
a
classic
transaction
system,
you
only
do
that.
Transaction
if
everything
works,
the
block
is
stored,
so
you
can
also
give
it
to
others
later
as
much
before.
D
That
provides
a
very
minimal
interface
for
a
very
few
methods
that
you
can
call
from
the
outside
to
get
data
in
and
out,
and
that
will
maybe
in
the
future,
allow
us
to
have
platform
independent
runtimes,
which
are
very
many
more
and
can
be
implemented
in
a
very
efficient
way,
something
like
assembly
for
the
web,
but
maybe
something
bigger.
We
will
see
exactly.
A
That
it's
a
web
standard
that
has
been
find
a
couple
years
back,
I
think
2015
as
well,
and
it's
it's
a
basic
set
of
safe
assembly
that
you
have
on
almost
all
platforms
and
that
you
can
more
or
less
consider
safe
and
that
is
primarily
was
primarily
developed
to
allow
for
almost
native
speed
run
time
in
browsers
asked
it
is
a
in
assembly
language.
You
can
technically
write
that
yourself,
but
as
with
most
assembly
today,
you
don't
want
to
especially
if
you're
on
a
rusty
trip.
A
You
probably
don't
so
it's
it
also
generally
meant
as
a
compiled
target
and
rust
was
actually
the
first
language
to
support
Muslim
as
a
primary
target.
So
you
can
write
your
rust
code
and
almost
all
of
the
time
you
can
compile
it
to
as
a
binary.
By
now
pretty
smoothly,
and
as
you
also
mentioned,
they
are
usually
executed
in
a
sandbox
virtual
environment.
A
I
refrain
to
use
the
word
virtual
with
a
machine
because
it
turns
out
most
implementation,
won't
use
that,
but
I
actually
have
more
or
less
turns
translate
the
actual
allen
keys
into
the
whatever
native
version
of
Azzam.
There
is,
and
just
have
some
sandboxing
around
to
do
memory
management
and
constrain
it.
So
it's
closer
to
the
way
that
operating
systems
manage
that,
rather
than
virtual
machines
usually
do,
but
essentially
that's
it
like
it's
a
binary
blob
of
your
code.
A
That
is
an
almost
native
speed,
and
so
this
you
can
actually
put
into
the
chain
that
the
runtime
itself
can
say
:
code,
here's
a
new
wasn't
blob
because
I
cheated
you
a
little
bit
when
I
said
that
these
are
the
two
steps
that
happen,
because
in
the
second
step
a
very
important
small
different
thing
happens,
and
that
is
that
substrate
actually
looks
up.
What
is
the
version
of
the
code
at
that
moment?
For
that
block,
which
is
the
very
first
point,
is
that?
A
Can
you
see
we
do
okay
and
then
it
figures
out
through
this
little
line
here.
Neither
the
native
version
that
we
currently
running
the
rust
made-up
version
is
compatible
with
the
version
that
has
been
implemented
on
the
train,
in
that
case
we're
just
using
the
conversion
that
we
have
the
native
call.
A
So,
most
of
the
time
we
don't
actually
have
to
setup
the
entire
environment
and
actually
do
all
of
that
because,
at
least
for
us,
in
parody
the
the
rust
code
base
for
the
wasn't
binary
and
the
rust
code
base
for
the
executors
are
actually
the
same
rust
codebase.
We
are
simply
building
that
new
version.
However,
if
you
have
you're
running
an
older
client-
and
you
have
not
upgraded
recently,
so
your
version
might
not
be
compatible.
A
Give
you
a
few
minutes
of
a
darker
slide
to
let
that
sink
in
and
explain
to
you,
but
this
runtime
version
effectively
looks
like
this
is
almost
the
worst
there's
a
few
other
things
in
there,
but
they
don't
matter
for
the
case.
We're
talking
about
so
runtime
version
is
basically
to
just
distract
having
two
strings.
A
One
is
the
specification
name,
just
basically
the
name
of
the
chain
that
you
want
to
do,
and
an
implementation
name,
which
is
the
idea
that
there
might
be
other
people
who
want
to
implement
that
same
specification
and
provide
their
version
of
the
of
the
button
binary.
Then
they
are
still
considered
to
be
compatible
because
they're
supposed
to
do
the
same
specification
similar
down
here
we
have
the
the
version
of
that
specification
is
just
integer
that
that
goes
up
and
a
minor
version
that
tells
us
if
there
have
been
other
changes.
A
The
idea
of
the
minor
wisdom
is
really
like
and
then
the
same,
where
idea
of
minor
version,
meaning
that,
if
we
do
our
track,
the
two
things
we
actually
check
is:
is
that
spec
as
the
spec
that
we
have
running
here
on
our
version?
And
if
that
version
the
same
as
our
vision?
And
we
ignore
the
minor
version,
because
this
is
supposed
to
be
only
minor,
non-breaking
bug,
fixes
and
speed
improvements,
which
means
that
we
probably
want
to
use
the
native
version,
because
it's
still
going
to
be
faster
than
the
rise
version.
A
We're
going
to
be
executing
that
just
provided
runtime
without
restarting
without
the
person
running
that
note,
even
knowing
that
happened
or
having
to
agree
at
it
at
all,
the
chain
can
upgrade
itself
and
that's
because
it
wasn't
and
that's
awesome
in
case
you
didn't
notice,
I,
see
I,
see
a
lot
of
I'm
wondering
if
you're
just
trying
to
grasp
what
is
happening
or
if
you're
doubting
what
has
happened,
go
ahead.
Yeah,
please,
please
go
ahead
so.
A
C
A
What
is
the
previous
way,
what
restarting,
usually
downloading
and
restarting
fumé,
where
whatever
operate
you
do
like
even
your
phone?
They
all
do
that
way
right!
Okay,
thank
you,
I
would
say,
I.
Give
him
even
browsers
can't
do
that
today.
Thank
you.
They
only
run
after
thanks
for
there's.
Actually
one
particular
case.
I,
don't
know
if
you
heard
of
about
a
software
called
air
long,
it's
a
programming
language
from
the
early
90s
for
development
Ericsson,
which
was
meant
to
run
on
telephone
routing
systems
which
never
stopped.
A
If
you
will
to
that,
although
there
it
would
be
native
because
it's
all
running
in
that,
so
they
did
that
they
did
that
1992
and
even
earlier
small
talk
was
self
upgrading
all
the
time.
It's
actually
pretty
amazing.
You
should
look
at
that.
We're
coming
back
to
what
we
do
here
as
a
general-purpose
framework
and
coming
back
to
your
question
as
well.
A
We're
always
struggling
with
the
question
if,
like
that,
minimum
effort,
which
we
want
people
to
be
able
to
deploy
their
own
train
with
the
minimum
amount
of
work
they
have
to
do,
is
definitely
at
odds
at
being
the
most
free
and
choosing
what
you
want
to
do
so,
rather
than
opting
for
one
side
or
the
other,
which
other
frameworks
often
do.
We
decided
to
go
for
a
stacked
approach
where
we
allow
for
different
degrees
of
freedom,
depending
on
the
amount
of
effort
you're
willing
to
take
in
the
easiest
is
down
here.
A
A
Smart
contracts
work
just
that
it
doesn't
have
an
EVM
in
our
version
here
you
could
implement
an
EVM
which
is
the
theorem
virtual
machine,
which
is
a
different
set
of
commands.
We
actually
have
a
wasn't
run
time
as
well,
so
you
could
create
a
chain
that
allows
people
to
upload
their
contracts,
their
small
programs
as
wasn't
themselves
and
run
that
and
then
from
within
the
Rossum
runtime.
We
spawner
does
different.
Wasn't
runtime
that
actually
allows
you
to
execute
that
contract,
and
the
thing
that
you
were
talking
about
is
like
how?
A
How
would
then
this
chain
allow
set
code
to
happen?
For
example,
we
also
come
with
a
with
a
starting
set
of
features
for
that.
So,
if
you
use
node
our
our
default
setup
for
this,
you
have
to
hold
a
referendum
about
changing
the
code,
so
you
upload
a
new
version
of
the
code
and
then
a
referendum
needs
to
happen
in
that
particular
case.
That
goes
through
the
Council,
which
is
at
least
X
percent
of
coin
holders,
and
that
moment
in
the
network
need
to
agree
that
this
happens
within
I.
A
Think
you
can
configure
that,
but
depay
default
16
X
blocks.
If
it
doesn't
happen,
the
the
patch
is
not
applied,
but
if
they
agree,
then
it
immediate
becomes
valid
and
it
becomes
valid.
For
all
knows
they
want
to
continue
with
that
chain,
meaning
that
60
blocks
later
everyone
runs
the
new
version
of
the
code.
A
Yeah
I,
just
just
to
make
sure
that
you
understand
what
that
means.
Bitcoin
at
the
end
of
last
year,
after
discussing
for
a
very
long
time,
decided
that
they
implement
a
feature
where
they
upgrade
the
block
size
and
they
decided
that
if,
by
the
end
of
this
year,
80%
of
the
nodes
in
the
network
actually
have
that
feature
to
be
able
to
do
that.
Then
it
would
switch
on
automatically.
F
F
A
It's
not
arbitrary.
It's
like
you.
You
deploy
the
first
set
of
notes
effectively.
They
need
to
still
download
your
client
that
someone
provided
and
connect
to
your
chain
to
be
able
to
talk
and
decide
what
feature
said
of
transitions
are
accessible,
for
example,
in
Pokhara.
The
way
that
we
manage
messaging
between
two
chains
is
a
relay
chain
that
relays
from
one
thing
to
another
so
effectively
the
the
the
only
commands
you
can
do.
There
is
hey
I'm.
Sending
this
message
to
eggs,
find
Alice,
that's
not
arbitrary
code.
A
It's
just
like
a
different
set
of
functionality
that
is
provided
within
the
contracts
network,
which
is
more
what
you're
getting
at
like
what?
What
the
theorem
does?
This
one
uses
the
a
theorem
idea
of
gasps.
Whenever
you
want
to
execute
a
contract,
you
pay
a
certain
amount
of
gas
that
gets
used
up
when
executing
the
contract
because
of
the
the
you
never
know
whether
the
thing
ends
or
not.
A
Whenever
you
run
out
of
gas,
the
contract
stops
executing,
even
if
it
didn't
finish
and
you're
at
a
loss,
it's
you
paid
for
it
and
it's
gone,
but
that
is
the
the
arbitrary
code
vector
if
you
will
for
that,
you
need
to
convince
people
to
run
your
train
and
whatever
you
code,
you
have
running
in
the
train.
Well,
like
you
know,
in
a
Bitcoin
client,
you
can
also
put
arbitrary
code
technically
and
get
someone
to
run
it
I.
E
E
A
Well,
yes,
well,
the
Dow
would
right
now
run
in
a
contract
system,
but
it's
not
an
infinite
loop.
It's
just
stuck
hidden
something
that
you
cannot
continue
to
execute,
which
is
a
different
thing,
because
it
doesn't
allow
execution
endless
execution,
that's
what
the
theorem
doesn't
and
what
this
contract
system
also
doesn't,
because
you
have
to
pay
for
it
and
there's
no
endless
money
in
the
system
right,
so
it
stops
executing,
and
this
is
part
of
why
it
by
the
Dow
stop,
but
the
Dow
cases,
among
other
things,
one
of
the
complicated
ways.
A
That
is
why
we
don't
force
everybody
to
do
that.
We
are
actually
very
certain
that,
with
that
model,
it
makes
more
sense
to
not
do
that
at
all,
but
instead
provide
a
more
restrict
and
tailor
to
your
use
case
set
of
features
in
your
runtime.
Let's
say:
you're
your
social
network
Twitter.
Something
like
that!
Do
you
don't
need
a
blob
that
allows
almost
arbitrary
execution
that
doesn't
make
sense,
but
you
can
build
most
of
the
features
that
you
want.
A
That
would
otherwise
live
on
the
server,
basically
as
features
as
a
module
in
here
that
offers
certain
features
to
transactions,
to
happen
for
transactions
to
happen,
and
you
can
still
bind
that
to
the
accounts
of
balance
system,
so
you
could
only
tweet
when
you
pay
for
it,
for
example,
and
therefore
not
make
it
a
brewery
and
it's
portable,
but
that
is
for
the
first
time
really
up
to
the
developers
to
design
hey.
This
is
the
feature
set
off
my
back
end.
If
you
will
that
I
would
like
to
see
I.
C
A
A
It
has
one
we
call
it
relay
chain,
which
is
really
just
one
block
chain
that
that
continuously
happens,
that
noise
of
other
chains
in
the
other
networks
are
usually
called
side
chains,
because
impera
chains,
because
they
run
on
the
same
network,
and
these
can
basically
put
messages
into
the
relay
chain
and
other
other
power.
Trains
are
interested
in
seeing
them,
but
the
basic
idea
of
theorem
one
it
was
invented
similar
as
part
of
Bitcoin
Wesselman.
A
It
was
what
is
called
the
the
idea
of
a
blockchain,
maximalism,
there's
one
blockchain
to
rule
them
all
idea
of
the
world,
and
this
is
exactly
the
opposite
if,
from
the
very
start
says,
there's
multiple
chains
that
have
multiple
features
and
that
can
talk
to
one
another,
and
that
also
means
there's
always
bridges
necessary,
because
there's
always
going
to
be
chains
that
are
not
even
within
this
network,
but
run
outside
of
the
network.
For
example,
aetherium,
there's
no
point
in
replacing
the
inferior
network
right
now
with
a
new
network.
It's
also
not
gonna
happen.
A
You
get
Bridget
through
possible
means
to
get
this
interoperability
with
other
on
chains
or
you
can't
even
go
the
the
full
route
and
say
you
know
what
I
trust
this
network
to
run
this
system
as
well,
and
then
it
would,
it
would
apply
to
become
a
power
train,
but
this
is
not
something
that
that
specific
chain,
the
substrate
network,
fixes
by
itself.
It
just
faces
it
by
being
able
to
talk
to
Pokhara.
B
A
To
give
you
the
future
slide,
because
of
course
it's
not
all
begin,
we
don't
just
build
this
system
to
be
hot-swappable,
but
that's
one
of
the
main
feature
we
talked
about
today,
the
optional,
really.
They
are
optional
modules
that
you
can
use
for
your
chain,
also
something
that
you
directly
get
the
substrate,
as
mentioned
before.
It's
a
was
in
run
time.
So
if
you
don't
care
about
losing
that
potentially
native
speed
effect,
which
is
we
haven't,
really
done
matters
yet
you
could
run
it.
A
A
It
will
have
hot-swappable
pluggable.
Consensus
already
has
pluggable
consensus,
but
the
idea
is
that
you
could
start
using
substrate
now,
but
polka
dot
is
not
yet
ready,
but
you
could
already
deploy
it
and
already
start
using
it
and
could
later
upgrade
that
with
the
consensus
algorithm
that
will
be
used
as
a
pirate
chain,
which,
probably
for
the
first
for
the
for
the
first
half-year
means
you
have
to
actually
restart
your
client
ones,
but
in
the
later
vision,
and
also
this
one
currently
working
on
this
can
also
be
done
through
the
runtime
itself.
A
So
the
one
time
itself
could
change
the
way
it
decides
on
consensus.
There
will
be,
or
there
already
light
clients.
I
was
asked
about
that
before,
meaning
that
you
can
connect
to
the
network.
You
don't
download
the
entire
X
gigabytes
that
it
will
be
at
some
point,
but
you
just
more
less
trust
it,
which
is
a
great
case
for
the
browser
where
you
just
want
to
send
something
to
the
chain
most
of
the
time.
A
While
you
look
so
look
up,
look
something
up
from
the
chain:
there's
changing
Croatian
already
built-in
you
don't
have
to
bother
about
that.
There's
a
publish/subscribe
web
socket
API,
which
was
really
nice
for
for
the
web
interface,
which
which
you
can
use
to
that's,
not
in
order
which
you
can
use
the
with
a
compatible
javascript
is
provided
to
interact
with
a
chain,
so
the
chain
can
because
we
know
of
the
features
that
exposes
through
wisdom.
We
can
expose
them
on
the
JavaScript
side.
A
So
as
soon
as
the
new
block
becomes
available,
your
JavaScript
publish/subscribe
library
already
has
that
command,
and
you
can,
you
can
call
it.
It
has
a
transaction
queue
system.
Secure.
Networking
I
mentioned
that
before
the
JavaScript
information
should
have
been
there,
because
that's
what
I
was
talking
about
and
it
has
telemetry,
meaning
that
it's
very
easy
to
set
up
a
server
where
you
just
ping.
Your
current
information
in
you
get
a
pretty
interface
and
just
in
short,
you
can
try
it
out.
Today.
A
See
half
an
hour
plus
before
people
perform
kicked
off
the
stage
come
first
up
we're
hiring.
We
would
have
kissed,
you
can
find
all
of
them
at
party.
Our
jobs
is
iPhone
this
one.
If
you're
interested
in
that
talk
to
me,
because
it's
not
online
yet
database
engine
you
you
can
talk
to
me
somewhere
over
there.
You
choose
substrate
and
I'm
still
here
for
other
questions.
A
A
We
nuked
our
test
train
once
we
created
it,
wasn't
binary
that
didn't
actually
work
voted
upon
it
and
it
was
active.
So
we
decided
we
will
include
a
fail-safe
mechanism
that
essentially
is
a
part
of
the
consensus
algorithm,
allowing,
for
example,
your
usual
block
timers
for
seconds.
If,
after
you
change
the
code
for
another
60
seconds,
no
other
block
is
authored,
because
you
can't
actually
create
any
because
the
block
doesn't
work
anymore.
A
A
If
you
use
our
run
times
and
the
referendum
can
decide
about,
bad
blocks
can
decide
that
certain
blocks
are
considered
bad
and
you
are
not
allowed
to
author
on
top
of
those
anymore,
which
is
another
mechanism
to
to
get
around
them,
but
the
the
failsafe
as
we
call
it,
just
be
really
we're
able
to
recover
to
that.
One
is
a
feature
that
we
will
implement
in
the
runtime
library.
So
it's
not
something
that
substrate
will
provide
by
itself.
But
if
you're
using
the
runtime
library
that
we
provide,
then
that
one.
E
A
Therefore,
it
is
questionably
at
the
moment
whether
that
is
considered
legally
it
being
deleted
or
not,
there's
a
good
case
to
be
made.
It's
not,
and
as
soon
as
you
start
working
on
decentralized
systems
and
consensus
in
this
entire
systems,
you
realize
that
with
VIN
a
decentralized
systems,
you
can't
guarantee
deletion,
it's
just
mathematically
topologically
impossible
and
it
will
always
be
possible
to
recover
to
some
degree,
if
you
have
at
least
one
node.
A
A
Starting
with
the
starting
with
the
last
one,
so
polka
dot
is
not
like,
yet
not
yet
life
we're
working
on
POC
three
at
the
moment,
which
is
pluggable
consensus
supposed
to
happen
before
the
end
of
the
year.
The
idea
is
that
we
also
want
to
have
security
orders
and
some
other
stuff
happening,
and
that
will
have
a
live
network
by
the
end
of
next
year.
So
there
aren't
any
power
chains
yet
for
that
that
you'd,
like
Chris
in
regards
to
actual
use
cases.
A
Yes,
we
we
have,
we
are
being
approached
more
and
more
by
different
agencies
that
are
very
interested
becoming
powertrains
in
in
general.
One
thing
I
didn't
talk
about
is
the
the
way
that
the
relay
chain
works.
Is
it
doesn't
matter
how
the
power
chain
comes
to
consensus,
which
means
it
could
also
again
be
a
relay
chain,
so
you
can
compose
them
in
a
hierarchical
order,
which
makes
it
an
interesting
system
for
actual
real
world.
How
many
things
are
structured?
A
They
would
have
a
power
train
as
well
and
they
would
connect
on
a
higher
level.
That
is,
that
is
really
the
case.
That
I
know
we're
talking
with
organizations
about
not
the
ones
that
I
mentioned,
but
in
general,
the
being
able
from
one
chain
to
talk
to
another
is
a
very
common
use
case.
Actually,
even
if
you
think
just
about
crypto
kitties,
you
want
to
actually
pay
crypto
kitties
with
the
theorem
coins
at
the
beginning.
A
So
you
need
to
right
now,
they're
running
on
a
side
chain
that
is
directly
connected,
but
even
being
able
to
transfer
Bitcoin
to
Thiam
right
now.
You
always
have
to
go
through
an
exchange
which
actually
holds
your
money,
which
is
a
third
party
which
is
exactly
the
opposite
of
what
this
entire
network
is
supposed
to
be
about
until
they
were
removing
these
and
having
these
things
happen
in
the
network
itself.
I
personally
also
think
that,
aside
from
general
security
issues,
the
social
network
ideas
specifically
for
public.
A
Public
information
like
in
the
way
that
medium.com
is
a
social
network
at
the
moment
or
others
things
like
it,
where
it's
mainly
about
having
public
information
for
exactly
for
those
use
cases
you
would
want.
You
would
run
your
own
chain
because
it's
specific
to
what
you
do
and
then
you
want
to
sell
a
sticker
on
that
chain,
and
you
don't
want
to
invent
another
currency
for
that,
but
you
want
to
be
able
to
get
the
currency
from
another.
Existing
chains
like
Bitcoin
or
if
you're
in
this
is
the
general
idea
of
these
systems.
A
I
always
make
that
comparison.
Think
of
poccadot
as
the
baby
HTTP
layer
and
then,
if
you
want
to
talk
to
a
specific
server,
you
still
need
to
implement
their
API,
but
you
generally
have
a
way
to
connect
to
that
server.
That's
the
general
purpose
and
then,
if
you
want
to
I,
don't
know
get
money,
you
today
go
from
your
e-commerce
site
to
pay
Paul,
for
example,
and
call
the
API
is
that
they
do
provide
to
you,
and
that
is
similar
in
the
way.
Just
not
entities
anymore,
but
networks
again
on
that
layer
provide
that.
A
The
the
etherium
client,
for
example,
was
just
awarded
a
grant
from
the
etherium
foundation
about
five
million
years,
a
couple
of
months
back
to
continue
development,
and
just
generally
that
we
did
this.
They
they
made
clear
that
this
is
the
thank
you
grant
from
the
community.
We're
currently
working
with
the
cash
to
build
an
implementation
on
site
on
top
of
substrate,
which
they
are
paying
for.
A
But
you
would
have
to
pay
a
actual
fee
if
you
wanted
to
use
it
outside
of
that.
So
as
long
as
you
contribute
to
them
a
higher
network
and
as
long
as
you
come
up
you
to
the
entire
community,
we're
fine
with
you
just
using
it,
but
if
you
wanted
to
use
it
within
your
organization,
for
example,
or
outside
of
that
or
the
different
network,
for
that
matter,
you
would
have
to
pay
so
we
use
its
license
fee
that
is
personally
free.
A
If
you
were,
is
one
of
the
ideas
at
this
very
moment
parody
for
poker,
odd
parity
and
bap.
Three
did
it
on
ICU
yay
over
a
year
ago,
where
they
made
a
lot
of
money.
We
are
not
worried
about
money,
just
really
nice
and
we
don't
really
have
investors.
It's
also
nice.
They
still
have
a
lot
of
money,
then
I'm,
actually
hiring
I
want
to
say
that
again,
the.
A
F
A
B
A
We're
not
using
proof
work
because
we're
using
less
of
less
waste
we're
using
less
wasteful
systems,
so
the
the
way
that
polka
dot
is
going
to
be
using.
It's
a
proof
of
authority
system
which
we
have
been
making
very
good
experiment,
had
very
good
experiences
on
kovin
the
primary
reason
for
that
not
necessary
not
even
being
the
the
wastefulness
of
it,
but
the
speed
we
really
for
the
polka
dot
network.
A
Wonder
really
do
block
time,
meaning
like
it
takes
very
seconds
to
create
a
new
block
in
in
order
to
allow
very
lot
a
lot
of
throughput
because
well
in
the
end
of
the
day,
is
going
to
need
a
lot
of
throughput
and
that's
simply
not
possible
with
any
known
proof
of
work
systems,
because
if
they
would
be
very
quick,
that
would
be
easy
to
cheat.
So
that
is
why
that
is
primarily
a
proof
Authority
system
in
general,
though,
because
the
consensus
is
pluggable.
A
There's
this
idea
to
provide
some
chains
which
don't
have
finality
in
that
sense,
as
proven
work,
proof
of
authority
provides
and
there's
also
some
ideas
to
provide
some
polka
dot
cash
like
reference
implementation.
That
would
use
a
similar
system
mainly
for
the
giggles
of
whatnot,
because
we
believe
that's
a
good
idea,
but
you
could.