Coder Social home page Coder Social logo

diem / diem Goto Github PK

View Code? Open in Web Editor NEW
16.7K 16.7K 2.6K 121.75 MB

Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.

Home Page: https://diem.com

License: Apache License 2.0

Rust 94.37% Shell 0.52% Dockerfile 0.11% Python 0.10% C++ 0.01% Java 0.02% Go 0.01% Smarty 0.01% Mustache 0.02% C# 0.02% Boogie 0.23% TeX 0.45% Jupyter Notebook 0.01% SMT 1.35% JavaScript 2.23% CSS 0.56% HTML 0.01%
blockchain

diem's Introduction

Note to readers: Silvergate Capital Corporation announced in January 2022 that it acquired intellectual property and other technology assets related to running a blockchain-based payment network from Diem, further investing in its platform and enhancing its existing stablecoin infrastructure.

Diem Logo

Diem Rust Crate Documentation (main) License grcov test history

Diem Core implements a decentralized, programmable distributed ledger which provides a financial infrastructure that can empower billions of people.

Note to Developers

  • Diem Core is a prototype.
  • The APIs are constantly evolving and designed to demonstrate types of functionality. Expect substantial changes before the release.
  • We’ve launched a testnet that is a live demonstration of an early prototype of the Diem Blockchain software.

Quick Links

Learn About Diem

Getting Started - Try Diem Core

Technical Papers

Governance

Blog

License

Diem Core is licensed as Apache 2.0.

diem's People

Contributors

ankushagarwal avatar bmwill avatar bothra90 avatar davidiw avatar dependabot-preview[bot] avatar dependabot[bot] avatar emmazzz avatar gregnazario avatar huitseeker avatar joshlind avatar junkil-park avatar lightmark avatar ma2bd avatar meng-xu-cs avatar metajack avatar mimoo avatar msmouse avatar phlip9 avatar rexhoffman avatar runtian-zhou avatar rustielin avatar sausagee avatar sblackshear avatar shazqadeer avatar sunshowers avatar vgao1996 avatar wrwg avatar xli avatar zekun000 avatar zihaoccc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

diem's Issues

[Bug] failed to spawn "protoc" during installation on Ubuntu 16.04/18.04

OS: Fresh install of Ubuntu 18.04
Steps to reproduce:

  1. Follow instructions from https://developers.libra.org/
  2. On ./scripts/cli/start_cli_testnet.sh, the following occurred:
Building and running client in debug mode.
   Compiling network v0.1.0 (/opt/libra/network)
   Compiling string_cache v0.7.3
error: failed to run custom build command for `network v0.1.0 (/opt/libra/network)`

Caused by:
  process didn't exit successfully: `/opt/libra/target/debug/build/network-3bce66de4ba49a2b/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=src/proto/network.proto
cargo:rerun-if-changed=src/proto/mempool.proto
cargo:rerun-if-changed=src/proto/consensus.proto

--- stderr
thread 'main' panicked at 'protoc: Custom { kind: NotFound, error: StringError("failed to spawn `\"protoc\" \"--version\"`: No such file or directory (os error 2)") }', src/libcore/result.rs:999:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed
libra@dev:/opt/libra# protoc --version

Command 'protoc' not found, but can be installed with:

apt install protobuf-compiler

By default, Ubuntu 16.04 and 18.04 LTS only support protobuf 3.0. The pre-requisite of Libra is 3.6. You'll have to manually install protobuf for now unless you're willing to use Ubuntu 19.04:

https://gist.github.com/ryujaehun/991f5f1e8c1485dea72646877707f497

[Bug] My First Transaction

🐛 Bug

To reproduce

When going through “My First Transaction” using this developer documentation it is failing in Step 3.

** Code snippet to reproduce **

Libra CLI
./scripts/cli/start_cli_testnet.sh

// Paste the output here
190618_libra_testnet_build_error

[Bug] Duplicitous and subversive nature of the project

This project is backed by Visa, Mastercard, and Paypal -- sworn enemies of cryptocurrency, since it competes with their primary business model which is to profit from the digital exchange of money.

Yet, Libra purports to bring all of the benefits of cryptocurrency to the masses. This is ludicrous.

The primary benefit of cryptocurrency is control over your own digital money. You control your wallet, and you control who and when you transfer it to. There is no need for a bank to hold your money and profit from it, and no need for an intermediary to charge you for the privilege of transferring money, or monitor or prevent you from doing so.

Libra aims to take advantage of the goodwill and hype around cryptocurrency, but deliver none of the primary benefits I have just mentioned. They will control and profit from your money, and they will charge you fees for transmitting it to other parties.

But again, this is marketed as a cryptocurrency, supposedly just like other cryptocurrencies. And yet nothing could be further from the truth.

The payment processors recognized that cryptocurrency presented a challenge to their business model, and they came up with a clever way to subvert it.

I urge developers and citizens across the world to support real cryptocurrencies. Do not fall for this scam.

Broken MIR: generator contains type ...

🐛 Bug

When running ./scripts/cli/start_cli_testnet.sh, the script failed:

failed to run custom build command for backtrace-sys v0.1.28

then fixed this with brew doctor related commands

brew doctor 2>&1 | grep "/usr/local/include/" | awk '{$1=$1;print}' | xargs -I _ mv _ /tmp/includes

but now have this:

error: internal compiler error: src/librustc_mir/transform/generator.rs:714: Broken MIR: generator contains type std::option::Option<parity_multiaddr::Multiaddr> in MIR, but typeck only knows about for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {&'r mut connectivity_manager::ConnectivityManager<TTicker, TSubstream>, std::vec::Vec<types::account_address::AccountAddress>, fn(std::vec::IntoIter<types::account_address::AccountAddress>) -> <std::vec::IntoIter<types::account_address::AccountAddress> as std::iter::IntoIterator>::IntoIter {<std::vec::IntoIter<types::account_address::AccountAddress> as std::iter::IntoIterator>::into_iter}, std::vec::IntoIter<types::account_address::AccountAddress>, types::account_address::AccountAddress, impl core::future::future::Future, (), std::vec::Vec<(&'t0 types::account_address::AccountAddress, &'t1 std::vec::Vec<parity_multiaddr::Multiaddr>)>, fn(std::vec::IntoIter<(&'t2 types::account_address::AccountAddress, &'t3 std::vec::Vec<parity_multiaddr::Multiaddr>)>) -> <std::vec::IntoIter<(&'t2 types::account_address::AccountAddress, &'t3 std::vec::Vec<parity_multiaddr::Multiaddr>)> as std::iter::IntoIterator>::IntoIter {<std::vec::IntoIter<(&'t2 types::account_address::AccountAddress, &'t3 std::vec::Vec<parity_multiaddr::Multiaddr>)> as std::iter::IntoIterator>::into_iter}, std::vec::IntoIter<(&'t4 types::account_address::AccountAddress, &'t5 std::vec::Vec<parity_multiaddr::Multiaddr>)>, std::vec::IntoIter<(&'t6 types::account_address::AccountAddress, &'t7 std::vec::Vec<parity_multiaddr::Multiaddr>)>, std::vec::IntoIter<(&'t8 types::account_address::AccountAddress, &'t9 std::vec::Vec<parity_multiaddr::Multiaddr>)>, (&'t10 types::account_address::AccountAddress, &'t11 std::vec::Vec<parity_multiaddr::Multiaddr>), &'t12 types::account_address::AccountAddress, &'t13 std::vec::Vec<parity_multiaddr::Multiaddr>, impl core::future::future::Future}
   --> network/src/connectivity_manager/mod.rs:119:44
    |
119 |       async fn check_connectivity(&mut self) {
    |  ____________________________________________^
120 | |         // Ensure we are only connected to eligible peers.
121 | |         let stale_connections: Vec<_> = self
122 | |             .connected
...   |
180 | |         }
181 | |     }
    | |_____^

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:578:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
error: aborting due to previous error


note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.37.0-nightly (b25ee6449 2019-06-17) running on x86_64-apple-darwin

note: compiler flags: -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

error: Could not compile `network`.
warning: build failed, waiting for other jobs to finish...
error: build failed

To reproduce

  1. git clone https://github.com/libra/libra.git && cd libra
  2. ./scripts/dev_setup.sh
  3. ./scripts/cli/start_cli_testnet.sh

Expected Behavior

CLI Client Build

System information

latest version cloned from GitHub
rustc 1.37.0-nightly (b25ee6449 2019-06-17)
MacOs Mojave 10.14.5

[Suggestion] ./scripts/dev_setup.sh, fresh Ubuntu 18.04: doesn't include apt update, fails if not run

Suggestion

When running ./scripts/dev_setup.sh on a fresh Ubuntu 18.04 VM where apt update or apt-get update hasn't recently been run, the script fails with:

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

When I run sudo apt update manually, then run ./scripts/dev_setup.sh this error doesn't occur.

While it isn't strictly the responsibility of the dev_setup.sh script to ensure package info is up to date, the goal is to provide a one-command install, so it would help if it does. I suggest adding a sudo apt update after apt-get has been detected as the package manager.

To reproduce

  • Establish an Ubuntu / Debian system where the package data is out of date. For example, create a new VM with Vagrant, image ubuntu/bionic64
  • Run ./scripts/dev_setup.sh

