textile-go
Status
What is Textile?
Textile provides encrypted, recoverable, schema-based, and cross-application data storage built on IPFS and libp2p. We like to think of it as a decentralized Firebase with built-in protocols for sharing and recovery.
This repository contains the core Textile node and daemon, a CLI client, and a mobile client for building an iOS/Android application.
See textile-mobile for the Textile Photos iOS/Android app.
Install
Download the latest release for your OS.
Usage
NOTE: The command line tool currently has limited access to the internal node APIs. We're quickly mapping everything over to a newly designed REST API and command line tool. Stay tuned for docs.
~ $ textile --help
Usage:
textile [OPTIONS] <command>
Help Options:
-h, --help Show this help message
Available commands:
add Add file(s) to a thread
address Show wallet address
cafes Manage cafes
daemon Start the daemon
get Get a thread file
init Init the node repo and exit
invite Manage thread invites
ls Paginate thread files
migrate Migrate the node repo and exit
peer Show peer ID
ping Ping another peer
profile Manage public profile
shell Start a shell session
threads Manage threads
version Print version and exit
wallet Manage or create an account wallet
Textile uses an HD Wallet as an account key manager. You may use the name derived account seed on multiple devices to sync wallet data. To get started, run:
$ textile wallet init
This will generate a recovery phrase for all your accounts. You may specify a word count and password as well (run with --help
for usage).
Next, use an account from you wallet to initialize a node. First time users should just use Account 0, which is printed out by the wallet init
subcommand. Use the accounts
subcommand to access deeper derived wallet accounts.
$ textile init -s <account_seed>
Finally, start the daemon:
$ textile daemon
TODO: Run through creating a thread, adding images, comments, etc.
Contributing
$ go get github.com/textileio/textile-go
You'll need a few different tools here to get setup...
Install dep
Golang package manager:
$ brew install dep
Install gx
IPFS package manager:
$ go get -u github.com/whyrusleeping/gx
$ go get -u github.com/whyrusleeping/gx-go
Install dependencies
Finally, download dependencies managed by gx
and dep
:
$ make setup
Run tests
$ make test_compile
Building
There are various things to build:
CLI/daemon
$ make build
iOS Framework
$ go get golang.org/x/mobile/cmd/gomobile
$ gomobile init
$ make ios_framework
Android Framework
$ go get golang.org/x/mobile/cmd/gomobile
$ gomobile init
$ make android_framework
Acknowledgments
While almost entirely different now, this project was jumpstarted from OpenBazaar. Thanks to @cpacia, @drwasho and the rest of the contributors for their work on openbazaar-go.
And of course, thank you Protocal Labs for the incredible FOSS effort and constant inspiration.
License
MIT