dynamic-data-and-capabilities - Dynamic Data and Capabilities in IPFS Working Group

  •        64

Research and development of building blocks that enable collaborative applications, providing solutions for security, identity, access control, concurrency, synchronization, offline and near-real-time collaboration on top of IPFS. Research and implement CRDTs on top of IPFS, creating building blocks that can be used by other applications.

https://github.com/ipfs/dynamic-data-and-capabilities

Tags
Implementation
License
Platform

   




Related Projects

peer-pad - 📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS

  •    Javascript

PeerPad is a decentralized editor that allows concurrent writing of text. Besides making live changes to a given document, it allows read-only nodes to follow the changes in real-time. It also allows you to publish a self-contained snapshot of the document to IPFS. Clone the repo and install the dependencies from npm.

solid-spec - The Solid spec and architecture

  •    

Solid (derived from "social linked data") is a proposed set of conventions and tools for building decentralized social applications based on Linked Data principles. Solid is modular and extensible. It relies as much as possible on existing W3C standards and protocols. Solid uses WebID URIs as universal usernames or actor identifiers. Frequently referred to simply as WebIDs, these URIs form the basis of most other Solid-related technologies, such as authentication, authorization, access control, user profiles, discovery of user preferences and server capabilities, and more.

slim-auth - Authorization and authentication for the Slim Framework using ZF2 Authentication and Acl components

  •    PHP

Slim Auth is an authorization and authentication library for the Slim Framework. Authentication is provided by the Zend Framework Zend\Authentication component, and authorization by the Zend Framework Zend\Permissions\Acl component. If you're familiar with Zend\Authentication and Zend\Permissions\Acl, you'll be able to implement the library without any trouble. Otherwise, you might want to wait for the docs to be completed (no ETA) or open a GitHub issue with any questions or problems you encounter.

ipfspics-server - Content-addressable, peer-to-peer method of storing and sharing images on the internet

  •    PHP

ipfs.pics is a open-source and distributed image hosting website. It aims to be an alternative to non-libre image hosting websites such as imgur, flickr and others. It is based on IPFS - the InterPlanetary File System. The whole application runs on the concept of peer to peer connections, which means that instead of hosting the information in a single location, our servers, the data is stored by everyone who wants to. When a picture is put on IPFS, it is given a hash, a 46 characters long digital fingerprint. No other file will have it and if the same file is added twice then their hashes will be exactly the same, which means the picture can still be found on the network simply by knowing the hash, even if our website is down. You can find the hash at the end of a picture URL, just like below.

awesome-ipfs - Useful resources for using IPFS and building things on top of it

  •    

This list is for projects, tools, or pretty much any things related to IPFS that are totally awesome. This is for products which are already awesome - if you have plans for cool stuff to do with IPFS, you should build it, and then link it here. If you have an idea for an awesome thing to do with IPFS, a good place to ask about it might be in ipfs/apps or ipfs/notes.These are narrowly-scoped, little JS "apps" deployed through IPFS.


js-ipfs-api - A client library for the IPFS HTTP API, implemented in JavaScript.

  •    Javascript

A client library for the IPFS HTTP API, implemented in JavaScript. This client library implements the interface-ipfs-core enabling applications to change between a embebed js-ipfs node and any remote IPFS node without having to change the code. In addition, this client library implements a set of utility functions.Note: ipfs-api requires Node.js v6 (LTS) or higher.

mosquitto-auth-plug - Authentication plugin for Mosquitto with multiple back-ends (MySQL, Redis, CDB, SQLite3)

  •    C

