application-research / estuary

Licence: other
A custom IPFS/Filecoin node that makes it easy to pin IPFS content and make Filecoin deals.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to estuary

nft.storage
😋 Free decentralized storage and bandwidth for NFTs on IPFS and Filecoin.
Stars: ✭ 309 (+58.46%)
Mutual labels:  storage, ipfs, filecoin
nft-website
NFT School: Community education platform for developers in the non-fungible token space.
Stars: ✭ 260 (+33.33%)
Mutual labels:  ipfs, filecoin
add-to-web3
⁂ Github Action to upload your website to web3.storage
Stars: ✭ 22 (-88.72%)
Mutual labels:  ipfs, filecoin
valist
Web3-native software distribution. Publish and install executables, Docker images, WebAssembly, and more. Powered by Ethereum, IPFS, and Filecoin.
Stars: ✭ 107 (-45.13%)
Mutual labels:  ipfs, filecoin
filecoin-client
Golang的轻量级filecoin客户端,支持离线签名,基本满足钱包交易所充值提现逻辑
Stars: ✭ 50 (-74.36%)
Mutual labels:  ipfs, filecoin
borg
Client-server stack for Web3! Turn your Raspberry Pi to a BAS server in minutes and enjoy the freedom of decentralized Web with a superior user experience!
Stars: ✭ 25 (-87.18%)
Mutual labels:  ipfs, filecoin
S4
S4 is 100% S3 compatible storage, accessed through Tor and distributed using IPFS.
Stars: ✭ 67 (-65.64%)
Mutual labels:  storage, ipfs
nebula-crawler
🌌 A libp2p DHT crawler, monitor, and measurement tool that exposes timely information about DHT networks.
Stars: ✭ 97 (-50.26%)
Mutual labels:  ipfs, filecoin
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+358.97%)
Mutual labels:  storage, ipfs
Space Sdk
The Space SDK is a JavaScript/Typescript library for building web and mobile applications leveraging Open Web and distributed protocols like IPFS, Textile, GunDB, and Ethereum.
Stars: ✭ 93 (-52.31%)
Mutual labels:  storage, ipfs
Orion
[Moved to Gitlab] Easy to Use, Inter Planetary File System (IPFS) desktop client
Stars: ✭ 115 (-41.03%)
Mutual labels:  storage, ipfs
pop
Run a point-of-presence within Myel, the community powered content delivery network.
Stars: ✭ 28 (-85.64%)
Mutual labels:  ipfs, filecoin
filecoin-box
Filecoin flavored Ganache Truffle box
Stars: ✭ 23 (-88.21%)
Mutual labels:  ipfs, filecoin
web3.storage
⁂ The simple file storage service for IPFS & Filecoin
Stars: ✭ 417 (+113.85%)
Mutual labels:  ipfs, filecoin
kotal
Blockchain Kubernetes Operator
Stars: ✭ 137 (-29.74%)
Mutual labels:  ipfs, filecoin
Temporal
☄️ Temporal is an easy-to-use, enterprise-grade interface into distributed and decentralized storage
Stars: ✭ 202 (+3.59%)
Mutual labels:  storage, ipfs
Ipfs Deploy
Zero-Config CLI to Deploy Static Websites to IPFS
Stars: ✭ 740 (+279.49%)
Mutual labels:  storage, ipfs
Space Daemon
The Space Daemon packages together IPFS, Textile Threads/Buckets, and Textile Powergate (Filecoin*) into one easy to install Daemon to make it easy to build peer to peer and privacy focused apps.
Stars: ✭ 151 (-22.56%)
Mutual labels:  storage, ipfs
estuary-www
https://estuary.tech
Stars: ✭ 32 (-83.59%)
Mutual labels:  ipfs, filecoin
js-threaddb
This project has been moved to https://github.com/textileio/js-textile
Stars: ✭ 13 (-93.33%)
Mutual labels:  ipfs

Estuary

An experimental ipfs node

Questions? Reach out! slack

Building

Requirements:

  1. Run make clean all inside the estuary directory

Running your own node

To run locally in a 'dev' environment, first run:

./estuary setup --username=<uname> --password=<pword>

Save the auth token that this outputs, you will need it for interacting with and controlling the node. This username and password won't work to log in using the front end (estuary-www), but the auth token will.

NOTE: if you want to use a different database than a sqlite instance stored in your local directory, you will need to configure that with the --database flag, like so: ./estuary setup --username=<uname> --password=<pword> --database=XXXXX

