rootsoft/laravel-ipfs

Laravel package to communicate with IPFS

0.0.1 2021-04-06 19:05 UTC

This package is auto-updated.

Last update: 2024-04-22 02:37:45 UTC


README

68747470733a2f2f6d69726f2e6d656469756d2e636f6d2f6d61782f3633382f302a6f33304141776348527673413834304f2e6a7067

laravel-ipfs

Packagist Downloads Issues MIT License

The InterPlanetary File System is a peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.

It is an ideal solution for a decentralized storage for blockchain-based content and is optimized for the Algorand blockchain .

Introduction

laravel-ipfs is a simple wrapper around the IPFS HTTP API with an elegant approach to connect your application to the IPFS network so you can easily host and fetch content with just a few lines of code.

Once installed, you can simply connect your application to the network and add content:

$ipfs->add(Utils::tryFopen('ipfs.png', 'r'), 'ipfs.png', ['pin' => true]);

or show IPFS object data:

$contents = $ipfs->cat('QmNZdYefySKuzF37CWjR8vZ319gYToS61r3v3sRwApXgaY');

Getting started

Installation

Note: laravel-ipfs requires PHP 7.4+

You can install the package via composer:

composer require rootsoft/laravel-ipfs

Usage

Create an new IPFSClient and pass the IP address and port of your local (or pinned) network.

$ipfs = new IPFSClient('127.0.0.1', 5001);

That's it! We can now easily add new content on a decentralized network!

Laravel ❤️

We've added special support to make the life of a Laravel developer even more easy!

Publish the ipfs.php config file using:

php artisan vendor:publish --provider="Rootsoft\IPFS\IPFSServiceProvider" --tag="config"

Open the config/ipfs.php file in your project and insert your credentials

return [
    'ipfs' => [
        'base_url' => '127.0.0.1',
        'port' => 5001,
    ],
];

Now you can use the IPFS Facade!

$fileHash = IPFS::add($collectible->get(), $fileName, ['only-hash' => true])['Hash'];

Methods

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing & Pull Requests

Feel free to send pull requests.

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.