This plugin can perform authentication (check username / password) and authorization (ACL). Currently not all back-ends have the same capabilities (the the section on the back-end you're interested in). Multiple back-ends can be configured simultaneously for authentication, and they're attempted in the order you specify. Once a user has been authenticated, the same back-end is used to check authorization (ACLs). Superusers are checked for in all back-ends. The configuration option is called auth_opt_backends and it takes a comma-separated list of back-end names which are checked in exactly that order.

ipfs-companion - Browser extension that simplifies access to IPFS resources

  •    Javascript

IPFS is a new hypermedia distribution protocol, addressed by content and identities. IPFS enables the creation of completely distributed applications. It aims to make the web faster, safer, and more open. Companion will detect presence of DNSLink in DNS records of visited websites and redirect HTTP request to a local gateway.

uport-connect - Main uPort library for front end developers

  •    Javascript

uPort is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation. uport-connect is the client side library that allows you interact with a user's uPort identity through a uPort client, primarily the mobile app. It handles the communication channel between your app and a uPort client, which can vary depending on the environment which your application runs. Over this communication channel you can send requests for a user's data, share credentials, generate transactions to be signed by a user and relay requests you originally created on your server with uport-credentials. This library offers the default quick start implementation to integrate with uPort, but if it doesn't offer exactly what you need, you may be interested in using uport-tranports and uport-credentials instead.

panda - Platform for Architecture-Neutral Dynamic Analysis

  •    C

PANDA is an open-source Platform for Architecture-Neutral Dynamic Analysis. It is built upon the QEMU whole system emulator, and so analyses have access to all code executing in the guest and all data. PANDA adds the ability to record and replay executions, enabling iterative, deep, whole system analyses. Further, the replay log files are compact and shareable, allowing for repeatable experiments. A nine billion instruction boot of FreeBSD, e.g., is represented by only a few hundred MB. PANDA leverages QEMU's support of thirteen different CPU architectures to make analyses of those diverse instruction sets possible within the LLVM IR. In this way, PANDA can have a single dynamic taint analysis, for example, that precisely supports many CPUs. PANDA analyses are written in a simple plugin architecture which includes a mechanism to share functionality between plugins, increasing analysis code re-use and simplifying complex analysis development. It is currently being developed in collaboration with MIT Lincoln Laboratory, NYU, and Northeastern University.

ipfs - Peer-to-peer hypermedia protocol

  •    

A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.IPFS (the InterPlanetary File System) is a new hypermedia distribution protocol, addressed by content and identities. IPFS enables the creation of completely distributed applications. It aims to make the web faster, safer, and more open.

ipfs-desktop - Menubar IPFS Application

  •    Javascript

A desktop client for IPFS. You don't need the command line to run an IPFS node. Just install IPFS Desktop and have all the power of IPFS in your hands. Powered by Web UI.

js-ipfs - IPFS implementation in JavaScript

  •    Javascript

We've come a long way, but this project is still in Alpha, lots of development is happening, API might change, beware of the Dragons 🐉..Want to get started? Check our examples folder to learn how to spawn an IPFS node in Node.js and in the Browser.

ipfs-webui - A frontend for an IPFS node.

  •    Javascript

A web interface to IPFS. Check on your node stats, explore the IPLD powered merkle forest, see peers around the world and manage your files, without needing to touch the CLI.

Python - Programming Language

  •    C

Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. It is embeddable within applications as a scripting interface. Build flexible data-driven code using Python's powerful and dynamic introspection capabilities and advanced language features such as meta-classes, duck typing and decorators.

mustbe - Authorization plumbing for NodeJS/ExpressJS/ConnectJS apps

  •    Javascript

MustBe is not a complete authorization framework, with roles and responsibilities and models and data access and everything that you need. Rather, it is the underlying plumbing that you need to secure your site. It allows you to fill in the necessary parts to manage data access, roles and users, and gives you the activity based plumbing to secure it all. MustBe is an authorization system - the part of a security system that decides whether or not you are allowed to do something. This is the second of authentication and authorization, where authentication simply determines who you are.

Entity Framework Dynamic Data Model Builder

  •    

Dynamic Data Model Builder lets you to have a Data Access Layer at runtime. It creates dynamic DbContext, DbSet and POCO based on Entity Framework (Code First).

grokking-pytorch - The Hitchiker's Guide to PyTorch

  •    

PyTorch is a flexible deep learning framework that allows automatic differentiation through dynamic neural networks (i.e., networks that utilise dynamic control flow like if statements and while loops). It supports GPU acceleration, distributed training, various optimisations, and plenty more neat features. These are some notes on how I think about using PyTorch, and don't encompass all parts of the library or every best practice, but may be helpful to others. Neural networks are a subclass of computation graphs. Computation graphs receive input data, and data is routed to and possibly transformed by nodes which perform processing on the data. In deep learning, the neurons (nodes) in neural networks typically transform data with parameters and differentiable functions, such that the parameters can be optimised to minimise a loss via gradient descent. More broadly, the functions can be stochastic, and the structure of the graph can be dynamic. So while neural networks may be a good fit for dataflow programming, PyTorch's API has instead centred around imperative programming, which is a more common way for thinking about programs. This makes it easier to read code and reason about complex programs, without necessarily sacrificing much performance; PyTorch is actually pretty fast, with plenty of optimisations that you can safely forget about as an end user (but you can dig in if you really want to).

Judy - General purpose dynamic array

  •    C

Judy is a general purpose dynamic array implemented as a C callable library. Judy's speed and memory usage are typically better than other data storage models and improves with very large data sets. Judy's key benefits are scalability, high performance, and memory efficiency. A Judy array is extensible and can scale up to a very large number of elements, bounded only by machine memory. Since Judy is designed as an unbounded array, the size of a Judy array is not pre-allocated but grows and shrinks dynamically with the array population.

DynamicData - Reactive collections based on Rx.Net

  •    CSharp

Dynamic Data is a portable class library which brings the power of Reactive Extensions (Rx) to collections.Rx is extremely powerful but out of the box provides nothing to assist with managing collections. In most applications there is a need to update the collections dynamically. Typically a collection is loaded and after the initial load, asynchronous updates are received. The original collection will need to reflect these changes. In simple scenarios the code is simple. However, typical applications are much more complicated and may apply a filter, transform the original dto and apply a sort. Even with these simple every day operations the complexity of the code is quickly magnified. Dynamic data has been developed to remove the tedious code of dynamically maintaining collections. It has grown to become functionally very rich with at least 60 collection based operations which amongst other things enable filtering, sorting, grouping, joining different sources, transforms, binding, pagination, data virtualisation, expiration, disposal management plus more.