discovery: support large advertisements

  Support large advertisements by
    - discovery service brings up its own directory server so that
      we can fetch large advertisements through vanadium RPC without
      being restricted by the underlying protocol.
    - if the advertisement is too large for each plugin to advertise,
      it will try to send only mandatary fields like interface name,
      hash, and the directory server address.
    - during scanning, if the discovered advertisement does not have
      an enough information to query against it, it will be fetched
      from the directory server directly.
    - attachments are optional. so directory server will not send
      if they are too big. In this case, each large attachment will
      be fetched through additional RPCs when it is requested.

  * plugins will be updated in the following CL.

Change-Id: If9d615ecb54a8cc3da2ccbd3610e67090d2a7340
25 files changed
tree: df85af2ac8c433193da5a871b4e9f97d366cb699
  1. cmd/
  2. examples/
  3. internal/
  4. lib/
  5. runtime/
  6. services/
  7. test/
  8. .gitignore
  9. AUTHORS
  10. CONTRIBUTING.md
  11. CONTRIBUTORS
  12. envvar.go
  13. envvar_test.go
  14. LICENSE
  15. PATENTS
  16. README.md
  17. VERSION
README.md

Vanadium

This repository contains a reference implementation of the Vanadium APIs.

Unlike the APIs in https://github.com/vanadium/go.v23, which promises to provide backward compatibility this repository makes no such promises.