Once you have the setup complete, choose an appropriate directory for estuary to keep its data, and use it as your datadir flag when running estuary. You will also need to tell estuary where it can access a lotus gateway api, we recommend using:

export FULLNODE_API_INFO=wss://api.chain.love

Then run:

./estuary --datadir=/path/to/storage --database=IF-YOU-NEED-THIS --logging

NOTE: Estuary makes only verified deals by default and this requires the wallet address to have datacap(see https://verify.glif.io/). To make deals without datacap, it will require the wallet to have FIL, and the run command will need the --verified-deal option set to false.

./estuary --datadir=/path/to/storage --database=IF-YOU-NEED-THIS --logging --verified-deal=false

Running as daemon with Systemd

The Makefile has a target that will install a generic but workable systemd service for estuary.

Run make install-estuary-service on the machine you wish to run estuary on.

Make sure to follow the instructions output by the make command as configuration is required before the service can run succesfully.

Running estuary using docker

  • View the guidelines on how to run estuary using docker here.

Using Estuary

The first thing you'll likely want to do with Estuary is upload content. To upload your first file, use the /content/add endpoint:

curl -X POST http://localhost:3004/content/add -H "Authorization: Bearer REPLACE_ME_WITH_API_KEY" -H "Accept: application/json" -H "Content-Type: multipart/form-data" -F "data=@PATH_TO_FILE_BUT_REMEMBER_THE_@_SYMBOL_IS_REQUIRED"

You can verify this worked with the /content/list endpoint:

curl -X GET -H "Authorization: Bearer REPLACE_ME_WITH_API_KEY" http://localhost:3004/content/list

You may find the API documentation at docs.estuary.tech useful as you explore Estuary's capabilities.

Sealing a Deal

Estuary will automatically make a deal with Filecoin miners after 8 hours. If you upload more than 3.57 GiB of data it will make the deal sooner.

To keep tabs on the status of your uploaded content and Filecoin deals, you can use estuary-www. Clone the estuary-www repository and run:

npm install
npm run dev

And then head to localhost:4444/staging to see the status of your deal.

Contributing

See CONTRIBUTING.md for contributing and development instructions.

Troubleshooting

Make sure to install all dependencies as indicated above. Here are a few issues that one can encounter while building estuary

Guide for: route ip+net: netlinkrib: too many open files

Error

If you get the following error:

/ERROR basichost basic/basic_host.go:328 failed to resolve local interface addresses {"error": "route ip+net: netlinkrib: too many open files"}

It is because you do not have enough open file handles available.

Solution

Update this with the following command:

ulimit -n 10000

Guide for: Missing hwloc on M1 Macs

The Portable Hardware Locality (hwloc) software package provides a portable abstraction of the hierarchical structure of current architectures, including NUMA memory nodes, sockets, shared caches, cores, and simultaneous multi-threading (across OS, versions, architectures, etc.).

lhwloc is used by libp2p-core. Estuary uses libp2p for the majority of its features including network communication, pinning, replication and resource manager.

Error

`ld: library not found for -lhwloc`

Solution

For M1 Macs, here's the following steps needed

  • Step 1: brew install go bzr jq pkg-config rustup hwloc - Uninstall rust as it would clash with rustup in case you have installed.
  • Step 2: export LIBRARY_PATH=/opt/homebrew/lib
  • Step 3: Follow the steps as per the docs.

On Ubuntu, install libhwloc-dev.

Guide for: cannot find -lfilcrypto collect2

Related issue here

Error

When trying to build estuary in an ARM machine, it returns an error

# github.com/filecoin-project/filecoin-ffi/generated /usr/bin/ld: skipping incompatible extern/filecoin-ffi/generated/../libfilcrypto.a when searching for -lfilcrypto /usr/bin/ld: skipping incompatible extern/filecoin-ffi/generated/../libfilcrypto.a when searching for -lfilcrypto /usr/bin/ld: skipping incompatible extern/filecoin-ffi/generated/../libfilcrypto.a when searching for -lfilcrypto /usr/bin/ld: skipping incompatible extern/filecoin-ffi/generated/../libfilcrypto.a when searching for -lfilcrypto /usr/bin/ld: skipping incompatible extern/filecoin-ffi/generated/../libfilcrypto.a when searching for -lfilcrypto /usr/bin/ld: cannot find -lfilcrypto collect2: error: ld returned 1 exit status make: *** [Makefile:67: estuary] Error 2

Solution

Related solution here

RUSTFLAGS="-C target-cpu=native -g" FFI_BUILD_FROM_SOURCE=1 make clean deps bench
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].