►
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
No,
it's
not
gonna
be
the
same
yeah.
I
figured
that
we
like
have
some
people
who
already
seen
it
and
it
was
kind
of
complex.
So
I
wanted
to
start
easy
questions.
A
The
services
themselves,
the
computations
they
can
be
in
any
language-
that's
like
compilable
to
wasn't
right
now,
but
we're
also
considering
about
adding
more
runtimes
like
javascript
and
stuff
so
yeah,
and
you
can
also
on
browser
peers.
You
can
also
describe
computations
in
javascript
or
typescript
and
on
rust
peers.
You
can
describe
them
in
rust
because
that's.
A
Yeah,
it's
it's
like
exactly
this
code,
but
compiled
to
air
this
like
big
stuff,
so
the
algorithms
kind
of
coordinated
from
the
bottom
up,
there's
no
like
higher
level
yeah
they're,
it's
coordinator
free!
So
whatever
you
have
a
script,
you
just
send
it
to
the
network
and
when
it
comes
to
it
like
comes
to
some
peer
that
you
send
it
to.
It
looks
at
the
script
and
thinks
watch
what
it
should
do.
A
B
A
I
wanted
to
to
just
talk
to
some
peer.
I
know
the
there
is
a
network.
I
want
to
know
something
about
it.
I
want
to
do
to
start
like
simple
and
gradually
implement
something
complex,
but
first
thing
I
would
do
is
like
us
ask
for
some
information
from
peers
in
the
network
right
and
we
usually
you
you
can
do
that
for
cool.
In
rest,
I
mean
in
web
2
world.
You
just
get
some
requests
and
get
some
feedback,
that's
also
possible
in
aqua.
It
will
look
something
like
that.
Yeah
is
it?
A
A
B
A
A
A
How
do
I
run
the
function
like
there
is
an
aqua
cli
tool,
what
it
can
do
it
can
both
compile
aqua
code
to
air
javascript
and
typescript,
or
run
it
right
away.
Let
me
show
you
how
it
looks
I
just
do
aqua
run.
I
specify
what
peer
to
connect
to
like.
I
know
there
is
appear
ls
by
like
stage
we
have
a
stage
network
and
there
are
several
peers.
Second
one
I
will
connect
to.
I
will
explain
how
it
works
a
little
bit
later.
A
B
A
A
What
what
actually
happens
is
we're
going
to
a
some
node
called
relay
some
peer
called
relay.
We
call
this
function
pure
identify.
We
store
that
information
in
a
variable
called
info,
and
we
send
it
back,
send
it
back
to
my
local,
laptop
and
call
in
the
function
console.log.
So,
basically
we're
instructing
my
laptop
to
just
log
the
information
that
been
received
from
the
network.
A
We
can
gradually
like
make
this
stuff
more
and
more
complex,
for
example,
if
we
don't
want
to
like
here,
it's
written
that
we
always
go
to
appear
that
we
use
as
a
relay
as
an
entry
point
to
the
network,
but
we
can
go
a
little
bit
complex,
more
complex
and
we
can
get
info
from
from
any
other
peer
yeah.
It
would
be
the
same
except
the
on
would
be
pier
pure
id.
A
I
expected
that
reaction
by
the
way,
so
this
function
does
basically
the
same
thing
as
this
one,
but
it
executes
pure
identify
on
a
different
peer,
not
on
relay,
but
on
the
peer
that
I
would
specify
here
in
arguments
of
a
function.
A
A
Imagine
there
are
forms
about
fluence,
but
right
now
we're
running
several
peers
on
our
own
and
we
have
them
configured
like
we
have
them
stored
in
the
aqua
cli.
A
Now
we
can
just
this
is
just
a
list
of
the
network
that
we're
using
for
testing
things.
It's
called
stage.
It's
deployed
newest
bleeding
age
version
of
fluence,
rust
beer
and
I
will
just
use
it.
I
am
taking
peer
id
from
one
of
the
nodes
and
I
am
doing
basically
the
same
as
before.
I'm
just
going
to
reuse,
yeah
and
now
I'm
co,
we'll
call
not
the
function
get
info
from
relay,
but
instead
I
will
call
the
function
get
info
from
and
we'll
specify
pure
id.
A
So
this
is
we're
calling
this
function
and
second
comment
we're
calling
getting
for
from
and
specifying
the
argument
here
and
we
get
different
results
because
it's
different
nodes.
They
have
different
multi
addresses
different
ports,
open
stuff
like
that,
but
you
can
see,
for
example,
the
those
stage
nodes
they're
actually
running
like
on
a
single
host,
but
we
have
different
networks
and
where
that
spawn
different
hosts,
not
just
a
single
one.
Okay,
what.
A
A
Alias
type
for
pure
id,
that's
basically
a
string,
but
for
readability
we
call
pure
id
it
contains.
The
identify
service
like
I,
it
contains
service,
called
peer
that
every
peer
in
the
network
implements,
and
it's
just
a
kind
of
api
that's
available
by
default
on
peers
in
the
network.
Yeah.
You
can
extend
this
api
by
by
either
deploying
services,
and
so
it
can
be
dynamic,
and
in
that
case
instead
of
peer,
you
would
have
a
service
id
here.
A
But
this
is
a
built-in
api,
the
one
that
that's
like
handy
to
use
like,
for
example,
you
can
check
whether
some
peers
connected
what
alfonso
was
asking
about.
Like
a
context
you
can
like
explore
routing
table,
you
can
ask
appear
to
connect
to
someone
or
resolve
its
address,
get
10
current
timestamp
of
appearance
stuff,
like
that.
It's
pretty
pretty
vast
api
useful
for
different
tasks
and
that's
built
in
that's
why
it's
called
built
in
aqua
and
that's
just
the
library.
You
see
it's
in
node
modules.
A
Doesn't
validate
whether
it's
your
id
that
broaders
some
some
problems
when,
instead
of
purity
you
just
put
garbage
in
it,
just
doesn't
work,
but
when
ako
vm
sees
a
call
to
some
peer
id,
it
says
to
the
peer:
hey:
let's
make
a
topological
hope
to
that
period
and
in
its
like
way,
the
peer
validates
the
beer
id
and
if
it's
not
the
valid
ready,
it
says,
hey,
I
can't
reach
this
stuff.
What
did
you
get.
A
A
A
On
npm
I
mean
on
package
manager,
you
can
just
install
this
stream,
swap
slash
aqualy
and
you
will
get
those
typings
and
you
can
use
them.
That's.
A
A
So
what
happens
here
in
this
function,
where
I
I
asked
aqua
to
go
on
this
pier
through
relay
and
call
a
function
peer,
identify
on
this
peer
and
return
information
back
to
me.
I
added
this
part
that
me
reacted
to
just
to
be
more
explicit
about
what
happens.
This
actually
is
implicit
language
as
this
implicitly
always
when
you,
because
when
you
connect
to
the
network,
you
connect
there
through
some
node,
you
should
always
specify
somehow,
and
so
all
the
topology
hubs
they
should
start
with
the
relay.
A
They
go
from
your
local
laptop
then
to
the
relay
and
then
to
the
no
to
the
network.
It
could
be
a
complex
topology,
but
it
always
starts
with
the
relay.
Unless
you
in
some
near
future,
you
would
be.
It
would
be
possible
to
connect
several
javascript
piers
together
to
do
like
a
test
network,
and
then
you
wouldn't
need
a
relay
read.
A
A
Support
right
now,
like
in
russia
ptp,
because
the
recently
added
several
months
ago
or
something
so
once
we
we
will
enable
it,
it
will
be
used
automatically
on
lipid,
p
level.
But
if
you
have
like
a
local
peer
and
you
just
want
to
connect
to
it
from
your
from
say,
aquarium,
you
just
specify
like
localhost
and
port,
and
you
just
connect
and
interact
with
it
yeah
without
any
problems.
Yeah,
you
can
remove
all
these.
A
So
we
can
get
a
little
bit
more
fancy
with
what
we
can
do
like,
and
we
can
do
some
hello,
for
example.
I
I
don't
want
to
get
the
whole
info
from
the
peer
I
want
to
get
on
the
version
yeah,
for
example,
from
my
relay,
and
I.
B
A
A
B
A
And
it
will
transform
our
data
further,
and
this
way
you
can
like
program
different
stuff
with
simple,
very
simple
transformations
or
more
complex
transformations,
but
you
can
like
start
simple
and
interactively
go
more
complex
and
so
working
with
one
one
peer
isn't
very
like
fun.
So
we
can
like
get
version.
Do
a
git
versions
function
that
would
ask
for
versions
from
several
peers
and
return.
That
info
to
us,
for
example,.
A
Yeah
like
this,
yes,
you
have
specified
the.
A
And
not
the
network
the
the
specific
host,
so
this
is
basically
multi
address
it
just
alias
for
like
simplicity,
but
if,
if
I
do,
if
I
take
a
look
here,
I
can
just
copy
paste
this
multi
address
and
use
it
instead
of
stage
or
two.
It's
would
be
the
same
thing
yeah.
It
doesn't
compile,
because
I
wrote
incorrect
code
didn't
finish
yet
so
yeah.
A
A
So
we
we're
iterating
through
all
peers
in
the
array
that's
passed
by
us
to
us.
It
could
be
pure
idea,
the
same
thing
we're
doing
on
peer
to
move
our
computations
to
that
peer.
Then
we
do
the
same
thing
right,
but
we
want
to
collect
not
a
single
variable,
but
a
list
of
variables
right,
so
we
create
a
stream,
that's
able
to
hold
infos
and
we
write
to
it
and
we
return
it.
So
what
happens
here?
We
will
go
to
every
peer
in
this
array
and
on
need.
A
A
Let's
run
it
and
we
get
two
in
four
objects
back,
but
that's
not
very
like
fun.
This
sequential
we
go
to
one
period
and
to
another
it
could
take.
If
we
have
hundreds
of
peers
here,
that
would
take
a
lot
of
time,
so
we
can
add
par
here.
Can
you
anyone
guess
what
will
happen
if
I
just
parallelize
this
loop.
A
A
Yeah,
you
know
you
know
so,
since
this
is
parallelized
it
will,
it
will
just
complete
immediately
and
our
messages
will
be
sent
to
all
the
peers,
but
result
will
never
return
back,
because
we
never
asked
result
to
be
returned
back.
We
never
wait
for
actual
data
to
become
available
on
my
local
laptop.
So,
for
example,
let
me
run
it.
A
And
we
will
get
an
empty
array.
Sometimes
we
will.
We
might
not
get
empty
arrays.
If
there
are
particles
coming
to
us,
they
will
bring
the
information,
sometimes
that
happens
and
that's
by
design.
But
here,
since
it's
a
very
simple
script,
we
will
always
get
an
empty
array
back.
So
let's
wait
for
four
two
elements
to
appear
in
infos
array
in
first
string.
A
A
So
I
need
to
do
something
about
that.
What
I
will
do,
I
will
use
array
length
function.
That's
also
a
built-in
function
provided
by
all
peers,
but
it's
not
a
problem
to
implement
your
own
function
like
that.
If
you
want
not
an
array
length,
but
I'm
not
sure
sort
my
array
by
some
strange
criteria,
then
you
can
implement
it
as
well.
We
just
provide
some
things
too.
So
it's
quick,
easy
to
experiment
so
are
in
length
peers.
A
So
yeah
I
had
to
do
a
minus
one
because
it's
zero
based
so
now
it
always
waits
for
all
the
all
the
peers
to
answer
me.
But
what
will
happen
if
I
pass
a
peer?
That's
either
incorrect
peer
id
or
just
down
right.
What
will
happen
if
I
change
something
here,
it
will
just
hang
again
right
because
this
beer,
it's
unavailable,
it's
it's
you're,
either
down
or
doesn't
exist
at
all.
So
how
do
I
handle
that?
A
There
is
a
way
to
put
a
timeout
here,
like
you
can
do
a
parallel.
So
the
idea
what
it's
called
a
race
pattern,
and
the
idea
is
that
I
have
a
join
clause
here-
join
expression
that
will
wait
until
there
are
this
many
messages
available.
A
A
And
some
message
to
return
and
what
will
happen
is
this
process
will
run
in
parallel
with
this
process
through
a
pipe
right
and
whatever
happens?
First,
I
don't
care,
I
just
move
on.
So
at
this
point
I
just
I
will
just
move
on
no
matter
what
how
many
infos
are
there,
so
those
two
lines
will
complete
either
when
there
are
this
many
infos
available
or
after
one.
Second,
it's
a
race
pattern
in
this
sense,
so
we
have
like
three
peers
right
now.
A
B
A
B
So
if
I
mean
I'm
wondering
if,
like
you
you're
running
the
sidewalk
machine,
you
use
connection
and
then
you
covered
300
missions
or
you
just
like
failed.
The
failed
execution.
A
Or,
or
use
it
from
standard
library,
so
it
will
bring
some
algorithms
for
you
to
use,
but
yeah
you
can
do
anything
you
want
you
have
these
primitives
like
send
message,
call
function,
wait
for
something,
but
on
top
of
that
you
can
implement
basically
any
algorithm
of
waiting.
It
will
require
recursion
and
we
have
it
so
yeah,
okay,
what
else?
What
else
yeah?
What
do
you
want
to
see
how
it's
compiled
to
like
how
it's
compiled
to
typescript
or
javascript?
A
A
A
A
B
A
A
No,
no
so
exception
abstraction
in
this
phone.
You
you
have
like
those
orchestration
scripts
that
orchestrate
services
and
you
can
either
have
built-in
services
like
this
ones,
they're
written
in
rust,
on
peers
or
you
can
have
a
wasm
file
deployed
to
appear
and
it
will
be
available
there.
B
A
Question
I'm
just
saying
that
I'm
going
now
to
to
show
the
code
from
previous
workshop
so
that
my
my
recall
something
so.
A
That
I
can
deploy
a
wasm
files
as
a
service
to
any
peer
in
the
network
as
long
as
they
allow
it.
Allow
it
okay,
so.
A
B
A
B
A
And
that's
why
I'm
for
a
few
weeks
been
thinking
about
possibility
to
use
leap2p
protocols
directly
from
services
like
instead
of
using
ipfs
as
a
site?
Car
have
a
bitswap
implemented
as
a.
A
Service
and
you
give
you
give
it
like:
hey,
read
this
file
and
send
data
as
bitswap
over
network,
and
that
would
be
orchestrated
for
aqua,
but
still
work
over
ipv5
particles
if
the
pure
supports
it
yeah.
So
that's
the
the
that's
kind
of
where
I
would
love
to
move
with
all
this.
Please
experiment
on
it.
Yeah
and
here
this
function
allows
allows
me
to
upload
and
deploy
webassembly
services
to
a
set
of
peers.
A
So
I
have
like
predefined
set
of
peers
that
I
know
that
would
love
to
see
my
servers
deployed
on
them
and
that's
what
exactly
what
I
do
and
here
the
yeah.
Let
me
like
step
up
a
few
steps
back
and
show
you
how
like
plugins
work
that
may
may
make
the
services
concept
more
clear,
yeah.
So,
for
example,
what
what
the
could
I
want
from
a
plugin?
Let's
do
do
do
simple
stuff,
like
just
printing
something
to
console
right,
so
some
service
that
I
call
log
log
right
and
it
will
log
message
stream.
A
A
Be
searched,
and
now
I
need
to
like
implement
this
thing,
so
I
need
to
like
implement
this.
This
is
just
a
type
definition:
it's
not
a
working
code.
I
need
to
implement
the
service
and
let
me
do
exactly
that.
A
All
you
need
from
from
from
a
service.
A
A
Object
because
this
service
id
the
log
log
function
that
takes
a
nmsga
string-
and
just
I
don't
know,
does
something
like
this
can
do
like
I'm,
not
sure
if
this
works
in
javascript,
maybe
not
too
too
long.
Okay,
it
can
do
some
something
like
this
or
it
could.
Could
you
know,
store
a
file
to
local
disk
or
anything,
really,
it's
just
an
effect
that
happens
locally.
So
let
me
just
just
call
this.