Facebook Releases Libra

Ten Key Points⌗
The white paper mentions that Libra’s mission is to build a simple, borderless currency and financial infrastructure that serves billions of people. The Block App has translated and compiled ten key points about Libra, which are:
“Low Volatility” Cryptocurrency⌗
Libra is supported by the Association’s native smart contract blockchain platform, the Libra Blockchain, which is designed to be “secure, scalable, and reliable.” It states that it is primarily dedicated to solving two problems of cryptocurrency: providing banking services to the global unbanked and facilitating low-fee money transfers.
Managed by a Non-profit Organization⌗
Libra’s governing body, the Libra Association, is a non-profit organization based in Geneva that will ultimately have 100 geographically diverse founding members. Current founding members include Uber, PayPal, Visa, and Silicon Valley investment giant Andreessen Horowitz (a16z). The association states that no member will control more than 1% of the blockchain network.
Plans to Transition to Permissionless⌗
Libra is starting as a permissioned blockchain, which means (unlike Bitcoin) only founding members can access the network. But over time, Libra plans to transition to a permissionless network, meaning “no single party can unilaterally change the network rules.”
Pseudonymous Transactions⌗
All non-regulatory transactions on Libra are pseudonymous. This means that the transaction amount, timestamp, and public blockchain address of the cryptocurrency are only visible to members on the network, and no personal data of people using the blockchain is saved. Custodial wallet products can complete offline transactions and may require customers to comply with “Know Your Customer” (KYC) regulations.
Libra’s Reserve⌗
The Libra reserve will include a series of “low volatility” assets, such as bank deposits and government securities from stable central banks (such as the US dollar, British pound, Euro, and Japanese yen). Libra “is not pegged to a single currency, nor does it have a fixed value in any real currency.”
STO⌗
Libra will also issue a security token called the Libra Investment Token as a way to fund incentive programs and cover operational costs. They are only available to accredited investors as securities. Holders can potentially profit from interest earned on the reserve.
Cost of Running Nodes⌗
Businesses serving as validator nodes must make an initial minimum investment of $10 million worth of Libra Investment Tokens issued by the association. The association estimates that running a validator node will cost approximately $280,000 annually. However, non-governmental organizations, multilateral organizations, social impact partners (SIPs), and universities do not need to invest to join the association, but they must support the operation of their nodes.
FinCEN Registered Entity⌗
Facebook created Calibra to ensure “separation between social and financial data, and to build and operate services on its behalf on the Libra network.” Calibra is registered with FinCEN as a Money Services Business (MSB) and obtained licenses to operate in all 50 US states as well as 9 federal territories and districts in February 2019. Calibra’s MSB registration number is 31000141265767.
Regulation⌗
Developers building on the Libra Blockchain will be responsible for complying with the laws and regulations of the jurisdictions in which they operate. The Libra blockchain itself is not regulated.
Launch in 2020⌗
The Libra cryptocurrency and underlying blockchain network will launch next year. A testnet will be released in the coming weeks. Developers will be able to read, build, provide feedback, and participate in a bug bounty program.
Getting Started with Libra⌗
Required Tools⌗
Installing Rust⌗
curl https://sh.rustup.rs -sSf | sh
Getting Libra⌗
# Clone the source code locally
git clone https://github.com/libra/libra.git && cd libra
Installing Dependencies⌗
./scripts/dev_setup.sh
In this step, the script will perform the following operations:
- Install rustup
- Install rust-toolchain
- Install CMake
- Install protoc
- Install Golang for compiling protocol buffers
Running the CLI⌗
./scripts/cli/start_cli_testnet.sh
# If all goes well, you should see the following content
usage: <command> <args>
Use the following commands:
account | a
Account operations
query | q
Query operations
transfer | transferb | t | tb
<sender_account_address>|<sender_account_ref_id> <receiver_account_address>|<receiver_account_ref_id> <number_of_coins> [gas_unit_price (default=0)] [max_gas_amount (default 10000)] Suffix 'b' is for blocking.
Transfer coins from account to another.
help | h
Prints this help
quit | q!
Exit this client
Please, input commands:
libra%
Completing a Transfer⌗
As mentioned earlier, Libra is expected to launch in 2020, but a test server is currently available at ac.testnet.libra.org:8000
.
Creating Accounts⌗
libra% account create
>> Creating/retrieving next account from wallet
Created/retrieved account #0 address e726730e42d5c84afd0663d8fc6c1c9b1ed2a5f23867e26ea36c3a8696df14d4
libra% account create
>> Creating/retrieving next account from wallet
Created/retrieved account #1 address 0a14f08d1400a2934e4f7e994ea2de93ba4a67cf5ea7a4538766a8f469c26315
Adding Currency to Accounts⌗
libra% account mint 0 110
>> Minting coins
Mint request submitted
libra% account mint 1 52
>> Minting coins
Mint request submitted
Here, mint means creating currency, 0/1 represents the user sequence number, and 110/52 represents the amount.
Checking Account Balances⌗
libra% query balance 0
Balance is: 110
libra% query balance 1
Balance is: 52
Initiating a Transfer⌗
Querying Account Sequence⌗
libra% query sequence 0
>> Getting current sequence number
Sequence number is: 0
libra% query sequence 1
>> Getting current sequence number
Sequence number is: 0
Transferring⌗
libra% transfer 0 1 10
>> Transferring
Transaction submitted to validator
To query for transaction status, run: query txn_acc_seq 0 0 <fetch_events=true|false>
0 represents the sequence number of the account sending the currency, 1 represents the sequence number of the account receiving the currency, and 10 represents the transfer amount.
Querying Transaction Information⌗
query txn_acc_seq 0 0 true
The two 0s in the parameters are the Sequence values previously queried from the accounts.
Transaction Completion⌗
libra% query balance 0
Balance is: 100
libra% query balance 1
Balance is: 62
As you can see, when I query the account balances again, they have changed as expected: the account with sequence number 0 has a balance of 100, and the account with sequence number 1 has a balance of 62.
I hope this is helpful, Happy hacking…