
Vanadium – Create distributed applications that can run anywhere - chuhnk
https://v.io
======
mehrdada
The cool thing I really like about Vanadium is a unified worldview it provides
with the ability to access every object in the Vanadium ecosystem through its
powerful naming/mounting mechanism. In Vanadium, you can "mount" things on
your namespace (think Unix VFS) on a hierarchical namespace and invoke RPC
methods on the objects. The method invocation is mutually authenticated with
ed25519 keys and end-to-end encrypted on the wire. I sometimes jokingly called
it "Plan 10". It is certainly not just another "synchronizing database" though
that is a subset of it.

Disclosure: I very briefly worked on it at Google and I can attest the team
behind it is brilliant beyond imagination.

------
niftich
After 10 minutes, here's what I found out:

\- The authors are either Google and/or heavily affiliated with Google

\- On their website, the two highlighted projects/products are Syncbase and
Vanadium Core.

\- Syncbase is a distributed, works-offline datastore, with well-defined ways
of doing reconciliation. Think, git merges, or collaborative docs, or y'know
anything with vector clocks but approached from the side of the UX they want
to target.

\- Vanadium Core is "the discovery, RPC, and security layer underlying
Syncbase", including its custom binary data serialization format 'VOM' and its
IDL called 'VDL'.

~~~
inopinatus
> Syncbase: "Offline-first and peer-to-peer, Syncbase provides local storage
> that opportunistically syncs data".

I have an application for that _right now_. Syncbase doesn't look ready
though, does anyone know of an alternative data store that ticks all those
boxes? e.g. I was looking at Cognito, but it lacks peer-to-peer.

~~~
azinman2
Nothing else does what vanadium does, especially at its sophistication level.
I don't know if I'd use it in production yet unless you are willing to put in
some engineering resources, but you're unlikely to find something else as well
made elsewhere. This is the product of a very elite team... which means it's
also very complicated to use.

~~~
pavlov
_This is the product of a very elite team... which means it 's also very
complicated to use._

That's an unfortunate assumption. Looking back at historic examples, the
Windows API was complicated to use while the NeXTSTEP API wasn't. Is there any
question which was created by an "elite team"?

~~~
azinman2
Syncbase is the attempt to simplify it and abstract a lot of it. It's API is
much more straightforward and is fairly easy to work with.

Part of the complexity is that it's solving like 15 major problems at the same
time in an interconnected way. It's also solving them for people like google
which means there are a lot of requirements for all the things it needs to do.

Because it does new things, in addition to old things in new ways, there's a
steep learning curve for all of its concepts. I totally agree that doesn't
mean it couldn't be more elegant and "simple," but the win32/nextstep analogy
isn't fair as they were far more similar than vanadium is to anything else.
Vanadium is like a hybrid of (to use existing concepts)
dns/http/ssl/json/bluetooth/nosql/ntp/kerberos and more. When you put it all
together there isn't a lot of existing references or cognitive frames to help
you "get it" righ away.

~~~
inopinatus
The outcome I'm looking for is basically CRDT (or something very like it)
using only BYO smartphone & laptop devices (acting as both the forwarding
nodes and the application client), robust against nontechnical user mishap and
patchy/absent Internet connectivity.