** Stack trace/error message **

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/b/binutils/binutils-common_2.30-21ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/b/binutils/libbinutils_2.30-21ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/b/binutils/binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/b/binutils/binutils_2.30-21ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/liba/libarchive/libarchive13_3.2.2-3.1ubuntu0.1_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/gcc-7-base_7.3.0-27ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/cpp-7_7.3.0-27ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/cpp_7.3.0-3ubuntu2.1_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libcc1-0_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libgomp1_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libitm1_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libatomic1_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libasan4_7.3.0-27ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/liblsan0_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libtsan0_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libubsan0_7.3.0-27ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libcilkrts5_7.3.0-27ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libmpx2_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libquadmath0_8.2.0-1ubuntu2~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libgcc-7-dev_7.3.0-27ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/gcc-7_7.3.0-27ubuntu1~18.04_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/gcc_7.3.0-3ubuntu2.1_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-libc-dev_4.15.0-42.45_amd64.deb  404  Not Found [IP: 91.189.91.23 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Expected Behavior

Script completes without fault

System information

Libra version: current cloned from github
OS version: Ubuntu 18.04 in Vagrant, box ubuntu/bionic64

[Feature Request] If the user should be in control of their money, then you need to have virtual banks that any user can create

🚀 Feature Request

The right to move is a fundamental right for anyone who wants control over their own life, their own money, etc. The right to move simply means that, while the person is allowed to place their trust on whatever or whoever they want, as long as they allow it, that person is also guaranteed the freedom to take that trust elsewhere to any other party that allows it.

As such, anyone should be able to spawn up a virtual subcurrency/"bank", which can provide warranties not provided by the wider blockchain-based network. Such a subcurrency/"bank" may automatically attach fees to all your transactions, block third-parties, have their own currency which they freely control (including the ability to mint those subcurrencies). This means they have full control over your money if you trust them with your money.

Humans are social beings, and trust is an important part of human social interactions. To satisfy their needs, humans need to be able to trust eachother. This is where all other cryptocurrencies fail, and where you can do differently.

(Besides, whether you embed them into the blockchain or not, we're gonna have those bank-like things anyway. By embedding them into the blockchain you just solve some known issues like scalability and availability, and help prevent mess-ups.)

Motivation

Is your feature request related to a problem? Please describe.

Pitch

Describe the solution you'd like

Describe alternatives you've considered

Are you willing to open a pull request? (See CONTRIBUTING)

Additional context

[Bug] Account mint error

🐛 Bug

I was going through this.

In the minting process, I tried:

account mint 0 999999. [After creating an account]

Error message

[ERROR] Error minting coins: Failed to query remote faucet server[status=400 Bad Request]: "Exceeded max mint amount of 1000000000000"

Expected Behavior

Expected a successful mint as my request is less than the limit.

However, when I tried account mint 0 9, it worked fine.

System information

  • Libra Version: No idea, how do I find out Libra Version?
  • Rust Version: 1.35.0
  • OS: Ubuntu 19.04

[Bug] error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable

🐛 Bug

Cannot compile as per the example on this page

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable

To report a security issue, please email [email protected]. -->

To reproduce

Follow instructions from this page

git clone https://github.com/libra/libra.git && cd libra
./scripts/dev_setup.sh
./scripts/cli/start_cli_testnet.sh

** Stack trace/error message **

~/src/libra (master) $ ./scripts/dev_setup.sh
Welcome to Libra!

This script will download and install the necessary dependencies needed to
build Libra Core. This includes:
	* Rust (and the necessary components, e.g. rust-fmt, clippy)
	* CMake, protobuf, go (for building protobuf)

If you'd prefer to install these dependencies yourself, please exit this script
now with Ctrl-C.

Proceed with installing necessary dependencies? (y) >
Exiting...
~/src/libra (master) $ ./scripts/cli/start_cli_testnet.sh
./scripts/cli/start_cli_testnet.sh: line 10: /Users/sean/.cargo/env: No such file or directory
Building and running client in debug mode.
    Updating crates.io index
    Updating git repository `https://github.com/pingcap/rust-rocksdb.git`
    Updating git repository `https://github.com/alexcrichton/bzip2-rs.git`
    Updating git repository `https://github.com/busyjay/lz4-rs.git`
    Updating git repository `https://github.com/busyjay/rust-snappy.git`
    Updating git repository `https://github.com/gyscos/zstd-rs.git`
  Downloaded serde v1.0.92
  Downloaded rand v0.6.5
  Downloaded chrono v0.4.6
  Downloaded futures v0.1.27
  Downloaded bincode v1.1.4
  Downloaded protobuf v2.6.2
  Downloaded tokio v0.1.21
  Downloaded structopt v0.2.16
  Downloaded proptest v0.9.4
  Downloaded num-traits v0.2.8
  Downloaded grpcio v0.4.4
  Downloaded hex v0.3.2
  Downloaded rustyline v4.1.0
  Downloaded rust_decimal v1.0.1
  Downloaded libc v0.2.58
  Downloaded hyper v0.12.30
  Downloaded itertools v0.8.0
  Downloaded backtrace v0.3.30
  Downloaded slog-envlogger v2.1.0
  Downloaded crossbeam v0.4.1
  Downloaded serde_json v1.0.39
  Downloaded slog-term v2.4.0
  Downloaded thread-id v3.3.0
  Downloaded slog-async v2.3.0
  Downloaded lazy_static v1.3.0
  Downloaded slog-scope v4.1.1
  Downloaded mime v0.3.13
  Downloaded slog v2.4.1
  Downloaded failure v0.1.5
  Downloaded rand_chacha v0.1.1
  Downloaded rust-crypto v0.2.36
  Downloaded byteorder v1.3.2
  Downloaded tiny-keccak v1.4.3
  Downloaded serde_derive v1.0.92
  Downloaded simple_logger v0.5.0
  Downloaded log v0.4.6
  Downloaded sha3 v0.8.2
  Downloaded rand_core v0.4.0
  Downloaded ed25519-dalek v1.0.0-pre.1
  Downloaded derive_deref v1.1.0
  Downloaded proptest-derive v0.1.2
  Downloaded hmac v0.7.0
  Downloaded curve25519-dalek v1.2.1
  Downloaded bytes v0.4.12
  Downloaded threshold_crypto v0.3.1
  Downloaded digest v0.8.0
  Downloaded sha2 v0.8.0
  Downloaded x25519-dalek v0.5.2
  Downloaded pairing v0.14.2
  Downloaded syn v0.15.36
  Downloaded proc-macro2 v0.4.30
  Downloaded protoc-grpcio v0.3.1
  Downloaded quote v0.6.12
  Downloaded walkdir v2.2.8
  Downloaded protobuf-codegen v2.6.2
  Downloaded protoc v2.6.2
  Downloaded protoc-grpcio v1.0.2
  Downloaded mktemp v0.3.1
  Downloaded regex v1.1.7
  Downloaded bech32 v0.6.0
  Downloaded radix_trie v0.1.4
  Downloaded futures-preview v0.3.0-alpha.16
  Downloaded ttl_cache v0.4.2
  Downloaded lru-cache v0.1.2
  Downloaded get_if_addrs v0.5.3
  Downloaded clap v2.33.0
  Downloaded parity-multiaddr v0.4.1
  Downloaded toml v0.4.10
  Downloaded prometheus v0.4.2
  Downloaded rental v0.5.4
  Downloaded mirai-annotations v0.0.1
  Downloaded grpcio-sys v0.4.4
  Downloaded tokio-timer v0.2.11
  Downloaded typed-arena v1.4.1
  Downloaded yamux v0.2.1
  Downloaded tempfile v3.0.8
  Downloaded unsigned-varint v0.2.2
  Downloaded pin-utils v0.1.0-alpha.4
  Downloaded chashmap v2.2.2
  Downloaded bitcoin_hashes v0.3.2
  Downloaded petgraph v0.4.13
  Downloaded snow v0.5.2
  Downloaded protoc-rust v2.6.2
  Downloaded codespan v0.1.3
  Downloaded codespan-reporting v0.1.4
  Downloaded lalrpop-util v0.16.3
  Downloaded lalrpop v0.16.3
  Downloaded cfg-if v0.1.9
  Downloaded backtrace-sys v0.1.28
  Downloaded rustc-demangle v0.1.15
  Downloaded unicode-xid v0.1.0
  Downloaded autocfg v0.1.4
  Downloaded regex v0.1.80
  Downloaded log v0.3.9
  Downloaded slog-stdlog v3.0.2
  Downloaded isatty v0.1.9
  Downloaded term v0.5.2
  Downloaded thread_local v0.3.6
  Downloaded num-integer v0.1.41
  Downloaded crossbeam v0.6.0
  Downloaded time v0.1.42
  Downloaded take_mut v0.2.2
  Downloaded crossbeam-deque v0.5.2
  Downloaded crossbeam-epoch v0.5.2
  Downloaded crossbeam-channel v0.2.6
  Downloaded crossbeam-utils v0.5.0
  Downloaded itoa v0.4.4
  Downloaded either v1.5.2
  Downloaded ryu v0.2.8
  Downloaded tokio-reactor v0.1.9
  Downloaded tokio-threadpool v0.1.14
  Downloaded tokio-current-thread v0.1.6
  Downloaded mio v0.6.19
  Downloaded tokio-tcp v0.1.3
  Downloaded tokio-codec v0.1.1
  Downloaded tokio-fs v0.1.6
  Downloaded tokio-udp v0.1.3
  Downloaded num_cpus v1.10.1
  Downloaded tokio-executor v0.1.7
  Downloaded tokio-io v0.1.12
  Downloaded tokio-uds v0.2.5
  Downloaded tokio-trace-core v0.2.0
  Downloaded tokio-sync v0.1.6
  Downloaded slab v0.4.2
  Downloaded iovec v0.1.2
  Downloaded rand_jitter v0.1.4
  Downloaded crossbeam-utils v0.6.5
  Downloaded rand_xorshift v0.1.1
  Downloaded rand_hc v0.1.0
  Downloaded rand_pcg v0.1.2
  Downloaded rand_os v0.1.3
  Downloaded rand_isaac v0.1.1
  Downloaded rand_core v0.3.1
  Downloaded failure_derive v0.1.5
  Downloaded http v0.1.17
  Downloaded h2 v0.1.24
  Downloaded net2 v0.2.33
  Downloaded futures-cpupool v0.1.8
  Downloaded http-body v0.1.0
  Downloaded tokio-buf v0.1.1
  Downloaded want v0.0.6
  Downloaded unicase v2.4.0
  Downloaded regex-syntax v0.6.7
  Downloaded bitflags v1.1.0
  Downloaded quick-error v1.2.2
  Downloaded bit-set v0.5.1
  Downloaded rusty-fork v0.2.2
  Downloaded clear_on_drop v0.2.3
  Downloaded opaque-debug v0.2.2
  Downloaded block-buffer v0.7.3
  Downloaded httparse v1.3.3
  Downloaded fake-simd v0.1.2
  Downloaded generic-array v0.12.0
  Downloaded subtle v2.1.0
  Downloaded crypto-mac v0.7.0
  Downloaded crunchy v0.1.6
  Downloaded byte-tools v0.3.1
  Downloaded remove_dir_all v0.5.2
  Downloaded keccak v0.1.0
  Downloaded hex_fmt v0.3.0
  Downloaded errno v0.2.4
  Downloaded memsec v0.5.6
  Downloaded rand04_compat v0.1.1
  Downloaded rand v0.4.6
  Downloaded grpcio-compiler v0.4.3
  Downloaded same-file v1.0.4
  Downloaded memchr v2.2.0
  Downloaded grpcio-compiler v0.5.0-alpha
  Downloaded aho-corasick v0.7.3
  Downloaded uuid v0.1.18
  Downloaded rand v0.3.23
  Downloaded rustc-serialize v0.3.24
  Downloaded endian-type v0.1.2
  Downloaded nibble_vec v0.0.4
  Downloaded futures-core-preview v0.3.0-alpha.16
  Downloaded linked-hash-map v0.5.2
  Downloaded utf8-ranges v1.0.3
  Downloaded futures-executor-preview v0.3.0-alpha.16
  Downloaded futures-io-preview v0.3.0-alpha.16
  Downloaded futures-sink-preview v0.3.0-alpha.16
  Downloaded futures-util-preview v0.3.0-alpha.16
  Downloaded gcc v0.3.55
  Downloaded futures-channel-preview v0.3.0-alpha.16
  Downloaded cmake v0.1.40
  Downloaded pkg-config v0.3.14
  Downloaded cc v1.0.37
  Downloaded c_linked_list v1.1.1
  Downloaded bs58 v0.2.2
  Downloaded parity-multihash v0.1.2
  Downloaded url v1.7.2
  Downloaded data-encoding v2.1.2
  Downloaded arrayref v0.3.5
  Downloaded unicode-width v0.1.5
  Downloaded vec_map v0.8.1
  Downloaded strsim v0.8.0
  Downloaded ansi_term v0.11.0
  Downloaded atty v0.2.11
  Downloaded textwrap v0.11.0
  Downloaded ordermap v0.3.5
  Downloaded fixedbitset v0.1.9
  Downloaded fnv v1.0.6
  Downloaded hyper v0.9.18
  Downloaded quick-error v0.2.2
  Downloaded spin v0.4.10
  Downloaded owning_ref v0.3.3
  Downloaded parking_lot v0.4.8
  Downloaded stable_deref_trait v1.1.1
  Downloaded rental-impl v0.5.4
  Downloaded quick-error v0.1.4
  Downloaded nohash-hasher v0.1.1
  Downloaded parking_lot v0.6.4
  Downloaded smallvec v0.6.10
  Downloaded blake2-rfc v0.2.18
  Downloaded chacha20-poly1305-aead v0.1.2
  Downloaded static_slice v0.0.3
  Downloaded utf8parse v0.1.1
  Downloaded unicode-segmentation v1.3.0
  Downloaded structopt-derive v0.2.16
  Downloaded rustc_version v0.2.3
  Downloaded ring v0.14.6
  Downloaded dirs v1.0.5
  Downloaded num v0.2.0
  Downloaded nix v0.13.1
  Downloaded crossbeam-deque v0.6.3
  Downloaded parking_lot v0.7.1
  Downloaded crossbeam-channel v0.3.8
  Downloaded crossbeam-epoch v0.7.1
  Downloaded aho-corasick v0.5.3
  Downloaded memchr v0.1.11
  Downloaded thread_local v0.2.7
  Downloaded utf8-ranges v0.1.3
  Downloaded regex-syntax v0.3.9
  Downloaded crossbeam v0.2.12
  Downloaded crossbeam-epoch v0.6.1
  Downloaded rand v0.5.6
  Downloaded lock_api v0.1.5
  Downloaded parking_lot_core v0.3.1
  Downloaded arrayvec v0.4.10
  Downloaded scopeguard v0.3.3
  Downloaded memoffset v0.2.1
  Downloaded crossbeam-queue v0.1.2
  Downloaded mio-uds v0.6.7
  Downloaded crossbeam-deque v0.7.1
  Downloaded synstructure v0.10.2
  Downloaded string v0.2.0
  Downloaded indexmap v1.0.2
  Downloaded try-lock v0.2.2
  Downloaded version_check v0.1.5
  Downloaded bit-vec v0.5.1
  Downloaded ucd-util v0.1.3
  Downloaded typenum v1.10.0
  Downloaded wait-timeout v0.2.0
  Downloaded block-padding v0.1.4
  Downloaded subtle v1.0.0
  Downloaded getrandom v0.1.3
  Downloaded mach_o_sys v0.1.1
  Downloaded rand04 v0.1.1
  Downloaded prost-types v0.5.0
  Downloaded prost v0.5.0
  Downloaded proc-macro-hack v0.5.7
  Downloaded derive-new v0.5.6
  Downloaded proc-macro-nested v0.1.3
  Downloaded futures-select-macro-preview v0.3.0-alpha.16
  Downloaded sha-1 v0.8.1
  Downloaded blake2 v0.8.0
  Downloaded matches v0.1.8
  Downloaded percent-encoding v1.0.1
  Downloaded prost-build v0.5.0
  Downloaded solicit v0.4.4
  Downloaded idna v0.1.5
  Downloaded traitobject v0.0.1
  Downloaded language-tags v0.2.2
  Downloaded typeable v0.1.2
  Downloaded mime v0.2.6
  Downloaded cookie v0.2.5
  Downloaded parking_lot_core v0.2.14
  Downloaded constant_time_eq v0.1.3
  Downloaded semver v0.9.0
  Downloaded heck v0.3.1
  Downloaded itertools v0.7.11
  Downloaded termcolor v0.3.6
  Downloaded ena v0.11.0
  Downloaded unicase v1.4.2
  Downloaded string_cache v0.7.3
  Downloaded ascii-canvas v1.0.0
  Downloaded term v0.4.6
  Downloaded diff v0.1.11
  Downloaded docopt v1.1.0
  Downloaded parking_lot_core v0.4.0
  Downloaded owning_ref v0.4.0
  Downloaded nodrop v0.1.13
  Downloaded thread-id v2.0.0
  Downloaded semver-parser v0.7.0
  Downloaded multimap v0.4.0
  Downloaded prost-derive v0.5.0
  Downloaded which v2.0.1
  Downloaded unicode-bidi v0.3.4
  Downloaded hpack v0.2.0
  Downloaded unicode-normalization v0.1.8
  Downloaded spin v0.5.0
  Downloaded untrusted v0.6.2
  Downloaded void v1.0.2
  Downloaded num-rational v0.2.2
  Downloaded num-iter v0.1.39
  Downloaded num-bigint v0.2.2
  Downloaded precomputed-hash v0.1.1
  Downloaded num-complex v0.2.3
  Downloaded new_debug_unreachable v1.0.3
  Downloaded string_cache_shared v0.3.0
  Downloaded string_cache_codegen v0.4.2
  Downloaded kernel32-sys v0.2.2
  Downloaded strsim v0.9.2
  Downloaded winapi v0.2.8
  Downloaded winapi-build v0.1.1
  Downloaded phf_shared v0.7.24
  Downloaded phf_generator v0.7.24
  Downloaded siphasher v0.2.3
   Compiling proc-macro2 v0.4.30
   Compiling unicode-xid v0.1.0
   Compiling syn v0.15.36
   Compiling cc v1.0.37
   Compiling libc v0.2.58
   Compiling serde v1.0.92
   Compiling autocfg v0.1.4
   Compiling failure_derive v0.1.5
   Compiling cfg-if v0.1.9
   Compiling byteorder v1.3.2
   Compiling rustc-demangle v0.1.15
   Compiling rand_core v0.4.0
   Compiling either v1.5.2
   Compiling protobuf v2.6.2
   Compiling fixedbitset v0.1.9
   Compiling remove_dir_all v0.5.2
   Compiling unicode-segmentation v1.3.0
   Compiling ordermap v0.3.5
   Compiling memchr v2.2.0
   Compiling typenum v1.10.0
   Compiling semver-parser v0.7.0
   Compiling multimap v0.4.0
   Compiling lazy_static v1.3.0
   Compiling rustc-serialize v0.3.24
   Compiling ucd-util v0.1.3
   Compiling regex v1.1.7
   Compiling arrayvec v0.4.10
   Compiling utf8-ranges v1.0.3
   Compiling nodrop v0.1.13
   Compiling winapi-build v0.1.1
   Compiling same-file v1.0.4
   Compiling stable_deref_trait v1.1.1
   Compiling scopeguard v0.3.3
   Compiling subtle v2.1.0
   Compiling siphasher v0.2.3
   Compiling smallvec v0.6.10
   Compiling memoffset v0.2.1
   Compiling byte-tools v0.3.1
   Compiling crunchy v0.1.6
   Compiling slab v0.4.2
   Compiling bitflags v1.1.0
   Compiling winapi v0.2.8
   Compiling fnv v1.0.6
   Compiling matches v0.1.8
   Compiling futures-core-preview v0.3.0-alpha.16
error[E0432]: unresolved import `core::task::Context`
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:5:18
  |
5 | use core::task::{Context, Poll};
  |                  ^^^^^^^ no `Context` in `task`

error[E0432]: unresolved import `core::task::Context`
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:7:12
  |
7 |     task::{Context, Poll},
  |            ^^^^^^^ no `Context` in `task`

error[E0432]: unresolved import `core::task::Context`
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:5:18
  |
5 | use core::task::{Context, Poll};
  |                  ^^^^^^^ no `Context` in `task`

error[E0432]: unresolved imports `core::task::Context`, `core::task::RawWaker`, `core::task::RawWakerVTable`
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/mod.rs:8:22
  |
8 | pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable};
  |                      ^^^^^^^               ^^^^^^^^  ^^^^^^^^^^^^^^ no `RawWakerVTable` in `task`
  |                      |                     |
  |                      |                     no `RawWaker` in `task`
  |                      no `Context` in `task`

   Compiling proc-macro-nested v0.1.3
error[E0658]: use of unstable library feature 'alloc': this library is unlikely to be stabilized in its current form or name (see issue #27783)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/lib.rs:16:1
   |
16 | extern crate alloc;
   | ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/lib.rs:19:39
   |
19 | #[doc(hidden)] pub use self::future::{Future, FusedFuture, TryFuture};
   |                                       ^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/lib.rs:25:24
   |
25 | #[doc(hidden)] pub use self::task::Poll;
   |                        ^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:5:27
  |
5 | use core::task::{Context, Poll};
  |                           ^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:7:9
  |
7 | pub use core::future::Future;
  |         ^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:15:55
   |
15 | pub type BoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + Send + 'a>>;
   |                                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:19:60
   |
19 | pub type LocalBoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + 'a>>;
   |                                                            ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:71:23
   |
71 |     where F: ?Sized + Future<Output = Result<T, E>>
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:67:10
   |
67 |     ) -> Poll<Result<Self::Ok, Self::Error>>;
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:77:64
   |
77 |     fn try_poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<F::Output> {
   |                                                                ^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:4:5
  |
4 |     future::Future,
  |     ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:7:21
  |
7 |     task::{Context, Poll},
  |                     ^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:17:23
   |
17 |     future: *mut (dyn Future<Output = T> + 'static),
   |                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:18:34
   |
18 |     drop_fn: unsafe fn(*mut (dyn Future<Output = T> + 'static)),
   |                                  ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:25:56
   |
25 | unsafe fn remove_future_lifetime<'a, T>(ptr: *mut (dyn Future<Output = T> + 'a))
   |                                                        ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:26:18
   |
26 |     -> *mut (dyn Future<Output = T> + 'static)
   |                  ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:31:65
   |
31 | unsafe fn remove_drop_lifetime<'a, T>(ptr: unsafe fn (*mut (dyn Future<Output = T> + 'a)))
   |                                                                 ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:32:28
   |
32 |     -> unsafe fn(*mut (dyn Future<Output = T> + 'static))
   |                            ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:73:5
   |
73 |     type Output = T;
   |     ^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:76:5
   |
76 | /     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<T> {
77 | |         unsafe {
78 | |             Pin::new_unchecked(&mut *self.future).poll(cx)
79 | |         }
80 | |     }
   | |_____^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:72:9
   |
72 | impl<T> Future for LocalFutureObj<'_, T> {
   |         ^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:122:5
    |
122 |     type Output = T;
    |     ^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:125:5
    |
125 | /     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<T> {
126 | |         let pinned_field: Pin<&mut LocalFutureObj<'_, T>> = unsafe {
127 | |             Pin::map_unchecked_mut(self, |x| &mut x.0)
128 | |         };
129 | |         LocalFutureObj::poll(pinned_field, cx)
130 | |     }
    | |_____^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:121:9
    |
121 | impl<T> Future for FutureObj<'_, T> {
    |         ^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:179:8
    |
179 |     F: Future<Output = T> + Unpin + 'a
    |        ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:188:60
    |
188 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for &'a mut (dyn Future<Output = T> + Unpin + 'a)
    |                                                            ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:199:8
    |
199 |     F: Future<Output = T> + 'a
    |        ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:208:64
    |
208 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for Pin<&'a mut (dyn Future<Output = T> + 'a)>
    |                                                                ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:154:36
    |
