diff --git a/docs/concepts/persistence.md b/docs/concepts/persistence.md index c25ccdcf4..2ea8dc4ea 100644 --- a/docs/concepts/persistence.md +++ b/docs/concepts/persistence.md @@ -49,6 +49,7 @@ Some of the pinning services listed below are operated by third party companies. - [4EVERLAND Bucket](https://www.4everland.org/bucket/) - [Filebase](https://filebase.com/) - [Pinata](https://pinata.cloud/) +- [Pinion Build](https://pinion.build/) - [Storacha (formerly web3.storage)](https://storacha.network/) See how to [work with remote pinning services](../how-to/work-with-pinning-services.md). diff --git a/docs/how-to/best-practices-for-nft-data.md b/docs/how-to/best-practices-for-nft-data.md index 7a867df7e..5ef5ba67d 100644 --- a/docs/how-to/best-practices-for-nft-data.md +++ b/docs/how-to/best-practices-for-nft-data.md @@ -8,7 +8,7 @@ date: 2021-04-02 IPFS is a great fit for storing and addressing data for NFTs, or non-fungible tokens. This guide is all about how to store the data for NFTs on IPFS so that NFT creators and owners have a great experience that can stand the test of time. -Since an NFT can't be easily changed after it's been created, it's a good idea to think about how the data for your NFTs is stored, addressed, and made persistent over time. That's why we'll be getting into the specifics of [how to prepare your NFT metadata](#metadata), and we'll also look at [the different kinds of links to IPFS content](#types-of-ipfs-links-and-when-to-use-them) and when you should use each one. Finally, we'll see why [making a plan for your data's persistence](#persistence-and-availability) is important for a good user experience. By following these recommendations, you can help ensure a long and healthy future for your NFT data. +Since an NFT can't be easily changed after it's been created, it's a good idea to think about how the data for your NFTs is stored, addressed, and made persistent over time. That's why we'll be getting into the specifics of [how to prepare your NFT metadata](#metadata), and we'll also look at [the different kinds of links to IPFS content](#types-of-ipfs-links-and-when-to-use-them) and when you should use each one. Finally, we'll see why [making a plan for the persistence of your data](#persistence-and-availability) is important for a good user experience. By following these recommendations, you can help ensure a long and healthy future for your NFT data. This guide is aimed at developers building NFT platforms and other tools, and it's focused on how to format your data and link to it for the best long-term results. @@ -112,7 +112,7 @@ To link to images, videos and other media, simply use an [IPFS URI](#ipfs-uri). ::: tip Using IPFS URIs inside your metadata to link to images and other media helps preserve the integrity of your NFT data! IPFS links can't be tampered with or altered to point to different data after they've been created. -Even if you're not storing your data with IPFS today, generating an IPFS URI for your media and including it in your metadata will allow anyone to validate the data's integrity once they download it from another source. If you (or anyone else) later adds the data to IPFS, the URI will start working! +Even if you're not storing your data with IPFS today, generating an IPFS URI for your media and including it in your metadata will allow anyone to validate integrity of your data once they download it from another source. If you (or anyone else) later adds the data to IPFS, the URI will start working! ::: Because you need to know the CID of images and other media that you want to reference in your metadata, it's simplest to create the metadata after you've added your media assets to IPFS. @@ -139,7 +139,7 @@ When your data is stored on IPFS, users can fetch it from any IPFS node that has If you're building a platform using IPFS for storage, it's important to pin your data to IPFS nodes that are robust and highly available, meaning that they can operate without significant downtime and with good performance. See our [server infrastructure documentation][docs-server-infra] to learn how [IPFS Cluster][ipfs-cluster] can help you manage your own cloud of IPFS nodes that coordinate to pin your platform's data and provide it to your users. -Alternatively, you can delegate the infrastructure responsibility to a remote pinning service. Remote pinning services like [Pinata](https://pinata.cloud), [Storacha](https://storacha.network/), and [Filebase](https://filebase.com/) provide redundant, highly-available storage for your IPFS data, without any _vendor lock-in_. Because IPFS-based content is addressed by CID instead of location, you can switch between pinning services or migrate to your private infrastructure seamlessly as your platform grows. +Alternatively, you can delegate the infrastructure responsibility to a remote pinning service. Remote pinning services like [Pinata](https://pinata.cloud), [Pinion Build](https://pinion.build), [Storacha](https://storacha.network/), and [Filebase](https://filebase.com/) provide redundant, highly-available storage for your IPFS data, without any _vendor lock-in_. Because IPFS-based content is addressed by CID instead of location, you can switch between pinning services or migrate to your private infrastructure seamlessly as your platform grows. To learn more about persistence and pinning, including how to work with remote pinning services, see our [overview of persistence, permanence, and pinning][docs-persistence]. diff --git a/docs/how-to/privacy-best-practices.md b/docs/how-to/privacy-best-practices.md index 8c10657ba..1b4a8d8b3 100644 --- a/docs/how-to/privacy-best-practices.md +++ b/docs/how-to/privacy-best-practices.md @@ -35,4 +35,4 @@ If you're a developer building on IPFS, it's worth noting that the global IPFS c Private IPFS networks provide full protection from public monitoring but can lack the scale benefits provided by the public IPFS network. A private network operates identically to the public one, but with one critical difference: it can only be accessed by nodes that have been given access, and it will only ever scale to those nodes. This means that the benefits of the public IPFS network's massive scale, such as geographic resiliency and speedy retrieval of high-demand content, won't be realized unless the private network is explicitly designed and scaled with this in mind. -Running a private network can be a great option for corporate implementations of IPFS — for one example, see [this case study on Morpheus.Network](../case-studies/morpheus.md) — because the network's topology can be specified and built exactly as desired. \ No newline at end of file +Running a private network can be a great option for corporate implementations of IPFS — for one example, see [this case study on Morpheus.Network](../case-studies/morpheus.md) — because the network's topology can be specified and built exactly as desired. diff --git a/docs/how-to/work-with-pinning-services.md b/docs/how-to/work-with-pinning-services.md index 362b8c993..51754c114 100644 --- a/docs/how-to/work-with-pinning-services.md +++ b/docs/how-to/work-with-pinning-services.md @@ -43,6 +43,7 @@ If you've decided that creating your own pinning service is right for you, learn Third-party pinning services allow you to purchase pinning capacity for important data. Each service has its own approach to pinning data and managing pins, so users should do their research to ensure that the service meets their particular needs. Service providers include, but are not limited to: - [Pinata](https://pinata.cloud/) +- [Pinion Build](https://pinion.build/) - [Filebase](https://filebase.com/) - [Storacha (formerly web3.storage)](https://storacha.network/) diff --git a/docs/quickstart/pin-cli.md b/docs/quickstart/pin-cli.md index 7e6490429..38ed97275 100644 --- a/docs/quickstart/pin-cli.md +++ b/docs/quickstart/pin-cli.md @@ -55,6 +55,7 @@ Running your own node gives you complete control over your data while participat - **Option B**: An account with at least one pinning service (free tier is sufficient): - [Storacha](https://storacha.network) - Requires Node.js for their CLI - [Pinata](https://pinata.cloud/) - Uses REST API with curl + - [Pinion build](https://pinion.build) - Uses REST API - [Filebase](https://filebase.com) - S3-compatible, works with AWS CLI - A sample file to upload, such as the [following image](../quickstart/images/welcome-to-IPFS.jpg): @@ -105,7 +106,47 @@ curl -X POST https://api.pinata.cloud/pinning/pinFileToIPFS \ -F "file=@welcome-to-IPFS.jpg" ``` -### Option 3: Filebase S3-Compatible API and Kubo RPC +### Option 3: Pinion build upload API + +Pinion build provides a writable gateway you can use to upload files or car files. +Files added this way are immediately viewable through the gateway and broadcast to the IPFS network, and manageable through the standard pinning service API +or the web dashboard. Additional information can be found in their [API documentation](https://pinion.build/docs/) + +Basic file upload with curl: +```shell +curl -X POST https://.pinion.build/upload/api/v1/?name=my-file \ + -H "Authorization: Bearer YOUR_TOKEN" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @./myfile.txt +``` + + +Their API also supports uploading multi-root CAR files. When done this way, each root CID in the CAR is pinned and managed individually. + +Car file upload with curl: +```shell +curl -X POST https://.pinion.build/upload/api/v1/?name=my-dag \ + -H "Authorization: Bearer YOUR_TOKEN" \ + -H "Content-Type: application/vnd.ipld.car" \ + --data-binary @./content.car +``` + +The response of this API will include relevant information about the upload that (conveniently, perhaps) matches the PinStatus schema used by the pinning service API. +The pin will be available immediately through the pinion gateway, but the status will be "pinning" until the content is fully processed by the pinion bitswap providers and available on the IPFS network. + +```json +{ + "requestid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "status": "pinning", + "created": "2025-01-15T12:00:00Z", + "pin": { + "cid": "Qm...", + "name": "my-file" + } +} +``` + +### Option 4: Filebase S3-Compatible API and Kubo RPC Filebase offers an S3-compatible API, making it easy to use with AWS CLI or any S3 SDK. See their [S3-compatible API documentation](https://docs.filebase.com/api-documentation/s3-compatible-api) and [developer quick start guide](https://docs.filebase.com/getting-started/getting-started-guides/developer-quick-start-guide). They also offer a subset of Kubo RPC API - see their [IPFS RPC API documentation](https://docs.filebase.com/api-documentation/ipfs-rpc-api). diff --git a/docs/quickstart/pin.md b/docs/quickstart/pin.md index e27224f2d..b159fb639 100644 --- a/docs/quickstart/pin.md +++ b/docs/quickstart/pin.md @@ -54,6 +54,7 @@ To follow along with this guide, you'll need: - **Option B**: An account with at least one pinning service (free tier is sufficient): - [Pinata](https://pinata.cloud/) - Popular IPFS pinning service with simple web interface + - [Pinion Build](https://pinion.build/) - Pinning service with a simple writable gateway, web dashboard, and integrations. - [Filebase](https://filebase.com) - S3-compatible pinning service with web dashboard - [Storacha](https://storacha.network) - Decentralized storage network @@ -76,6 +77,7 @@ You can also configure remote pinning services in IPFS Desktop. See [working wit Choose one of the following pinning services and use their web interface: - **Pinata**: Use the [Pinata App](https://app.pinata.cloud) for a simple drag-and-drop upload experience - see their [quickstart tutorial](https://docs.pinata.cloud/quickstart) +- **Pinion Build**: Use their [Dashboard](https://pinion.build/dashboard) to upload files and manage pins. - **Filebase**: Access their web dashboard and follow their [pin your first file guide](https://docs.filebase.com/getting-started/getting-started-guides/pin-your-first-file-to-ipfs) - **Storacha**: Requires some technical skills, but their [browser upload guide](https://docs.storacha.network/how-to/upload/) may be a useful option if you are developing a web application. You can also visit [console.storacha.network](https://console.storacha.network) for web-based uploads @@ -150,5 +152,6 @@ Possible next steps include: - Learn how to [pin files using the command line](./pin-cli.md) - Explore service-specific documentation: - [Pinata documentation](https://docs.pinata.cloud/) + - [Pinion Build documentation](https://pinion.build/docs) - [Filebase documentation](https://docs.filebase.com/) - - [Storacha documentation](https://docs.storacha.network) \ No newline at end of file + - [Storacha documentation](https://docs.storacha.network)