I was looking at
[http://www.opengarden.com/meshkit.html](http://www.opengarden.com/meshkit.html)
but they don't seem interested in my scale.

~~~
azinman2
I'd go with something that's more production ready / supported. Don't know
about meshkit but sounds cool.

------
cosmosnicolaou
Let me provide a brief history/overview and answer the questions that have
been asked as best I can. I started vanadium about three years ago to build a
secure rpc and naming system that would make it easier to build distributed
applications, including those on mobile and embedded devices/IoT. Security was
a central goal. Distributed, synchronzsed storage has long been a pain point,
especially when devices are often disconnected and we built syncbase to
address that need.

I left Google in May of this year and joined Grail, where we're developing an
NGS-based blood test to detect cancer early, when it can still be cured. We're
using Vanadium for the infrastructure we need to support our internal
development and analysis pipelines. Since I left Google Vanadium was split
into a 'core' component (security, rpc, naming) and syncbase separately. The
core component is very stable, syncbase is likely stable but not quite
complete. We're currently using only Vanadium core.

To answer some point questions: \- yes, this is the project Jeff Nichol's is
referring to \- and here,
[https://arxiv.org/pdf/1604.06959v2.pdf](https://arxiv.org/pdf/1604.06959v2.pdf)

------
azinman2
I ported vanadium and syncbase to iOS. Happy to answer questions. Yes indeed
this is a google project but is now being taken on by its original lead, and
former head of search infrastructure, now at Grail bio.

~~~
dunkelheit
The project looks interesting but something about it rubs me the wrong way.
Which organization is behind vanadium? Is it google? Then how is grail bio
involved? Or is it a side project of google employees who now work at grail
bio? I'm confused.

Also, why are syncbase sources not on github?

~~~
danielsju6
It's all there. Just look under Go/Java/Swift
[https://github.com/vanadium](https://github.com/vanadium)

~~~
dunkelheit
Thanks, I see it now! The first part of my question is still unanswered
though..

~~~
danielsju6
I'd defer to cosmosnicolaou there, as I've not been involved in some months.
Check out his answer below.

Also might be worth asking on our mailing list
[https://groups.google.com/a/v.io/forum/#!forum/vanadium-
disc...](https://groups.google.com/a/v.io/forum/#!forum/vanadium-discuss)

------
sethammons
Quickly looked over this and the thing that caught my eye is that it says you
can set up distributed systems that are available offline through device to
device communication. At least, I think that is what it does. I could not
quickly find more information on that. A diagram or something would be helpful
to visualize this, with an explanation of the protocols that are used. Maybe I
missed the examples or case study section.

------
Mao_Zedang
I didnt know io sold single letter domains, sexy.

~~~
inopinatus
So does .org, see [http://www.project94.org/](http://www.project94.org/).

~~~
Mao_Zedang
I wonder how much they cost.

~~~
inopinatus
I believe the first round auctions (a couple of years ago) started at $50,000
for single-letter domains. As an additional barrier, it may also be that PIR
require some kind of public-interest usage commitment.

------
curiousmonkey90
It seems like it is no longer under active development. I hope I am wrong, but
does anyone happen to know?

It looks like a lot of the Googlers previously working on the project has now
moved to Grail bio.

~~~
danielsju6
I was on the team working on Vanadium @ Google and have since moved on to
Firebase.

I can't speak to what level of commitment to the project those that have moved
on to Grail have; you should direct questions to
[https://news.ycombinator.com/user?id=cosmosnicolaou](https://news.ycombinator.com/user?id=cosmosnicolaou)
or refer to his comments.

I actually recently gave a presentation / live demo of Vanadium at Drinks on
Tap SF. It's not production ready, but a cool glimpse into a possible new
paradigm ;)

------
marknadal
Wonderful to hear about more P2P database sync systems!

I would love to hear how you compare to Deepstream and us (
[http://gun.js.org/](http://gun.js.org/) ), and
[http://Horizon.io](http://Horizon.io) ?

Edit: Also how on earth did you snag `v.io`? That is amazing and I thought
single-letter domains weren't allowed?

~~~
HodGreeley
I'm assuming Horizon is in limbo along with RethinkDB?

------
makmanalp
Can anyone comment on the disadvantages of last-write-wins? Either that or how
tricky it is to always have to define your own merge policies?

------
rixed
Is this similar to Irmin
([https://github.com/mirage/irmin](https://github.com/mirage/irmin)) ?

------
allan_s
In the documentation I see

    
    
      Note
      Requiring a cloud Syncbase is temporary. We are planning to allow the API to be used without a cloud Syncbase soon.
    

Does it mean that the following use case will be supported:

I have two devices in the same LAN with no internet access, and they will be
able to synchronize ?

~~~
azinman2
Correct.

------
botw
besides wifi, what other type of p2p communication channels are supported in
Vanadium? bluetooth? USB? radio?

~~~
danielsju6
Prototypes also use BLE / Bluetooth Classic but the vision being that it's
transport agnostic.

------
oori
this vs. firebase for sync ?

~~~
azinman2
Firebase doesn't have offline p2p at all, let alone sync.

That said, right now I'd build using firebase unless you have very specific
needs.