154 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a);
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:174:35
    |
174 |     unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a));
    |                                   ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:76:64
   |
76 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<T> {
   |                                                                ^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:125:60
    |
125 |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<T> {
    |                                                            ^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:181:36
    |
181 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:182:26
    |
182 |         self as *mut dyn Future<Output = T>
    |                          ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:185:36
    |
185 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:190:36
    |
190 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:191:26
    |
191 |         self as *mut dyn Future<Output = T>
    |                          ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:194:36
    |
194 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:201:36
    |
201 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:202:55
    |
202 |         unsafe { self.get_unchecked_mut() as *mut dyn Future<Output = T> }
    |                                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:205:36
    |
205 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:210:36
    |
210 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:211:55
    |
211 |         unsafe { self.get_unchecked_mut() as *mut dyn Future<Output = T> }
    |                                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:214:36
    |
214 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                    ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:223:18
    |
223 |         where F: Future<Output = T> + 'a
    |                  ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:234:63
    |
234 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Box<dyn Future<Output = T> + 'a> {
    |                                                               ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:244:63
    |
244 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Box<dyn Future<Output = T> + Send + 'a> {
    |                                                               ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:256:12
    |
256 |         F: Future<Output = T> + 'a
    |            ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:269:67
    |
269 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + 'a>> {
    |                                                                   ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:281:67
    |
281 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + Send + 'a>> {
    |                                                                   ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:293:17
    |
293 |     impl<'a, F: Future<Output = ()> + Send + 'a> From<Box<F>> for FutureObj<'a, ()> {
    |                 ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:299:27
    |
299 |     impl<'a> From<Box<dyn Future<Output = ()> + Send + 'a>> for FutureObj<'a, ()> {
    |                           ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:305:17
    |
305 |     impl<'a, F: Future<Output = ()> + Send + 'a> From<Pin<Box<F>>> for FutureObj<'a, ()> {
    |                 ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:311:31
    |
311 |     impl<'a> From<Pin<Box<dyn Future<Output = ()> + Send + 'a>>> for FutureObj<'a, ()> {
    |                               ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:317:17
    |
317 |     impl<'a, F: Future<Output = ()> + 'a> From<Box<F>> for LocalFutureObj<'a, ()> {
    |                 ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:323:27
    |
323 |     impl<'a> From<Box<dyn Future<Output = ()> + 'a>> for LocalFutureObj<'a, ()> {
    |                           ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:329:17
    |
329 |     impl<'a, F: Future<Output = ()> + 'a> From<Pin<Box<F>>> for LocalFutureObj<'a, ()> {
    |                 ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:335:31
    |
335 |     impl<'a> From<Pin<Box<dyn Future<Output = ()> + 'a>>> for LocalFutureObj<'a, ()> {
    |                               ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:225:40
    |
225 |         fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                        ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:229:39
    |
229 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:235:40
    |
235 |         fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                        ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:239:39
    |
239 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:245:40
    |
245 |         fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                        ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:249:39
    |
249 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:258:44
    |
258 |         fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                            ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:264:39
    |
264 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:270:44
    |
270 |         fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                            ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:276:39
    |
276 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:282:44
    |
282 |         fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                            ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:288:39
    |
288 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                       ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:300:32
    |
300 |         fn from(boxed: Box<dyn Future<Output = ()> + Send + 'a>) -> Self {
    |                                ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:312:36
    |
312 |         fn from(boxed: Pin<Box<dyn Future<Output = ()> + Send + 'a>>) -> Self {
    |                                    ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:324:32
    |
324 |         fn from(boxed: Box<dyn Future<Output = ()> + 'a>) -> Self {
    |                                ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:336:36
    |
336 |         fn from(boxed: Pin<Box<dyn Future<Output = ()> + 'a>>) -> Self {
    |                                    ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:5:27
  |
5 | use core::task::{Context, Poll};
  |                           ^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:57:10
   |
57 |     ) -> Poll<Option<Self::Item>>;
   |          ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:130:12
    |
130 |         -> Poll<Option<Result<Self::Ok, Self::Error>>>;
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:66:10
   |
66 |     ) -> Poll<Option<Self::Item>> {
   |          ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:81:10
   |
81 |     ) -> Poll<Option<Self::Item>> {
   |          ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:140:12
    |
140 |         -> Poll<Option<Result<Self::Ok, Self::Error>>>
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:157:14
    |
157 |         ) -> Poll<Option<Self::Item>> {
    |              ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:169:14
    |
169 |         ) -> Poll<Option<S::Item>> {
    |              ^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:180:14
    |
180 |         ) -> Poll<Option<Self::Item>> {
    |              ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:181:13
    |
181 |             Poll::Ready(self.pop_front())
    |             ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/mod.rs:8:31
  |
8 | pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable};
  |                               ^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/mod.rs:8:37
  |
8 | pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable};
  |                                     ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
 --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:5:5
  |
5 | use crate::task::Waker;
  |     ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:29:30
   |
29 |     waker: UnsafeCell<Option<Waker>>,
   |                              ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:141:29
    |
141 |         impl AssertSync for Waker {}
    |                             ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:199:36
    |
199 |     pub fn register(&self, waker: &Waker) {
    |                                    ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:277:34
    |
277 |     pub fn take(&self) -> Option<Waker> {
    |                                  ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:15:62
   |
15 | pub type BoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + Send + 'a>>;
   |                                                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:19:67
   |
19 | pub type LocalBoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + 'a>>;
   |                                                                   ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:71:30
   |
71 |     where F: ?Sized + Future<Output = Result<T, E>>
   |                              ^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:77:69
   |
77 |     fn try_poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<F::Output> {
   |                                                                     ^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:17:30
   |
17 |     future: *mut (dyn Future<Output = T> + 'static),
   |                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:18:41
   |
18 |     drop_fn: unsafe fn(*mut (dyn Future<Output = T> + 'static)),
   |                                         ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:26:25
   |
26 |     -> *mut (dyn Future<Output = T> + 'static)
   |                         ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:25:63
   |
25 | unsafe fn remove_future_lifetime<'a, T>(ptr: *mut (dyn Future<Output = T> + 'a))
   |                                                               ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:32:35
   |
32 |     -> unsafe fn(*mut (dyn Future<Output = T> + 'static))
   |                                   ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
  --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:31:72
   |
31 | unsafe fn remove_drop_lifetime<'a, T>(ptr: unsafe fn (*mut (dyn Future<Output = T> + 'a)))
   |                                                                        ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:179:15
    |
179 |     F: Future<Output = T> + Unpin + 'a
    |               ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:188:67
    |
188 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for &'a mut (dyn Future<Output = T> + Unpin + 'a)
    |                                                                   ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:199:15
    |
199 |     F: Future<Output = T> + 'a
    |               ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:208:71
    |
208 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for Pin<&'a mut (dyn Future<Output = T> + 'a)>
    |                                                                       ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:154:43
    |
154 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a);
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:174:42
    |
174 |     unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a));
    |                                          ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:181:43
    |
181 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:185:43
    |
185 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:190:43
    |
190 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:194:43
    |
194 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:201:43
    |
201 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:205:43
    |
205 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:210:43
    |
210 |     fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:214:43
    |
214 |     unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
    |                                           ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:223:25
    |
223 |         where F: Future<Output = T> + 'a
    |                         ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:234:70
    |
234 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Box<dyn Future<Output = T> + 'a> {
    |                                                                      ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:244:70
    |
244 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Box<dyn Future<Output = T> + Send + 'a> {
    |                                                                      ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:256:19
    |
256 |         F: Future<Output = T> + 'a
    |                   ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:269:74
    |
269 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + 'a>> {
    |                                                                          ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:281:74
    |
281 |     unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + Send + 'a>> {
    |                                                                          ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:293:24
    |
293 |     impl<'a, F: Future<Output = ()> + Send + 'a> From<Box<F>> for FutureObj<'a, ()> {
    |                        ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:299:34
    |
299 |     impl<'a> From<Box<dyn Future<Output = ()> + Send + 'a>> for FutureObj<'a, ()> {
    |                                  ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:305:24
    |
305 |     impl<'a, F: Future<Output = ()> + Send + 'a> From<Pin<Box<F>>> for FutureObj<'a, ()> {
    |                        ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:311:38
    |
311 |     impl<'a> From<Pin<Box<dyn Future<Output = ()> + Send + 'a>>> for FutureObj<'a, ()> {
    |                                      ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:317:24
    |
317 |     impl<'a, F: Future<Output = ()> + 'a> From<Box<F>> for LocalFutureObj<'a, ()> {
    |                        ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:323:34
    |
323 |     impl<'a> From<Box<dyn Future<Output = ()> + 'a>> for LocalFutureObj<'a, ()> {
    |                                  ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:329:24
    |
329 |     impl<'a, F: Future<Output = ()> + 'a> From<Pin<Box<F>>> for LocalFutureObj<'a, ()> {
    |                        ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:335:38
    |
335 |     impl<'a> From<Pin<Box<dyn Future<Output = ()> + 'a>>> for LocalFutureObj<'a, ()> {
    |                                      ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:225:47
    |
225 |         fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                               ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:229:46
    |
229 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:235:47
    |
235 |         fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                               ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:239:46
    |
239 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:245:47
    |
245 |         fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                               ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:249:46
    |
249 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:258:51
    |
258 |         fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                                   ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:264:46
    |
264 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:270:51
    |
270 |         fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                                   ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:276:46
    |
276 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:282:51
    |
282 |         fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
    |                                                   ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:288:46
    |
288 |         unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
    |                                              ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:300:39
    |
300 |         fn from(boxed: Box<dyn Future<Output = ()> + Send + 'a>) -> Self {
    |                                       ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:312:43
    |
312 |         fn from(boxed: Pin<Box<dyn Future<Output = ()> + Send + 'a>>) -> Self {
    |                                           ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:324:39
    |
324 |         fn from(boxed: Box<dyn Future<Output = ()> + 'a>) -> Self {
    |                                       ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
   --> /Users/sean/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:336:43
    |
336 |         fn from(boxed: Pin<Box<dyn Future<Output = ()> + 'a>>) -> Self {
    |                                           ^^^^^^^^^^^

error: aborting due to 149 previous errors

Some errors occurred: E0432, E0658.
For more information about an error, try `rustc --explain E0432`.
error: Could not compile `futures-core-preview`.
warning: build failed, waiting for other jobs to finish...
error: build failed

Expected Behavior

System information

Please complete the following information:

  • rustc 1.33.0
  • OS X 10.14.5

Additional context

Add any other context about the problem here.

[Bug] Recovering Wallet queries validator for no reason raising 429 errors

🐛 Bug

I created a mnemonic key file:

silver silver silver silver silver silver silver silver silver silver silver silver;500

and then using the Libra CLI ran a r 0

After a few seconds I started to get a lot of 429 error messages:

E0619 00:48:08.655316 140305093594048 client/src/client_proxy.rs:640] Failed to get account state from validator, error: RpcFailure(RpcStatus { status: Cancelled, details: Some("Received http2 header with status: 429") })

Presumably, this is due to too many queries to the validator.

Why is regenerating the key/address pairs making repeated queries to the validator? If queries to the validator are necessary, then the account recover command should space the requests out so that errors are not raised.

To reproduce

See above

** Stack trace/error message **
E0619 00:48:08.655316 140305093594048 client/src/client_proxy.rs:640] Failed to get account state from validator, error: RpcFailure(RpcStatus { status: Cancelled, details: Some("Received http2 header with status: 429") })

Expected Behavior

Loading a mnemonic key file should not require external calls to the validator. Hence there should be no error and the addresses should simply be generated.

System information

Libra Version: ./scripts/cli/start_cli_testnet.sh has no version command and shows no version on running...
Rust Version: rustc 1.36.0-nightly (50a0defd5 2019-05-21)
Computer OS: Ubuntu 18.04

[Feature Request] Include move_to function

🚀 Feature Request

The Move language includes move_from() and move_to_sender() functions, however it does not include a move_to() function in which a recipient address can be specified. This function is however included already in the vm. Please include this function in the stdlib:

move_to<t: StructName>(recipient: address, t: struct)

Motivation

This function is necessary in order to send a resource to another address than the sender's. A use case could be a product to which the ownership rights can be sold to another person. In this case, the rights need to be moved_from the sender's address and moved_to the recipient's address.

Pitch

Describe the solution you'd like
Integrate the vm function MOVE_TO into the Builtin syntax.

Describe alternatives you've considered
I'm not aware of how to solve the problem from my motivation otherwise. If that's possible, please advise.

Are you willing to open a pull request? (See CONTRIBUTING)
I would try, yes.

Additional context

Example Code of my Problem

module Counter {
    resource T {
        counter: u64
    }

    public create() {
        let t: R#Self.T;

        t = T {
            counter: 0
        };

        return move(t);
    }

    public increment(counter_address: address) {
        let t: R#Self.T;
        let t_new: R#Self.T;
        let increment: u64;

        T { counter } = move(counter_address);
        increment = 1;

        t_new = T {
            counter: move(counter) + copy(increment)
        };

        // The counter should stay at the same address
        move_to<T>(counter_address, t_new);

        return;
    }
}

cargo run -p libra_swarm -- -s error

When I Run a Local Validator Node, I am installed cargo with apt install cargo, But I run "cargo run -p libra_swarm -- -s " error, follow:

Updating crates.io index
Updating git repository `https://github.com/pingcap/rust-rocksdb.git`
Updating git repository `https://github.com/alexcrichton/bzip2-rs.git`
Updating git repository `https://github.com/busyjay/lz4-rs.git`
Updating git repository `https://github.com/busyjay/rust-snappy.git`
Updating git repository `https://github.com/gyscos/zstd-rs.git`

Compiling futures-core-preview v0.3.0-alpha.16
Compiling take_mut v0.2.2
Compiling crossbeam v0.2.12
Compiling try-lock v0.2.2
error[E0432]: unresolved import core::task::Context
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:5:18
|
5 | use core::task::{Context, Poll};
| ^^^^^^^ no Context in task

error[E0432]: unresolved import core::task::Context
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:7:12
|
7 | task::{Context, Poll},
| ^^^^^^^ no Context in task

error[E0432]: unresolved import core::task::Context
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:5:18
|
5 | use core::task::{Context, Poll};
| ^^^^^^^ no Context in task

error[E0432]: unresolved imports core::task::Context, core::task::RawWaker, core::task::RawWakerVTable
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/mod.rs:8:22
|
8 | pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable};
| ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^ no RawWakerVTable in task
| | |
| | no RawWaker in task
| no Context in task

Compiling utf8-ranges v0.1.3
Compiling regex-syntax v0.3.9
error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:22:9
|
22 | impl Unpin for LocalFutureObj<'_, T> {}
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
1 | use core::marker::Unpin;
|
1 | use core::pin::Unpin;
|
1 | use std::marker::Unpin;
|
1 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:103:9
|
103 | impl Unpin for FutureObj<'_, T> {}
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
1 | use core::marker::Unpin;
|
1 | use core::pin::Unpin;
|
1 | use std::marker::Unpin;
|
1 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:179:29
|
179 | F: Future<Output = T> + Unpin + 'a
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
1 | use core::marker::Unpin;
|
1 | use core::pin::Unpin;
|
1 | use std::marker::Unpin;
|
1 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:188:81
|
188 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for &'a mut (dyn Future<Output = T> + Unpin + 'a)
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
1 | use core::marker::Unpin;
|
1 | use core::pin::Unpin;
|
1 | use std::marker::Unpin;
|
1 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:42:19
|
42 | P: DerefMut + Unpin,
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
3 | use core::marker::Unpin;
|
3 | use core::pin::Unpin;
|
3 | use std::marker::Unpin;
|
3 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:60:27
|
60 | impl<S: ?Sized + Stream + Unpin> Stream for &mut S {
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
3 | use core::marker::Unpin;
|
3 | use core::pin::Unpin;
|
3 | use std::marker::Unpin;
|
3 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:73:19
|
73 | P: DerefMut + Unpin,
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
3 | use core::marker::Unpin;
|
3 | use core::pin::Unpin;
|
3 | use std::marker::Unpin;
|
3 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:107:19
|
107 | P: DerefMut + Unpin,
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
3 | use core::marker::Unpin;
|
3 | use core::pin::Unpin;
|
3 | use std::marker::Unpin;
|
3 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:151:31
|
151 | impl<S: ?Sized + Stream + Unpin> Stream for Box {
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
148 | use core::marker::Unpin;
|
148 | use core::pin::Unpin;
|
148 | use std::marker::Unpin;
|
148 | use std::pin::Unpin;
|

error[E0405]: cannot find trait Unpin in this scope
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:174:13
|
174 | impl<T: Unpin> Stream for ::alloc::collections::VecDeque {
| ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
148 | use core::marker::Unpin;
|
148 | use core::pin::Unpin;
|
148 | use std::marker::Unpin;
|
148 | use std::pin::Unpin;
|

error[E0658]: use of unstable library feature 'alloc': this library is unlikely to be stabilized in its current form or name (see issue #27783)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/lib.rs:16:1
|
16 | extern crate alloc;
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:4:5
|
4 | use core::pin::Pin;
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:5:27
|
5 | use core::task::{Context, Poll};
| ^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:7:9
|
7 | pub use core::future::Future;
| ^^^^^^^^^^^^^^^^^^^^
error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:4:5
|
4 | future::Future,
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:6:5
|
6 | pin::Pin,
| ^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:7:21
|
7 | task::{Context, Poll},
| ^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:17:23
|
17 | future: *mut (dyn Future<Output = T> + 'static),
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:18:34
|
18 | drop_fn: unsafe fn(*mut (dyn Future<Output = T> + 'static)),
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:25:56
|
25 | unsafe fn remove_future_lifetime<'a, T>(ptr: *mut (dyn Future<Output = T> + 'a))
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:26:18
|
26 | -> *mut (dyn Future<Output = T> + 'static)
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:31:65
|
31 | unsafe fn remove_drop_lifetime<'a, T>(ptr: unsafe fn (*mut (dyn Future<Output = T> + 'a)))
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:32:28
|
32 | -> unsafe fn(*mut (dyn Future<Output = T> + 'static))
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:73:5
|
73 | type Output = T;
| ^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:76:5
|
76 | / fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll {
77 | | unsafe {
78 | | Pin::new_unchecked(&mut *self.future).poll(cx)
79 | | }
80 | | }
| |_____^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:72:9
|
72 | impl Future for LocalFutureObj<'_, T> {
| ^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:122:5
|
122 | type Output = T;
| ^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:125:5
|
125 | / fn poll(self: Pin<&mut Self>, cx: &mut Context<'>) -> Poll {
126 | | let pinned_field: Pin<&mut LocalFutureObj<'
, T>> = unsafe {
127 | | Pin::map_unchecked_mut(self, |x| &mut x.0)
128 | | };
129 | | LocalFutureObj::poll(pinned_field, cx)
130 | | }
| |_____^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:121:9
|
121 | impl Future for FutureObj<'_, T> {
| ^^^^^^
error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:179:8
|
179 | F: Future<Output = T> + Unpin + 'a
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:188:60
|
188 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for &'a mut (dyn Future<Output = T> + Unpin + 'a)
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:199:8
|
199 | F: Future<Output = T> + 'a
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:197:50
|
197 | unsafe impl<'a, T, F> UnsafeFutureObj<'a, T> for Pin<&'a mut F>
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:208:47
|
208 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for Pin<&'a mut (dyn Future<Output = T> + 'a)>
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:208:64
|
208 | unsafe impl<'a, T> UnsafeFutureObj<'a, T> for Pin<&'a mut (dyn Future<Output = T> + 'a)>
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:223:18
|
223 | where F: Future<Output = T> + 'a
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:234:63
|
234 | unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Box<dyn Future<Output = T> + 'a> {
| ^^^^^^^^^^^^^^^^^^
error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:244:63
|
244 | unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Box<dyn Future<Output = T> + Send + 'a> {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:256:12
|
256 | F: Future<Output = T> + 'a
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:254:54
|
254 | unsafe impl<'a, T, F> UnsafeFutureObj<'a, T> for Pin<Box>
| ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:269:55
|
269 | unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + 'a>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:269:67
|
269 | unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + 'a>> {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:281:55
|
281 | unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + Send + 'a>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:281:67
|
281 | unsafe impl<'a, T: 'a> UnsafeFutureObj<'a, T> for Pin<Box<dyn Future<Output = T> + Send + 'a>> {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:293:17
|
293 | impl<'a, F: Future<Output = ()> + Send + 'a> From<Box> for FutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^
error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:299:27
|
299 | impl<'a> From<Box<dyn Future<Output = ()> + Send + 'a>> for FutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:305:17
|
305 | impl<'a, F: Future<Output = ()> + Send + 'a> From<Pin<Box>> for FutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:305:55
|
305 | impl<'a, F: Future<Output = ()> + Send + 'a> From<Pin<Box>> for FutureObj<'a, ()> {
| ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:311:19
|
311 | impl<'a> From<Pin<Box<dyn Future<Output = ()> + Send + 'a>>> for FutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:311:31
|
311 | impl<'a> From<Pin<Box<dyn Future<Output = ()> + Send + 'a>>> for FutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:317:17
|
317 | impl<'a, F: Future<Output = ()> + 'a> From<Box> for LocalFutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:323:27
|
323 | impl<'a> From<Box<dyn Future<Output = ()> + 'a>> for LocalFutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:329:17
|
329 | impl<'a, F: Future<Output = ()> + 'a> From<Pin<Box>> for LocalFutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^
error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:329:48
|
329 | impl<'a, F: Future<Output = ()> + 'a> From<Pin<Box>> for LocalFutureObj<'a, ()> {
| ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:335:19
|
335 | impl<'a> From<Pin<Box<dyn Future<Output = ()> + 'a>>> for LocalFutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:335:31
|
335 | impl<'a> From<Pin<Box<dyn Future<Output = ()> + 'a>>> for LocalFutureObj<'a, ()> {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:15:29
|
15 | pub type BoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + Send + 'a>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:15:55
|
15 | pub type BoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + Send + 'a>>;
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:19:34
|
19 | pub type LocalBoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + 'a>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:19:60
|
19 | pub type LocalBoxFuture<'a, T> = Pin<alloc::boxed::Box<dyn Future<Output = T> + 'a>>;
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:40:25
|
40 | impl

FusedFuture for Pin


| ^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:71:23
|
71 | where F: ?Sized + Future<Output = Result<T, E>>
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/lib.rs:19:39
|
19 | #[doc(hidden)] pub use self::future::{Future, FusedFuture, TryFuture};
| ^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:4:5
|
4 | use core::pin::Pin;
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:5:27
|
5 | use core::task::{Context, Poll};
| ^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:10:29
|
10 | pub type BoxStream<'a, T> = Pin<alloc::boxed::Box<dyn Stream<Item = T> + Send + 'a>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:71:20
|
71 | impl

Stream for Pin


| ^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:105:25
|
105 | impl

FusedStream for Pin


| ^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:5:5
|
5 | use crate::task::Waker;
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:29:30
|
29 | waker: UnsafeCell<Option>,
| ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:141:29
|
141 | impl AssertSync for Waker {}
| ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/mod.rs:8:31
|
8 | pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable};
| ^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/mod.rs:8:37
|
8 | pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable};
| ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/lib.rs:25:24
|
25 | #[doc(hidden)] pub use self::task::Poll;
| ^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:154:36
|
154 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a);
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:174:35
|
174 | unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a));
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:65:15
|
65 | self: Pin<&mut Self>,
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:67:10
|
67 | ) -> Poll<Result<Self::Ok, Self::Error>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:55:15
|
55 | self: Pin<&mut Self>,
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:57:10
|
57 | ) -> Poll<OptionSelf::Item>;
| ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:129:28
|
129 | fn try_poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>)
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:130:12
|
130 | -> Poll<Option<Result<Self::Ok, Self::Error>>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:76:23
|
76 | fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll {
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:76:64
|
76 | fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll {
| ^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:78:13
|
78 | Pin::new_unchecked(&mut *self.future).poll(cx)
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:125:19
|
125 | fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll {
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:125:60
|
125 | fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll {
| ^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:127:13
|
127 | Pin::map_unchecked_mut(self, |x| &mut x.0)
| ^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:126:27
|
126 | let pinned_field: Pin<&mut LocalFutureObj<'_, T>> = unsafe {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:181:36
|
181 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:182:26
|
182 | self as *mut dyn Future<Output = T>
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:185:36
|
185 | unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:190:36
|
190 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:191:26
|
191 | self as *mut dyn Future<Output = T>
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:194:36
|
194 | unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:201:36
|
201 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:202:55
|
202 | unsafe { self.get_unchecked_mut() as *mut dyn Future<Output = T> }
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:205:36
|
205 | unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:210:36
|
210 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:211:55
|
211 | unsafe { self.get_unchecked_mut() as *mut dyn Future<Output = T> }
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:214:36
|
214 | unsafe fn drop(_ptr: *mut (dyn Future<Output = T> + 'a)) {}
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:225:40
|
225 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:229:39
|
229 | unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:235:40
|
235 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:239:39
|
239 | unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:245:40
|
245 | fn into_raw(self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:249:39
|
249 | unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:258:44
|
258 | fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:264:39
|
264 | unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:265:18
|
265 | drop(Pin::from(Box::from_raw(ptr)))
| ^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:270:44
|
270 | fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:276:39
|
276 | unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:277:18
|
277 | drop(Pin::from(Box::from_raw(ptr)))
| ^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:282:44
|
282 | fn into_raw(mut self) -> *mut (dyn Future<Output = T> + 'a) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:288:39
|
288 | unsafe fn drop(ptr: *mut (dyn Future<Output = T> + 'a)) {
| ^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:289:18
|
289 | drop(Pin::from(Box::from_raw(ptr)))
| ^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:300:32
|
300 | fn from(boxed: Box<dyn Future<Output = ()> + Send + 'a>) -> Self {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:306:24
|
306 | fn from(boxed: Pin<Box>) -> Self {
| ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:312:24
|
312 | fn from(boxed: Pin<Box<dyn Future<Output = ()> + Send + 'a>>) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:312:36
|
312 | fn from(boxed: Pin<Box<dyn Future<Output = ()> + Send + 'a>>) -> Self {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:324:32
|
324 | fn from(boxed: Box<dyn Future<Output = ()> + 'a>) -> Self {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:330:24
|
330 | fn from(boxed: Pin<Box>) -> Self {
| ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:336:24
|
336 | fn from(boxed: Pin<Box<dyn Future<Output = ()> + 'a>>) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:336:36
|
336 | fn from(boxed: Pin<Box<dyn Future<Output = ()> + 'a>>) -> Self {
| ^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:77:23
|
77 | fn try_poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<F::Output> {
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/mod.rs:77:64
|
77 | fn try_poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<F::Output> {
| ^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:64:19
|
64 | mut self: Pin<&mut Self>,
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:66:10
|
66 | ) -> Poll<OptionSelf::Item> {
| ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:67:22
|
67 | S::poll_next(Pin::new(&mut **self), cx)
| ^^^^^^^^
error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:79:15
|
79 | self: Pin<&mut Self>,
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:81:10
|
81 | ) -> Poll<OptionSelf::Item> {
| ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:82:9
|
82 | Pin::get_mut(self).as_mut().poll_next(cx)
| ^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:139:28
|
139 | fn try_poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>)
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:140:12
|
140 | -> Poll<Option<Result<Self::Ok, Self::Error>>>
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:155:23
|
155 | mut self: Pin<&mut Self>,
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:157:14
|
157 | ) -> Poll<OptionSelf::Item> {
| ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:158:13
|
158 | Pin::new(&mut **self).poll_next(cx)
| ^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:167:19
|
167 | self: Pin<&mut Self>,
error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:169:14
|
169 | ) -> Poll<Option<S::Item>> {
| ^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:170:22
|
170 | unsafe { Pin::map_unchecked_mut(self, |x| &mut x.0) }.poll_next(cx)
| ^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'pin' (see issue #49150)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:178:23
|
178 | mut self: Pin<&mut Self>,
| ^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:180:14
|
180 | ) -> Poll<OptionSelf::Item> {
| ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/stream/mod.rs:181:13
|
181 | Poll::Ready(self.pop_front())
| ^^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:199:36
|
199 | pub fn register(&self, waker: &Waker) {
| ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/task/__internal/atomic_waker.rs:277:34
|
277 | pub fn take(&self) -> Option {
| ^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:17:30
|
17 | future: *mut (dyn Future<Output = T> + 'static),
| ^^^^^^^^^^

error[E0658]: use of unstable library feature 'futures_api': futures in libcore are unstable (see issue #50547)
--> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-preview-0.3.0-alpha.16/src/future/future_obj.rs:18:41
|
18 | drop_fn: unsafe fn(*mut (dyn Future<Output = T> + 'static)),
| ^^^^^^^^^^

error: aborting due to 151 previous errors

Some errors occurred: E0405, E0432, E0658.
For more information about an error, try rustc --explain E0405.
error: Could not compile futures-core-preview.
warning: build failed, waiting for other jobs to finish...
error: build failed

[Bug] Censorship resistance

Your white paper seems to discard Bitcoin in favour of federated IOUs backed by centralized IOUs and administrators. Bitcoin is censorship resistant. It scales through software, not bureaucrats, law enforcement, regulation and or governments.

https://bitcoin.org/bitcoin.pdf

[Bug] failed to run custom build command for 'network v.0.1.0'

Hey There!

The error is given on execution of the script start_cli_testnet.sh, appearently is about some dependency is missing

To reproduce

Code snippet to reproduce

$ ./start_cli_testnet.sh

Stack trace/error message

stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:59
             at src/libstd/panicking.rs:197
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   4: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:474
   5: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:381
   6: rust_begin_unwind
             at src/libstd/panicking.rs:308
   7: core::panicking::panic_fmt
             at src/libcore/panicking.rs:85
   8: core::result::unwrap_failed
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libcore/macros.rs:18
   9: core::result::Result<T,E>::expect
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libcore/result.rs:827
  10: build_script_build::main
             at network/build.rs:16
  11: std::rt::lang_start::{{closure}}
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/rt.rs:64
  12: std::panicking::try::do_call
             at src/libstd/rt.rs:49
             at src/libstd/panicking.rs:293
  13: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:85
  14: std::rt::lang_start_internal
             at src/libstd/panicking.rs:272
             at src/libstd/panic.rs:388
             at src/libstd/rt.rs:48
  15: std::rt::lang_start
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/rt.rs:64
  16: main
  17: __libc_start_main
  18: _start

Expected Behavior

Dependencies should be installed without errors

System information

  • Libra Version: latest
  • Rust Version: rustc 1.35.0
  • Elementary OS 5 (Ubuntu 18.04.2 LTS)

[Bug] Excceded max mint amount of 1000000000000

🐛 Bug

I tried to transfer a large amount, it got rejected despite me being way within the limit.
Perhaps it's a limitation of testnet but I thought it was worth reporting here.

To reproduce

** Code snippet to reproduce **

libra% account mint 1 5200000

** Stack trace/error message **

[ERROR] Error minting coins: Failed to query remote faucet server[status=400 Bad Request]: "Exceeded max mint amount of 1000000000000"

Expected Behavior

I expect 5200000 to be transferred. Or to receive a message that I have insufficient funds.

System information

Please complete the following information:

  • Ubuntu 19.04

error: failed to run custom build command for `grpcio-sys v0.4.4` when running start_cli_testnet.sh

Errors when running ./scripts/cli/start_cli_testnet.sh

error: failed to run custom build command for grpcio-sys v0.4.4

And I see this at the end of building output.

CMake Error at CMakeLists.txt:5405 (add_library):
  Cannot find source file:

    src/csharp/ext/grpc_csharp_ext.c

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx


CMake Error at CMakeLists.txt:5405 (add_library):
  No SOURCES given to target: grpc_csharp_ext

I'm using macOS 10.12.6

[Bug] error: failed to run custom build command for `grpcio-sys v0.4.4`

🐛 Bug

To reproduce

** Code snippet to reproduce **

./scripts/cli/start_cli_testnet.sh

** Stack trace/error message **

error: failed to run custom build command for `grpcio-sys v0.4.4`

Caused by:
  process didn't exit successfully: `/Users/anton/Documents/htdocs/libra/target/debug/build/grpcio-sys-de29f299956e12f6/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=grpc_wrap.cc
cargo:rerun-if-changed=grpc
cargo:rerun-if-env-changed=GRPCIO_SYS_USE_PKG_CONFIG
cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
running: "cmake" "/Users/anton/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.4.4/grpc" "-DgRPC_INSTALL=false" "-DgRPC_BUILD_CSHARP_EXT=false" "-DgRPC_BUILD_CODEGEN=false" "-DgRPC_BENCHMARK_PROVIDER=none" "-DCMAKE_INSTALL_PREFIX=/Users/anton/Documents/htdocs/libra/target/debug/build/grpcio-sys-1a7c7d66f8455f0b/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -stdlib=libc++ -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Debug"

--- stderr
thread 'main' panicked at '
failed to execute command: No such file or directory (os error 2)
is `cmake` not installed?

build script failed, must exit now', /Users/anton/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.40/src/lib.rs:832:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

Expected Behavior

Juste wanted to build the system and connect to a node in testnet.

System information

Please complete the following information:

  • macOS 10.13.6

Additional context

Doesn't work even after I installed protoc:
http://google.github.io/proto-lens/installing-protoc.html

[Bug] ./scripts/cli/start_cli_testnet.sh, Ubuntu 18.04: "Could not compile `lalrpop`

🐛 Bug

On Ubuntu 18.04, ran ./scripts/dev_setup.sh successfully. ./scripts/cli/start_cli_testnet.sh results in:

error: Could not compile `lalrpop`.
...
warning: build failed, waiting for other jobs to finish...
error: build failed

To reproduce

  • Create fresh Ubuntu 18.04 VM
  • Run ./scripts/dev_setup.sh
  • Install Protobuf 3.8.0 manually because the version in Ubuntu 18.04 is too old
  • Run ./scripts/cli/start_cli_testnet.sh

Stack trace/error message

error: Could not compile `lalrpop`.

Caused by:
  process didn't exit successfully: `rustc --crate-name lalrpop /home/vagrant/.cargo/registry/src/github.com-1ecc6299db9ec823/lalrpop-0.16.3/src/lib.rs --color always --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 -C metadata=f99932516191d22c -C extra-filename=-f99932516191d22c --out-dir /home/vagrant/develop/libra/target/debug/deps -L dependency=/home/vagrant/develop/libra/target/debug/deps --extern ascii_canvas=/home/vagrant/develop/libra/target/debug/deps/libascii_canvas-3906eaab464e0a6a.rlib --extern atty=/home/vagrant/develop/libra/target/debug/deps/libatty-fbc44f8b54538385.rlib --extern bit_set=/home/vagrant/develop/libra/target/debug/deps/libbit_set-7a2fd74556c0a4c2.rlib --extern diff=/home/vagrant/develop/libra/target/debug/deps/libdiff-b5dc9b0a0a8cf92b.rlib --extern docopt=/home/vagrant/develop/libra/target/debug/deps/libdocopt-66684aa36af55a5a.rlib --extern ena=/home/vagrant/develop/libra/target/debug/deps/libena-cc8ddf8a31c1e77c.rlib --extern itertools=/home/vagrant/develop/libra/target/debug/deps/libitertools-f3a8a1049d3bf6cb.rlib --extern lalrpop_util=/home/vagrant/develop/libra/target/debug/deps/liblalrpop_util-0161a9c431e73fab.rlib --extern petgraph=/home/vagrant/develop/libra/target/debug/deps/libpetgraph-c0d1c59128016301.rlib --extern regex=/home/vagrant/develop/libra/target/debug/deps/libregex-2a13d81a6041b857.rlib --extern regex_syntax=/home/vagrant/develop/libra/target/debug/deps/libregex_syntax-bb92dd287ef165cf.rlib --extern serde=/home/vagrant/develop/libra/target/debug/deps/libserde-bac9a0c523793a05.rlib --extern serde_derive=/home/vagrant/develop/libra/target/debug/deps/libserde_derive-bf2971c3de722036.so --extern sha2=/home/vagrant/develop/libra/target/debug/deps/libsha2-daa44ca7c8edd059.rlib --extern string_cache=/home/vagrant/develop/libra/target/debug/deps/libstring_cache-75d4331b3e79caf1.rlib --extern term=/home/vagrant/develop/libra/target/debug/deps/libterm-83f078f8c75a4448.rlib --extern unicode_xid=/home/vagrant/develop/libra/target/debug/deps/libunicode_xid-c8af9378541d7c80.rlib --cap-lints allow` (signal: 9, SIGKILL: kill)
warning: build failed, waiting for other jobs to finish...
error: build failed

Note the (signal: 9, SIGKILL: kill) - I did not do anything to kill the process.

Expected Behavior

Script completes correctly

System information

Please complete the following information:
Libra Version: cloned latest from GitHub
Computer OS: Ubuntu 18.04

[Bug] David Marcus is a Sith Lord

David Marcus is a Sith Lord. He uses the Force to further the evil purposes of The Empire.

They call it Libra and pretend that it is a heavenly body designed for freedom. But I will tell you what it is. It is a Death Star. Brothers and sisters of the rebellion, it is time to fight.

Just to say hi and good luck!

Nice to be here and be a witness to a big change breaking event in the modern world. I was preparing this kind of disruption with my chococoin and its proof-of-tree algorithm, but I have to give space to the team of Libra to do the job, you have the resources. I wish you all the luck and success of the world. I know you will do a better job than the current bank system.

My best regards.

[Bug] ./scripts/dev_setup.sh on Ubuntu 18.04: "protoc version is too old. Update protoc to 3.6.0 or above. Abort"

🐛 Bug

When running ./scripts/dev_setup.sh on Ubuntu 18.04 (Vagrant VM ubuntu/bionic64, which I think is representative for other Ubuntu 18.04 installs), the script fails with:

protoc version is too old. Update protoc to 3.6.0 or above. Abort

I would expect this to complete successfully on the latest Ubuntu LTS release.

To reproduce

  • Create a fresh Ubuntu 18.04 VM with Vagrant: vagrant init ubuntu/bionic64 && vagrant up
  • Follow instructions from https://developers.libra.org:
  • git clone https://github.com/libra/libra.git && cd libra
  • ./scripts/dev_setup.sh

** Stack trace/error message **
After successfully installing many components:

protoc version is too old. Update protoc to 3.6.0 or above. Abort

Expected Behavior

Script completes successfully

System information

Libra Version: latest version cloned from GitHub
Computer OS: Ubuntu 18.04 in a Vagrant VM ubuntu/bionic64

[Bug] No local validation when trying to transfer higher balance than local wallet holds

There does not appear to be local application-side validation when attempting to transfer from one wallet to another. For example, I issued transfer 0 1 5001 where 5001 is greater than the total minted coins for wallet index 0. This likely should have failed within the CLI without submitting the transaction to the validator.

libra% query balance 0
Balance is: 5000
libra% query balance 1
Balance is: 2500
libra% transfer 0 1 5001
>> Transferring
Transaction submitted to validator
To query for transaction status, run: query txn_acc_seq 0 0 <fetch_events=true|false>
libra% query balance 0
Balance is: 5000
libra% query sequence 0
>> Getting current sequence number
Sequence number is: 1

[Bug] Readme doesnt have link to testnet explorer

🐛 Bug

To reproduce

** Code snippet to reproduce **

# Your code goes here
# Please make sure it does not require any external dependencies

** Stack trace/error message **

// Paste the output here

Expected Behavior

System information

Please complete the following information:

Additional context

Add any other context about the problem here.

[Bug] Typo in the repo description

🐛 Bug

I think there's a typo in the repo description?

Libra’s mission is to enable a simple global currency and financial infrastructure that empowers billions of people with billions.

[Feature Request] Add a Hashed-Timelock Module to stdlib

🚀 Feature Request

Add a Hashed-Timelock Module to stdlib

Motivation

This would allow LibraCoin to be used by non-custodial exchanges immediately on launch.

Pitch

Describe the solution you'd like
A simple module that implements: https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts

Describe alternatives you've considered
3rd-party modules on launch? 😄

Are you willing to open a pull request? (See CONTRIBUTING)
Yes

Additional context

Example of exchanging with a cryptocurrency on another blockchain without a middleman: https://en.bitcoin.it/wiki/Atomic_cross-chain_trading

Putting Cargo.lock into git?

I've seen that libra doesn't have Cargo.lock commited to git. In the gitignore, you write:

# Cargo.lock is needed for deterministic testing and repeatable builds.
#
# Having it in the repo slows down development cycle.
#
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html

Putting Cargo.lock into the git repo would be a very good idea as this repository is an application and application repositories should generally include a Cargo.lock.

Without Cargo.lock, you are at risk of a left-pad incident as there is no --ignore-yanked option or anything similar in cargo.

Windows support

🚀 Feature Request

The documentation states only Linux and Mac are supported, Windows support would be a great addition to be looked upon.

Could be built on Bismuth instead

Why not start on a well-tested new, modern and established platform like $BIS #Bismuth? It is even written in Python, which is much more popular and readable than Rust.

[Bug] ./scripts/dev_setup.sh --compare-versions

🐛 Bug

When running ./scripts/dev_setup.sh on Ubuntu 18.04, the script fails with:

dpkg: error: --compare-versions takes three arguments: <version> <relation> <version>

Type dpkg --help for help about installing and deinstalling packages [*];
Use 'apt' or 'aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;

Options marked [*] produce a lot of output - pipe it through 'less' or 'more' !

To reproduce

** Code snippet to reproduce **

  1. git clone https://github.com/libra/libra.git && cd libra
  2. ./scripts/dev_setup.sh

Expected Behavior

System information

Please complete the following information:

  • latest version cloned from GitHub
  • rustc 1.36.0-nightly (50a0defd5 2019-05-21)
  • Ubuntu 18.04

Additional context

Add any other context about the problem here.

[Feature Request] Add

🚀 Feature Request

Motivation

Is your feature request related to a problem? Please describe.

Pitch

Describe the solution you'd like

Describe alternatives you've considered

Are you willing to open a pull request? (See CONTRIBUTING)

Additional context

Compilation of script & how to run the main function of .mvir file

🐛 Bug

Running the following command in the /.../move_getting_started_examples directory with the script flag enabled produces an error:

Screenshot 2019-06-18 at 23 35 18

Why is this happening? I have also tried using --script instead of -s.
Also, how can one run the main function of a .mvir file?

Expected Behavior

Compilation and verification of transaction script.

System information

  • rust --version: rustc 1.36.0-nightly (50a0defd5 2019-05-21)
  • MacOS Mojave Version 10.14.4

[Bug] MacOS ./scripts/cli/start_cli_testnet.sh could not compile

🐛 MacOS ./scripts/cli/start_cli_testnet.sh could not compile

To reproduce

** git clone https://github.com/libra/libra.git **
** cd libra && ./scripts/dev_setup.sh **
** ./scripts/cli/start_cli_testnet.sh **

** Stack trace/error message **

Building and running client in debug mode.
Compiling prost-derive v0.5.0
Compiling which v2.0.1
Compiling protoc-grpcio v0.3.1
Compiling failure_ext v0.1.0 (/Users/admin/libra/common/failure_ext)
Compiling ed25519-dalek v1.0.0-pre.1
Compiling threshold_crypto v0.3.1
Compiling codespan v0.1.3
Compiling snow v0.5.2
Compiling network v0.1.0 (/Users/admin/libra/network)
Compiling compiler v0.1.0 (/Users/admin/libra/language/compiler)
Compiling canonical_serialization v0.1.0 (/Users/admin/libra/common/canonical_serialization)
Compiling logger v0.1.0 (/Users/admin/libra/common/logger)
Compiling prost-build v0.5.0
Compiling codespan-reporting v0.1.4
Compiling prost v0.5.0
Compiling metrics v0.1.0 (/Users/admin/libra/common/metrics)
Compiling crash_handler v0.1.0 (/Users/admin/libra/common/crash_handler)
Compiling prost-types v0.5.0
Compiling channel v0.1.0 (/Users/admin/libra/common/channel)
Compiling grpc_helpers v0.1.0 (/Users/admin/libra/common/grpc_helpers)
Compiling grpcio-compiler v0.5.0-alpha
Compiling protoc-grpcio v1.0.2
Compiling grpcio-client v0.1.0 (/Users/admin/libra/common/grpcio-client)
Compiling build_helpers v0.1.0 (/Users/admin/libra/common/build_helpers)
Compiling proto_conv v0.1.0 (/Users/admin/libra/common/proto_conv)
Compiling types v0.1.0 (/Users/admin/libra/types)
Compiling storage_proto v0.1.0 (/Users/admin/libra/storage/storage_proto)
Compiling mempool v0.1.0 (/Users/admin/libra/mempool)
Compiling admission_control_proto v0.1.0 (/Users/admin/libra/admission_control/admission_control_proto)
Compiling crypto v0.1.0 (/Users/admin/libra/crypto/legacy_crypto)
Compiling nextgen_crypto v0.1.0 (/Users/admin/libra/crypto/nextgen_crypto)
Compiling noise v0.1.0 (/Users/admin/libra/network/noise)
Compiling vm v0.1.0 (/Users/admin/libra/language/vm)
Compiling scratchpad v0.1.0 (/Users/admin/libra/storage/scratchpad)
Compiling state_view v0.1.0 (/Users/admin/libra/storage/state_view)
Compiling config v0.1.0 (/Users/admin/libra/config)
Compiling move_ir_natives v0.1.0 (/Users/admin/libra/language/stdlib/natives)
Compiling libra_wallet v0.1.0 (/Users/admin/libra/client/libra_wallet)
Compiling storage_client v0.1.0 (/Users/admin/libra/storage/storage_client)
Compiling bytecode_verifier v0.1.0 (/Users/admin/libra/language/bytecode_verifier)
Compiling vm_runtime v0.1.0 (/Users/admin/libra/language/vm/vm_runtime)
Compiling vm_validator v0.1.0 (/Users/admin/libra/vm_validator)
Compiling stdlib v0.1.0 (/Users/admin/libra/language/stdlib)
Compiling vm_genesis v0.1.0 (/Users/admin/libra/language/vm/vm_genesis)
Compiling client v0.1.0 (/Users/admin/libra/client)
Finished dev [unoptimized + debuginfo] target(s) in 1m 49s
Running target/debug/client --host ac.testnet.libra.org --port 80 -s ./scripts/cli/trusted_peers.config.toml
I0618 12:12:30.379731 4603311552 common/crash_handler/src/lib.rs:28] Skip panic handler setup because RUST_BACKTRACE is set
Not able to connect to validator at ac.testnet.libra.org:80, error RpcFailure(RpcStatus { status: Unavailable, details: Some("Socket closed") })

stack backtrace:
0: backtrace::backtrace::trace_unsynchronized::h631f8b682c7bf9e8 (0x10382db3a)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.30/src/backtrace/mod.rs:66
1: backtrace::backtrace::trace::hce483a6931786ab2 (0x10382dac3)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.30/src/backtrace/mod.rs:53
2: backtrace::capture::Backtrace::create::h41a1ad863b6bd04c (0x10381f687)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.30/src/capture.rs:163
3: backtrace::capture::Backtrace::new_unresolved::hf676b835fb5332f0 (0x10381f608)
4: failure::backtrace::internal::InternalBacktrace::new::h617a3d26385ca2fa (0x10381df70)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/failure-0.1.5/src/backtrace/internal.rs:44
5: failure::backtrace::Backtrace::new::ha1cbeceb28a7ae44 (0x10381dcff)
6: <failure::error::error_impl::ErrorImpl as core::convert::From>::from::h8fd6f22cdedd00a6 (0x10252016d)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/failure-0.1.5/src/error/error_impl.rs:19
7: <failure::error::Error as core::convert::From>::from::h98e094f261e4852c (0x1024ffea1)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/failure-0.1.5/src/error/mod.rs:36
8: client::grpc_client::GRPCClient::get_with_proof_async::{{closure}}::had362ec454321c8b (0x10251833c)
at /Users/admin/libra/client/src/grpc_client.rs:143
9: <futures::future::then::Then<A,B,F> as futures::future::Future>::poll::{{closure}}::h49d167f320c2227a (0x1024d447a)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.27/src/future/then.rs:33
10: futures::future::chain::Chain<A,B,C>::poll::h7924489620473b09 (0x1024feffd)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.27/src/future/chain.rs:39
11: <futures::future::then::Then<A,B,F> as futures::future::Future>::poll::h1ae06853db5346a1 (0x1024d429c)
12: futures::task_impl::Spawn::poll_future_notify::{{closure}}::h8f37a9c5c163148a (0x1024fa56c)
13: futures::task_impl::Spawn::enter::{{closure}}::hf76f3e32daaa1427 (0x1024fabc7)
14: futures::task_impl::std::set::hff63f3b7547e25e7 (0x1024d4ca3)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.27/src/task_impl/std/mod.rs:83
15: futures::task_impl::Spawn::enter::h27735a2e342c5b11 (0x1024fa6e0)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.27/src/task_impl/mod.rs:399
16: futures::task_impl::Spawn::poll_fn_notify::ha75a41dd402b87f5 (0x1024fa2ea)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.27/src/task_impl/mod.rs:291
17: futures::task_impl::Spawn::poll_future_notify::hfbec6354e65d4d4b (0x1024fa50c)
18: futures::task_impl::std::<impl futures::task_impl::Spawn>::wait_future::{{closure}}::h0c881ad8dcc97da7 (0x1024d4e23)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.27/src/task_impl/std/mod.rs:236
19: futures::task_impl::std::ThreadNotify::with_current::{{closure}}::h11acb1957036dbc7 (0x1024d47fc)
20: std::thread::local::LocalKey::try_with::h8db036d9511d7275 (0x10251bf1c)
at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/thread/local.rs:299
21: std::thread::local::LocalKey::with::h0704e5a004a65f4a (0x10251b157)
22: futures::task_impl::std::ThreadNotify::with_current::h9e93032fb8584f15 (0x1024d46fe)
23: futures::task_impl::std::<impl futures::task_impl::Spawn>::wait_future::h4020f730adc60702 (0x1024fac04)
24: futures::future::Future::wait::h6e6d886fade3aa9c (0x1024d415d)
at /Users/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.27/src/future/mod.rs:299
25: client::grpc_client::GRPCClient::get_with_proof_sync::h3da2ca8ecd5e79d3 (0x1024e3553)
at /Users/admin/libra/client/src/grpc_client.rs:175
26: client::client_proxy::ClientProxy::test_validator_connection::h35b33e4be9a728c8 (0x10250f711)
at /Users/admin/libra/client/src/client_proxy.rs:619
27: client::main::h0c47a860a779f421 (0x10227cb90)
at /Users/admin/libra/client/src/main.rs:69
28: std::rt::lang_start::{{closure}}::h39541c9fb63d4814 (0x1022a2b91)
at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/rt.rs:64
29: std::panicking::try::do_call::ha1be4cd83bcefe34 (0x10386efd8)
at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/panicking.rs:293
30: ___rust_maybe_catch_panic (0x1038726ef)
at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libpanic_unwind/lib.rs:93
31: std::rt::lang_start_internal::he61fed75c07ba5f9 (0x10386f9fe)
at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/rt.rs:48
32: std::rt::lang_start::h906298eb84e97768 (0x1022a2b62)
at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/rt.rs:64
33: _main (0x10227e0c2)



## System information

**Please complete the following information:**
- rust 1.18.3 
-  Mac Os Mojave 10.14.5


[Bug] Not able to connect to validator RpcFailure: DeadlineExceeded

🐛 Bug

When running the start_cli_testnet.sh I get this error

Building and running client in debug mode.
Finished dev [unoptimized + debuginfo] target(s) in 1.75s
Running target/debug/client --host ac.testnet.libra.org --port 80 -s ./scripts/cli/trusted_peers.config.toml
Not able to connect to validator at ac.testnet.libra.org:80, error RpcFailure(RpcStatus { status: DeadlineExceeded, details: Some("Deadline Exceeded") })

To report a security issue, please email [email protected]. -->

To reproduce

./scripts/cli/start_cli_testnet.sh

Expected Behavior

success

System information

Ubuntu 18.04

[Bug] You can't trust this consortium or Facebook, how to fix?

🐛 Bug

You can't trust this consortium or Facebook, how to fix?

To reproduce

Use Libra

Expected Behavior

Spy, steal, sell your data, censor, and turn you into pig at the slaughter

System information

Any

All Libra Versions

Additional context

Proposed Fix: Buy Bitcoin Instead

build failed caused by jemalloc

❓ Build failed caused by jemalloc build fail

thread 'main' panicked at 'failed to execute command: No such file or directory (os error 2)', /home/ec2-user/.cargo/registry/src/github.com-1ecc629
b9ec823/jemalloc-sys-0.1.8/build.rs:286:19
note: Run with RUST_BACKTRACE=1 environment variable to display a backtrace.

OS: Linux 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

[Bug] Build error occured when compiling 'network'

🐛 Bug

To reproduce

RUST_BACKTRACE=1 cargo run -p client

** Stack trace/error message **

$ RUST_BACKTRACE=1 cargo run -p client
   Compiling network v0.1.0 (/Users/daehyun/Documents/Workspace/references/libra/network)
   Compiling slog-envlogger v2.1.0
   Compiling hyper v0.12.30
   Compiling prost-build v0.5.0
   Compiling prost-types v0.5.0
error: failed to run custom build command for `network v0.1.0 (/Users/daehyun/Documents/Workspace/references/libra/network)`

Caused by:
  process didn't exit successfully: `/Users/daehyun/Documents/Workspace/references/libra/target/debug/build/network-267ca6ea5a198f61/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=src/proto/network.proto
cargo:rerun-if-changed=src/proto/mempool.proto
cargo:rerun-if-changed=src/proto/consensus.proto

--- stderr
thread 'main' panicked at 'protoc: Custom { kind: NotFound, error: StringError("failed to spawn `\"protoc\" \"--version\"`: No such file or directory (os error 2)") }', src/libcore/result.rs:999:5
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:59
             at src/libstd/panicking.rs:197
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   4: <std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
             at src/libstd/panicking.rs:474
   5: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:381
   6: std::panicking::try::do_call
             at src/libstd/panicking.rs:308
   7: <T as core::any::Any>::type_id
             at src/libcore/panicking.rs:85
   8: <protobuf_codegen::field::FieldGen as core::clone::Clone>::clone
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libcore/macros.rs:18
   9: core::result::Result<T,E>::expect
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libcore/result.rs:827
  10: build_script_build::main
             at network/build.rs:16
  11: std::rt::lang_start::{{closure}}
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/rt.rs:64
  12: std::panicking::try::do_call
             at src/libstd/rt.rs:49
             at src/libstd/panicking.rs:293
  13: panic_unwind::dwarf::eh::read_encoded_pointer
             at src/libpanic_unwind/lib.rs:85
  14: <std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
             at src/libstd/panicking.rs:272
             at src/libstd/panic.rs:388
             at src/libstd/rt.rs:48
  15: std::rt::lang_start
             at /rustc/50a0defd5a93523067ef239936cc2e0755220904/src/libstd/rt.rs:64
  16: build_script_build::main

warning: build failed, waiting for other jobs to finish...
error: build failed

Expected Behavior

Build success.

System information

Please complete the following information:

  • Libra Version: commit5e034dd
  • Rust Version: rustc 1.36.0-nightly (50a0defd5 2019-05-21)
  • Computer OS: macOS 10.14.4

[Bug] failed to run custom build command for `network v0.1.0

🐛 Bug

To reproduce

** Code snippet to reproduce **

./scripts/cli/start_cli_testnet.sh

** Stack trace/error message **

  process didn't exit successfully: `/libra/target/debug/build/network-3bce66de4ba49a2b/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=src/proto/network.proto
cargo:rerun-if-changed=src/proto/mempool.proto
cargo:rerun-if-changed=src/proto/consensus.proto

--- stderr
thread 'main' panicked at 'protoc: Custom { kind: NotFound, error: StringError("failed to spawn `\"protoc\" \"--version\"`: No such file or directory (os error 2)") }', src/libcore/result.rs:999:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

Expected Behavior

Juste wanted to build the system and connect to a node in testnet.

System information

Please complete the following information:

  • Fedora release 29

Additional context

Add any other context about the problem here.

[Bug]CentOS Linux release 7.6.1810:./scripts/cli/start_cli_testnet.sh

-- Looking for writev - found
-- Found Perl: /usr/bin/perl (found version "5.16.3")
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Configuring done
-- Generating done
-- Build files have been written to: /root/Project/src/libra/target/debug/build/grpcio-sys-c998cb3e25589d95/out/build

--- stderr
CMake Warning at cmake/protobuf.cmake:48 (message):
gRPC_PROTOBUF_PROVIDER is "module" but PROTOBUF_ROOT_DIR is wrong
Call Stack (most recent call first):
CMakeLists.txt:140 (include)

CMake Warning at cmake/gflags.cmake:26 (message):
gRPC_GFLAGS_PROVIDER is "module" but GFLAGS_ROOT_DIR is wrong
Call Stack (most recent call first):
CMakeLists.txt:142 (include)
........

and so on

[Feature Request] Add fixed supply cap

🚀 Feature Request

A fixed supply cap would help Libra be a better vehicle for savings and removes inflationary events that could cause disruption to intertemporal market exchanges, which in turn can lead to systemic economic cycles.

Motivation

Currently, there is no explicit description of the monetary policy of Libra, except an implication that any in-flow of new cash will increase the supply of Libra, as described here.

Pitch

Instead of allowing new units to be printed on demand with a new influx of cash, new units should only be allowed to be created at a given rate on a geometric series, which we will call Asymptotic Money Supply Targeting.

Anything else places massive systemic risk on the currency and any economy that uses it. It also gives unfair advantage to well-connected market actors at the expense of less-connected market actors.

Another approach would be to make the reserve solely based on precious metals and cryptocurrencies that do have fixed supply, such as Bitcoin. Otherwise, I fear that Libra will always be in danger of losing relevance to currencies like Bitcoin, because the inflationary model would make it less useful as a vehicle for long term savings and a target for speculative attacks as long as other harder currencies have comparable or better liquidity. I would hate to see the hard work of Libra engineers go completely to waste in the long run, when these technologies offer such hope for not just the next ten years, but the rest of time.

Additional context

The problems discussed here have been described in endless economic literature over the centuries. The following books should be required reading for Libra developers and association members:

[Feature Request] testnet nodes list

🚀 Feature Request

testnet nodes list for CLI testing

Motivation

Is your feature request related to a problem? Please describe.
Due to the crazy amount of traffic / throttling

Pitch

Describe the solution you'd like
alternative instances to test

Describe alternatives you've considered
Run separate nodes

Are you willing to open a pull request? (See CONTRIBUTING)

Additional context

handicap the ability of some CLI to not connect due to :

Not able to connect to validator at ac.testnet.libra.org:80, error RpcFailure(RpcStatus { status: Unavailable, details: Some("Socket closed") })

[Future Implementation] Chainlink

Chainlink — The Missing Piece To The God Protocol

Source:
https://blog.goodaudience.com/chainlink-the-missing-piece-to-the-god-protocol-fd455dde92ab

It’s hard to believe that come January 9, 2019, it will have been 10 years since Bitcoin was first introduced to the world by an unknown entity called Satoshi Nakamoto. Almost nobody knew at the time that Bitcoin, and the blockchain technology that underpins it, would go on to become one of the most lucrative and speculative investments the world has ever seen. Unlike most life changing technologies where investment is limited by law to sophisticated investors or to those of a specific geographic location, Bitcoin and blockchain ventures were uniquely available to anyone around the world, both rich and poor.

In 2017, the blockchain space saw an unprecedented wave of mass euphoria, as many projects saw their valuation go up thousands of percent, forever changing the lives of those investors with the fortitude and vision to buy in early. Everyone was getting rich, MSNBC was doing cryptocurrency analysis daily, and any project with the buzzword “blockchain” got an automatic pump from investors flocking from project to project based on hype.

However, like all parabolic investments, reality crept in and the party came to a grinding halt. In 2018 alone, most projects saw their valuations fall over 90+%, with many even going below ICO price. Unsurprisingly, the shattering of portfolios has killed morale and caused trading volume to drop off a cliff. Most investors left the market completely, and the ones remaining consist of either diehard holders or traders still playing crypto hot potato.

This extreme volatility has left the blockchain space in a very weird spot, as most people became so emotionally tied up in price movement that they completely lost track of fundamentals. In fact, one has to wonder whether or not most people ever understood why the whole movement started in the first place. It’s human nature to want to pounce on a perceived opportunity to get rich quick, but speculation eventually dries up, and it’s at this point in time when those possessing true knowledge and vision separate from those who don’t.

Was it all just a fad or worse a scam, or is there really something deeply revolutionary behind blockchain? To answer that question, one must first rewind history and remember why the blockchain space started in the first place.

Infrastructure In Decay

Most people don’t really understand the systemic issues present in the architectural design of current systems of exchange, whether that be the infrastructure of financial exchange, data exchange, or ownership exchange. The problem is that most backend systems, specifically the computing and storage layers, are isolated from one another and sit on central servers run by centralized institutions.

The first issue with this model is that it places great power and responsibility on the centralized institutions that process and store data. They’re extremely vulnerable from a security standpoint because all their information is housed in a central location, making it ripe for a hacker to penetrate, since they know exactly where to attack.

Additionally, with great centralization of power, usually comes lack of transparency and lack of accountability, as the entity becomes so big that its power becomes monopolistic, meaning it can makes its own rules, even at the expense of its users. Just look at companies like Facebook and Google, which sell people’s data with little to no repercussions. There’s a strong case to be made that this data doesn’t even belong to them, since it’s the users that create the data, which means the decision over what’s done with that data should be up to the user. Lack of data ownership is a major privacy concern as the world moves increasingly into a digital age.

Another major issue is the lack of efficient, trustful connection between isolated systems. This results in companies spending countless amounts of money on overhead to both make systems compatible with each other, and establish trust in the connection. Most of this money is used on paying technological middlemen to facilitate connection and trusted third parties to establish trust. What ultimately results is middleman syphoning off value from what should be a direct exchange between the parties involved. Value is lost on the business side through the expenditure of overhead, which often results in value lost on the consumer side as those costs of business are passed onto them.

Luckily, a new wave of digital ledger technology has emerged, proclaiming it can solve the current infrastructure problems facing outdated systems of value exchange.

The God Protocol

In 1997, Nick Szabo, a technological pioneer who coined the term “smart contracts,” wrote an article in which he describes, what he refers to as, the “God Protocol.” He states:

“Imagine the ideal protocol. It would have the most trustworthy third party imaginable — a deity who is on everybody’s side. All the parties would send their inputs to God. God would reliably determine the results and return the outputs. God being the ultimate in confessional discretion, no party would learn anything more about the other parties’ inputs than they could learn from their own inputs and the output.”

The whole idea centered around replacing middleman intermediaries, such as trusted third parties, with a trustless third party protocol that was able to receive inputs, processes them, and deliver outputs, all in a completely secure and unbiased manner. This trustless third party would be automated and under the control of no one, yet still deliver perfect results.

Blockchain:

When Bitcoin came on the scene twelve years later, it presented the first edition of the God Protocol, the blockchain. Blockchain technology introduced a trustless computation and storage layer for the proposed protocol. It accomplished this through the development of a decentralized network, powered by distributed computing, that’s still able to reach network consensus. Many people now know this process as mining.

Miners provide the hardware hashing power that fuels computation on the distributed network, as well as store the transactional data in a shared digital ledger. The open source software run by miners consists of an algorithm (SHA-256) that ensures the validity of their computation. The beautiful thing about trusteless blockchains is that no one entity controls mining operations, anyone can become a miner, and the entire process is fully open source.

Bitcoin also brought about the first form of trustless functionality, which was a peer-to-peer (P2P) payment system with its own native digital currency. No central third party could syphon off value from the transaction, minus a small transaction fee for processing, which was substantially cheaper than conventional methods. A new level of transparency, accountability, and objectivity was brought to money for the first time in a long time. No longer did people have to rely on central banks for currency, on commercial banks to store their currency, or on payment systems like PayPal or Western Union when sending money around the world. It’s no accident that Bitcoin spawned right after The Financial Crisis of 2008.

Smart Contracts:

While Bitcoin paved the way for blockchain, six years later Ethereum would introduce the next layer to the God protocol, smart contracts. Whereas Bitcoin limited blockchain’s functionality to P2P payments, Ethereum’s introduction of smart contracts brought a whole new level of functionality to the computing layer.

Smart contracts are virtually the same as current legal agreements except they are digitized into code and arbitrated by a trustless third party, i.e. the blockchain. They allow anything of value to be transacted and for transactions to have instructional parameters. This meant that blockchains with smart contract capabilities could now digitize hard assets, transfer ownership of those digital assets, set conditions for the transfer of those assets, and record all of the transactions in an immutable shared ledger.

For example, Entity A only wants to make a transaction with Entity B if Entity B does something specific, such as complete a task. Another way to frame it is that Entity A only receives money from Entity B if a specific outcome happens — — such as a sports bet where a certain team wins or a derivative contract that hits a certain price. If Entity A picks the wrong team or the derivatives instrument hits the liquidation price, the blockchain initiates a payment from Entity A to Entity B. There is nothing either party can do to stop the contract from executing once it has been sent to the blockchain to arbitrate. This brings trust to P2P interactions and eliminates counterparty risk.

The amount of possible use cases that this technology opens up is vast and not even known at the current moment in time considering the novelty of it all. However, some clear use cases that exist are digital identity, record keeping, securities, derivatives, trade finance, mortgages, supply chain, land title ownership, auto insurance, and clinical trials.

Despite the massive developments of blockchain and smart contracts, which added trustless storage, computing, and functionality to the God protocol, there still remains some unpatched holes that make it inadequate as a trustless third party. These shortcomings are clearly hindering the progress of the entire blockchain space.

Vulnerabilities In The God Protocol

There are really three main issues that need to be addressed for digital ledger technology to complete the goal of perfecting a trustless third party.

Connectivity:

Due to the mechanics of the consensus mechanisms underpinning blockchain technology, blockchains lack the ability to trustlessly connect with off-chain resources, meaning they cannot interact with the outside world without sacrificing their features of decentralization.

Basically, the moment a smart contract receives data from a single website, the advantages of smart contracts and blockchain, such as trustlessness, decentralization, and having no middleman, are completely lost. The reason being is that, intentionally or unintentionally, this single point of connection can influence the contract.

Remember, a smart contract cannot have a single point of failure, just as a blockchain cannot have a single node running it and still be secure; otherwise it would just be a typical centralized database. This results in smart contracts that are unable to connect with data, already established backend systems, or other digital ledger technology, while still remaining completely trustless.

Currently, on platforms like Ethereum, there are trusted ways of accessing data, such as using a centralized third party oracle service like Oraclize or by one of the parties in the contract having an in-house oracle, such as in a B2C relationship where the business has their own oracle. However, this defeats the whole idea of blockchain and smart contracts, which is to have trustless end-to-end execution.

If someone enters into a smart contract with an insurance company, but the insurance company owns the communication line between the smart contract and the data it needs because they built the oracle, the customer still has to trust that the insurance company won’t tamper with the communication line and cheat them. It will be hard to achieve full realization of a trustless third party without tamperproof lines of communications between smart contracts and off-chain resources.

Scalability:

Because trustless blockchains (public chains) are decentralized, a bottleneck problem exists in the processing layer, meaning they can only handle so many transactions per second, while still keeping the network decentralized. Some projects like EOS and Ripple attempt to solve the problem by having fewer validating nodes, while other projects like HyperLedger and Corda use a permissioned blockchain structure instead of an open blockchain structure.

It remains to be seen whether the business world will accept the security flaws and lack of network effects associated with sacrificing decentralization and trust for speed and power. However, it’s no secret that blockchains have to scale in computational power if they are to see any kind of mass adoption. This will be a great hurdle that public blockchains must overcome.

Privacy:

Since trustless blockchains are inherently open source and public, they lack a privacy layer in the computation and storage layers. This is of grave concern when it comes to businesses using public blockchains, as most businesses possess sensitive data that they do not want compromised or seen by their competitors. For this reason, permissioned chains have emerged to fill the void, but again it remains to be seen whether they will last as public blockchains develop more functionality. This is very similar to the argument of intranets vs. the Internet, which ultimately saw the Internet win out as the main highway of exchange.

Taking into account the above problems, it’s clear that the God protocol still has a couple of kinks that need to be ironed out before its a part of our everyday lives. Realistically though, what do people expect when a revolutionary technology emerges on the scene in less than ten years? Do people really expect there to be no major hurdles to overcome, especially for a technology that uproots deeply ingrained infrastructure?

Growth and adoption of new technology is never a smooth, linear ride. Fortunately, unbeknownst to most of the blockchain ecosystem, there does exist a solution that has the potential to fix the three core problems in the God protocol; that project is Chainlink (LINK).

Completing the God Protocol

“The single biggest crypto innovation of 2018 will be working oracles. Oracles (the ability to bring info from outside a blockchain into a blockchain) are critical to a great many projects. Oracles exponentially increase the scope of what crypto can do.”

-Ari Paul, Managing Partner at Blockchain Capital

In simple terms, Chainlink is middleware that acts as a decentralized oracle network, with the core functional objective being, bridging two environments, on-chain and off-chain, through the use of APIs. It does this by taking on-chain resources, such as blockchains like Ethereum, Bitcoin, and Hyperledger, and connecting them via APIs to off-chain resources, such as market data, bank payments, retail payments, backend systems, events data, other blockchains, and any web API that exists.

It provides connectivity between the two by performing two functions: connecting smart contracts to off-chain inputs (data), which are then fed into the smart contract and used to produce off-chain outputs (payments, transfer of ownership, transfer of data). Essentially, the off-chain data is used to trigger smart contract actions based on the parameters set forth when the contract was made.

Example: Company A manufactures goods that are then shipped to Company B, a retail store. The two companies create a smart contract where the retailer agrees to pay the manufacturer once the goods are delivered. When the goods arrive, the retailer signs for them using an e-signature, which has an API that can be used as an input for the smart contract. This input is used to trigger an output in the form of a payment from the retailer’s bank account to the manufacturer’s bank account.

This enhanced level of connectivity brings a whole new level of functionality to smart contracts. Just like a computer with no Internet connection has limited capabilities, so too do smart contract platforms that cannot connect to outside functions. Chainlink acts as the Internet for smart contracts, allowing connectivity between almost everything.

Chainlink was specifically designed with modularity in mind, meaning every piece was built separately and is able to be upgraded. It also makes use of external adaptors, which can be built by anyone and allows Chainlink to connect to any smart contract platform that exists, effectively rendering it blockchain agnostic. Any smart contract platform can utilize Chainlink’s oracle services and it can make payments on any blockchain or backend system with an API. These payments can be made using any fiat currency and any cryptocurrency.

While this new enhancement in connectivity is vital to smart contract usability, it’s only really valuable and unique if the connectivity is trustless.

Trustless Connectivity:

APIs are used all the time in today’s world, but the problem is that these APIs are centralized, meaning the medium in which off-chain and on-chain resources communicate is a single line with a central point of attack. With the goal being trustless connectivity, this possesses a massive security risk and is particularly dangerous in a world of self-executing contracts.

Imagine creating a smart contract worth a billion dollars, only for it to execute to the wrong person or for the wrong amount because it received bad data, was hacked, or was tampered with by the authority controlling the API feed. This is why there is a pressing need for decentralized oracles, especially for high value/high importance contracts. What’s the point of having decentralized smart contracts when they have centralized API connections?

To solve this, Chainlink has developed a decentralized network of oracle nodes that retrieve data from off-chain API data feeds so it can be used to trigger smart contracts. Nodes also format the data into blockchain readable formats to trigger API outputs. Smart contract creators wanting to utilize the Chainlink network can use a variety of tools to make their connectivity trustless, such as distributing sources, distributing oracles, and use of trusted hardware. It also has features to secure decentralization, such as aggregation, reputation systems, staking/penalty payments, and certification services.

## Levels of Decentralization:

When a smart contract creator uses the Chainlink network for its services, it must first select the amount of nodes it wants to use. For example, having one node fetch data for the contract will likely be cheaper, but comes with more security risk, whereas having 1000 nodes service the same contract will give the contract far greater trust and security.

Distributing Sources:

One of the ways a smart contract creator can increase trustless connectivity of the smart contract is by having nodes fetch data from several sources. For example, a node could get market-pricing data from Bloomberg, Yahoo Finance, and Reuters.

Distributing Oracles:

Another way it can increase trustlessness in the connectivity layer of the smart contract is by having multiple nodes work on the contract. One way this could work is for all the nodes to get data from the same source, which is important when there is only one source of data. This would insure against the one and only node being a bad actor or getting hacked, since there are other nodes to back the contract up. Another way is to have multiple nodes get data from multiple sources.

Aggregation:

The smart contract creator can also choose an aggregation method for the data fetched by the nodes, such as using an average from all the sources, tossing out the outliers, or weighting different sources more than others. In reality, there can be all kinds of aggregation methods. It’s ultimately up to the smart contract creator to choose what they want.

Penalty Payments:

The smart contract creator can also choose how much collateral they want the node to stake in order to get the privilege to solve the contract. This collateral acts as both a penalty payment and insurance on the contract in the event that the node acts in a malicious or unprofessional way, specifically if their data feed is inconsistent with the data given by other oracle nodes working on the smart contract. The malicious node will have to pay the smart contract creator the amount of collateral that was agreed upon in the beginning of the contract if their data feed is a clear outlier. Low value contracts might not request as much collateral, but high value/high importance contracts will likely want larger amounts of collateral staked to insure the node performs its job to the highest standards.

Reputation:

Another security check on nodes is having a reputation system that rates nodes based on certain criteria such as the total number of assigned requests, total number of completed requests, total number of accepted requests, average time to respond, and amount of penalty payments. What this does is keep nodes acting in an honest manner because if they do not, they are subject to receiving bad ratings by other users, which are then seen by future customers. A bad rating would cause the node to lose out on potential revenue earned by servicing upcoming contracts. This is likely to be done by third parties, at least initially.

Certification Services:

Finally, another proposed security check is for the Chainlink team or some outside third party to give endorsements of high quality oracle providers. They could do this by monitoring network statistics in order to locate nodes they found most reliable. This is not something that is mandatory, but more of an optional feature to increase security on the system.

Off-Chain Processing:

While trustless connectivity takes digital ledger technology to a whole other level of functionality, Chainlink’s long-term vision aims to perfect the God Protocol by adding off-chain computing. Effectively, this would act as both a scaling solution for smart contract platforms, such as Ethereum, as well as act as a privacy layer for smart contracts, by moving most of the processing work to private off-chain environments. To achieve this, they would look to take the on-chain smart contract and move it off-chain into what they refer to as a trusted execution environment (TEE). A TEE is a private enclave where the integrity of the application, such as the data, the code, and the control flow, are protected from any outside entity tampering with them. This even protects against malicious operating systems and malicious administrative hosts running the application. The secure enclave ensures confidentiality, so that others cannot see the data or what kinds of processes are being done with it. An easy way to think about this is imagining the data and computation happening in a secure lock box, where no one from the outside world can see it or even access it.

TEEs are possible through the use of trusted hardware, such as Intel SGX, the current leader in this new space. Chainlink has recently purchased Town Crier, an oracle built on the Ethereum network using SGX trusted hardware, which already has a working product that’s retrieving sensitive flight information for smart contracts to see if they have been delayed and issuing flight insurance based off that information. All of this is done without revealing any personal data of the passenger to anyone.

With processing being done off-chain in secure enclaves, it takes a major load off smart contract platforms, which means they can focus on becoming settlement layers with a lot less computation, while most of the heavy processing is done off-chain using Chainlink. This is very similar to how the Lightning Network aims to take a lot of computational weight off the Bitcoin main chain, leaving Bitcoin as a settlement layer and the Lightning Network as the high computational chain for most of the day-to-day transactions.

This can substantially reduce costs since less work needs to be done on-chain, which requires gas payments that are far too high for recurrent computational tasks, especially at the current moment. Moving computation into TEEs will likely increase the use of blockchains, since high on-chain fees are absorbed less frequently, meaning fees are only paid when finalizing settlements. This is especially beneficial for those DAPPs, which require frequent computation before the final settlement.

TEEs will likely intrigue those businesses worried about sensitive data being stolen on public blockchains, which would bring about a whole new subset of players into the space. It also supremely enhances the usability of smart contract platforms by allowing them to scale to new levels, while still maintaining decentralization. Another exciting possibility is having web assembly (WASM) code sent to nodes, which could allow them to perform all types of processes that go far beyond smart contracts. This means that Chainlink nodes wouldn’t just be fetching data, but could theoretically perform any function with any level of processing, even if they were not initially programmed to do so.

While this technology is still in its early stages and isn’t even a sure thing, the potential for it can’t go understated, which is likely why Chainlink has seen many additions to its team, along with a plethora of exciting partnership announcements in the last few months.

Team & Partnerships

Team:

The Chainlink team consists of a two-man core of Sergey Nazarov and Steve Ellis, but have made eight new additions to the team since they launched their ICO. Sergey in particular is one of the premier smart contract pioneers in the space; building decentralized applications since 2014, initially launching Cryptamail as the first blockchain-based messaging service, then going on to build Secure Asset Exchange, which became the first widely used decentralized exchange interface. He has been seen talking on blockchain panels with Vitalik Buterin since before Ethereum came out, as well as owning the website SmartContract.com years before most people knew what they were.

Sergey, through both his company SmartContract and Chainlink, are known for building oracles for large financial enterprises like SWIFT, as well as leading smart contract development teams like ZeppelinOS, OpenLaw and Market Protocol. He also worked for early stage venture capital funds FirstMark Capital and QED Capital. Given his previous work experience, the people he associates with, and the conferences he speaks at, it’s pretty clear that he has well-established connections in the world of blockchain, computing, academia, business, and finance. It’s also clear that Chainlink isn’t a new project that started during the ICO, but has been in development for years, as stated by Sergey when interviewed by the newspaper American Banker

The team also has six advisors, two of whom are Ari Juels and Evan Cheng who were the only two advisors before the ICO. Ari Juels, who co-wrote the whitepaper, is a PhD professor at Cornell, former Chief Scientist of RSA, and co-director of the IC3 initiative, the leading blockchain and research development consortium. Interestingly enough, Ari Juels shared the same stage with Nick Szabo at the Synchronize conference where they spoke on a panel discussing “The Power and Promise of Smart Contracts.” The other advisor, Evan Cheng, one of Facebook’s most senior engineers, is now the Director of Blockchain at Facebook.

The biggest takeaway from the team is their non-hype mentality and impressive Pivotal Tracker activity, showing they don’t care about creating artificial excitement about their project, but instead are a team that lets its actions do the talking. Their partners always publicize their partnership collaborations first, which is rare in a space where projects broadcast announcements of announcements just to create hype.

Another interesting aspect of Chainlink is their community. Despite the fact that they hardly market or communicate, the level of excitement in the community continues to grow. The community is almost cult-like with its overabundance of memes, which might sound like a bad thing, but even famous entrepreneur Peter Thiel said that most successful start-ups should be run like cults. To him, this means that the company has a strong culture, which the Chainlink community certainly does.

Partnerships:

The Accord Project:

“The Accord Project is an open source, non-profit, initiative working to transform contract management and contract automation by digitizing contracts.”

Accord is setting the developmental standards for the construction of legal smart contracts and Chainlink is providing oracle services to them. Accord has some of the biggest law firms in the world working with them, such as Baker McKenzie, K&L Gates, and Allen & Overy, along with major technological and financial firms, such as IBM, Hyperledger, and APPG (UK government).

OpenLaw:

“OpenLaw is building a technology stack to help power next generation “smart” legal agreements.”

OpenLaw is aiming to do something very similar to Accord in building the developmental standards for the construction of legal smart contracts, and Chainlink is providing oracle services to them. Their aim seems to be more focused on developing legal standards on open blockchains, whereas Accord seems to be more focused on permissioned blockchains. One important piece to note is that OpenLaw is owned by Consensys. OpenLaw also recently partnered with Rocket Lawyer, an online consumer law company with tens of thousands of customers, to exploit the benefits of smart contracts.

SWIFT:

“The Society for Worldwide Interbank Financial Telecommunication (SWIFT) provides a network that enables financial institutions worldwide to send and receive information about financial transactions in a secure, standardized and reliable environment.”

While there has been no official announcement from SWIFT on their partnership with Chainlink, it is known, such as being displayed on the Chainlink website and being confirmed by the Chainlink team, that Chainlink is working on a Smart Oracle for SWIFT. This coincides with the fact that Chainlink did two successful proof-of-concepts for SWIFT at their annual SIBOS conference, where they created and executed a smart bond. This smart bond was a smart contract that took the interest rates of 5 banks, aggregated them into a single rate, and used that rate to make a payment that translated into a SWIFT payment message. SWIFT handles the interbank payments for over 11,000 banks in its network.

On a speculative note, there is speculation that the smart oracle they are creating for SWIFT might be designed similar to the recent white papers released by SWIFT describing a global platform for the financial services API economy, which is basically an exact description of Chainlink’s functionality.

Web3/Polkadot:

“Web3 Foundation was founded with one mission: to support a fully decentralized web. Web3 Foundation is building an internet where users are in control of their own data, identity and destiny.”

Web3 is trying to build the decentralized Internet, with the Polkadot blockchain as the backbone. They also want to use Chainlink as their decentralized oracle service provider. Interestingly, Gavin Wood, the co-founder of Ethereum and the guy that wrote a lot of the code for it, is the head of both, Web3 and Polkadot.

ZeppelinOS:

“ZeppelinOS is an operating system designed specifically for smart contracts. It provides an on-chain set of upgradeable standard libraries, and an incentive structure to continually upgrade and patch itself.”

ZeppelinOS will be the development standard toolkit for smart contracts and DAPPs on Ethereum and Chainlink will be their oracle. Essentially, they are one of the base layers of Ethereum and developers who want to build applications on Ethereum will use the features in their toolkit, such as Chainlink. In fact, 95% of Ethereum smart contracts are built upon ZeppelinOS libraries.

Taking in all these partnerships, the same pattern keeps emerging, showing that Chainlink is partnering with the organizations that set the baseline protocol infrastructure that everything for smart contracts is built off. This includes organization building the infrastructure for decentralized law (Accord, OpenLaw), decentralized finance (SWIFT), the decentralized web (Web3), and Ethereum (ZeppelinOS). In most of these partnerships, it ‘s likely they build Chainlink right into the protocol itself, which gives Chainlink access to the millions of customers using their platforms. Being on so many high frequency platforms would bring an enormous amount of activity to the Chainlink network.

Town Crier:

“Town Crier system is an authenticated data feed for smart contracts, a.k.a. an “oracle.” It was created by students and faculty at The Initiative for CryptoCurrencies and Contracts (IC3).”

On November 1, 2018, Chainlink accounced at Devcon 4 that it had acquired Town Crier. By absorbing Town Crier, Chainlink inherits the clients already exploring the use of the SGX oracle, as well as close access to the big name clients in the IC3, of which Chainlink is also a member. As stated, in the long-term vision, the use of trusted hardware is essential to big business adoption of smart contracts, so by Chainlink acquiring the industry software standard in SGX oracles, they become the market leader in off-chain computation through trusted hardware. This is not to be understated because most businesses will not adopt smart contracts unless they are private, scale to handle heavy processing, and require little overhead, all features that Town Crier provides by housing smart contracts in secure enclaves.

Kaleido:

“In partnership with ConsenSys, Amazon Web Services and the Enterprise Ethereum Alliance, Kaleido brings the dramatic simplicity of SaaS combined with the performance, security, global reach and cloud scale in a platform that goes way beyond today’s quick start scripts and templates.”

Kaleido is essentialy a marketplace for the entire stack of blockchain products and services that any developer or company wishing to engage in the blockchain space would need to develop their own tailor-made solutions. It enhances the user experience of building smart contracts and allows this all to be done with relative ease. Chainlink is one of the “industry products” offered on the marketplace, which shows just how valued it is already, given that companies like Amazon Web Services and ConsenSys are backing Kaleido. It is quickly establishing itself as the Industry Starndard.

Blockchain Project Partnerships:

Chainlink has many partnerships with blockchain startups and data providers, such as Wanchain, Factom, Morpheus Network, Brave New Coin, Market Protocol, ClinTex, bZx, Hydrogen, Kaiko, RTrade Technologies, GameDex, Synthetix, Mobilum, Data Sports Group, NAKA chain, Bodhi, Katallassos, Provable (formerly known as Oraclize), Celer, Olympus Labs, and ETHA, with other speculated ones on the way such as Request Network, Ambrosus, Icon, Universa, and Cardano. These partnerships give Chainlink access to most of the clients that utilize these platforms, which could be significant if they turn out to be big players in the space.

In reality, there will be tons of blockchain projects that will need to interact with off-chain resources; therefore Chainlink becomes a necessity, given they’re clearly the market leader in decentralized oracles. In fact, there are hardly any serious competitors to them at the current moment, although some do exist such as Witnet, Shintaku, and Mobius, which could take some part of the market share. There are also centralized oracles aiming to compete, such as Oraclize and ZAP. No market is without competition, but it’s clear that in terms of development, business connections, and already established partnerships, Chainlink stands out.

White Label Partnerships:

There is a lot of speculation that Chainlink has many white label partnerships with the who’s who of large technology firms and permissioned blockchains, such as with Microsoft, through their Cryplets application. Basically, what this means is that these platforms have Chainlink oracle services built into their protocol stack, but the public doesn’t know that and the credit for these services go to the companies and blockchains who run them. It’s very similar to how Wal-Mart has their own brand of in-house food, in which they take the credit for, but don’t actually make the food. Instead, they contract out some other company to do it for them, but Wal-Mart puts their name on it.

PSD2:

Lastly, something that everyone should be aware of is the new PSD2 law going into effect in Europe. In 2019, every European Financial Institution must provide API support for payment initiation and account enquiry made by all the upcoming Fintech companies. Chainlink is uniquely positioned to facilitate communication between Fintech companies and legacy payment systems since it can plugin to Fintechs using an API and plugin to the SWIFT system, as it demonstrated with its POC where it made a payment in the specific ISO 20022 XML format.

Since SWIFT handles most of the infrastructure for interbank payments around the world, it’s possible to trigger a fiat banking system payment via Chainlink based on the outcome of the contract. This will likely require the use of TEEs in order to maintain strong privacy standards for customers. European banking is going to radically shift and Chainlink is positioned to be a direct financial bridge between legacy banking systems and new Fintech startups.

Tokenomics

Let’s start with the basics first; the Chainlink network currently has a total supply of 1,000,000,000 tokens, with 350,000,000 in circulating supply. Their ICO was held on September 19th, raising $32,000,000, of which $29,000,000 was sold to private VC’s with a 100 ETH minimum investment, while the remaining 3,000,000 were sold to the public with a 7 ETH maximum investment. The public ICO sold out in about 15 minutes.

LINK is an ERC20 token with additional ERC223 “transfer and call” functionality, allowing tokens to be received and processed by contracts within a single transaction.

The token has two purposes: paying node operators and incentivizing uptime guarantees. In terms of paying node operators, this includes retrieval of data from off-chain data feeds, formatting of data into blockchain readable formats, and off-chain computation. These prices would be set by node operators and subject to the market.

In terms of incentivizing uptime guarantees, this is done through the payment penalty/collateral system described above, in which nodes must put up whatever collateral is requested by the smart contract creator in order to be able to service the contract. Failing to service the contract with good data will result in the node losing the collateral. To ensure more trust and security, especially for high value/high importance contracts, the smart contract creator will likely demand higher collateral on the contract. Things that come to mind here are large bond payments, large derivatives contracts, transfer of sensitive data, and transfer of expensive assets like a house.

Since LINK acts as a kind of collateral insurance on smart contracts, the total market cap of the LINK token must equal the total amount of insurance demanded on all the contracts at a given time. This means that both high value contracts, like bonds or real estate transfers, and liquid markets with high amounts of activity, such as derivatives and supply chain, will need enough collateral to back up all the insurance needed on them. This could get rather large if there is a sizeable amount of activity on the network.

The Chainlink network actually provides more security the higher the value of the token because it means contracts are backed by a healthy amount of insurance, bringing increased trust to the network. It also puts the burden of trust on the node, instead of the smart contract creator, which should expedite adoption, as people feel comfortable running smart contracts knowing they are adequately insured against mistakes.

Another rewarding aspect about the token is the fact that those who choose to run nodes stand to make a considerable amount of profit if the network is active, similar to how Bitcoin mining can be profitable. While holding LINK isn’t required for running a node, not having any will prohibit the node from putting up any collateral to service contracts. Since most contracts will want insurance, especially high value/high importance contracts, the more LINK a node holds the more likely they are to service lucrative contracts. This means that most tokens will be locked up in nodes, leaving a very small percentage actually being traded on the open market.

Most smart contract creators using Chainlink oracles will likely never even interact with the token, as fiat relays are currently being built that allow the customer to pay in whatever currency they want, while the payment in LINK to node operators will happen in the background through the use of decentralized exchanges and simple protocols. Chainlink actually formed a partnership with OpenLaw to show how real world fiat currencies can be used easily with self-executing payment clauses in a legal contract. This should accelerate adoption, as the customer experience will be very seamless and simple and not require the user to hold cryptocurrency.

Conclusion:

“If anyone solves oracles, it’s probably worth more than crypto”

-Richard Heart, early Bitcoin investor

Taking everything into account, it’s hard not to get too excited about what a successful Chainlink network could do to revolutionize the smart contract space. If Ethereum can exceed a 100 billion marketcap based on tokenization, crowdfunding, and simple smart contract functionality, then the possibilities brought about by Chainlink are profound, given they provide a working bridge from legacy systems to all blockchains and provide the most secure medium of exchange between data and smart contracts. This doesn’t even take into account their medium-to-long term goals of providing scaling and privacy solutions for smart contracts using TEEs.

There is a real possibility that Chainlink could ignite the next crypto bullrun, given it opens up a whole new level of possible functionality for DAPPs using smart contracts. From a business perspective, companies will save tons of money by not having to make expenditures on overhead, such as manual entry of data, human arbitration of contracts, and middlemen services used to establish trust. From a customer perspective, people won’t have to rely on the good faith of companies when entering into agreements with them, since the blockchain is the ultimate arbitrator of how the contract is executed.

The companies who opt towards giving up control in favor of decentralization will likely gain massive marketing advantages over companies that don’t because it showcases to customers their willingness to allow trustless third parties to arbitrate, bringing much needed trust back into B2C relationships. It could become a game of who will blink first and give in.

Obviously though, this is not financial advice and there are always obvious risks associated with speculative investments like Chainlink, such as competitors coming into the space, smart contract platforms trying to implement their own native oracles, and businesses choosing to build everything in house on private chains with private oracles. This is a project that will not be done overnight and will likely take years to reach its full potential, although that is true of all blockchain projects today.

Despite the obvious risks, what project has this wide of a use case, this important of a use case, this professional of a team, this level of Pivotal Tracker activity, this high level of partnerships/clients, and this lucrative of tokenomics? In a space of hype projects that add little value to the world, Chainlink solves real world problems, works with already established companies, and offers a solution that the digital ledger technology space desperately needs.

Flipping low fundamental hype coins will not last forever and so people better start to think about which projects have strong fundamentals and will actually be around in the future. The amazing part about Chainlink is that it doesn’t matter what smart contract platform succeeds, whether that be public or permissioned chains, because Chainlink can service any type of platform, being it’s blockchain agnostic. They are like a premier shovel manufacturer in the smart contract gold rush, in that everyone needs oracle services in order for their own projects to succeed. Most mining companies went bankrupt in the Gold Rush, but the shovel manufacturer always made money.

If Chainlink reaches its full potential, it could complete the God Protocol, perfecting the first trustless third party in world history. This is likely to obsolete many current blockchain projects and the ramifications are bigger than most people understand. Klaus Schwab, founder and head of the World Economic Forum, described this phenomenon of decentralized trust in a book called The Fourth Industrial Revolution, in which he even mentioned SmartContract.com by name. So with all that’s been said, the choice is yours: watch from the sidelines or take a risk on what could be one of the most valuable pieces of digital real estate heading into the future. Do your own research, understand the risks, but know that life-changing investments don’t come around all that often.

-77777777

Thanks to all the anons that made this possible, especially @timo_harings for helping me through the editing process and adding some details I missed.

Follow me on Twitter: @Crypto___Oracle
Follow me on Steemit: @thecryptooracle

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.