GithubHelp home page GithubHelp logo

web3j / libp2p Goto Github PK

View Code? Open in Web Editor NEW
78.0 11.0 9.0 5.17 MB

libp2p implementation in Kotlin for JVM platforms

License: Apache License 2.0

Kotlin 100.00%
libp2p kotlin java android protocols decentralized

libp2p's Introduction

Archive Notice

This project is no longer under active development and has been archived. The repository is kept for historical purposes and read-only access. No further updates or pull requests will be considered.

libp2p hex logo

The JVM (Java, Android, Kotlin) implementation of the libp2p Networking Stack.


Background

web3j-libp2p is an implementation of the libp2p modular network stack for the Java virtual machine.

Its goal is to provide a single implementation that meets the needs of Java, Android and Kotlin developers. It is written in Kotlin which was designed with Java and Android interop in mind.

The project was created by Web3 Labs with the support of the Ethereum Community Fund and advisory from members of the libp2p team at Protocol Labs.

Getting started

Versioned releases and regular snapshots will be available shortly for the various libp2p modules. Until that time, please clone the repo and you can build the artifacts yourself:

git clone https://github.com/web3j/libp2p.git
cd libp2p
./gradlew build publishToMavenLocal

Contribute

We welcome contributions from everyone.

We are currently prioritising implementation of the libp2p modules that are required for eth2.0's Serenity release. As it currently stands they are (taken from the following issue):

Library Module Available
Multiformat Multiaddr
Multihash
General Purpose Net
Peer
Crypto
Protocol Muxer Multistream(-select)
Stream Muxer Multiplex
Crypto Channels SecIO
Transport TCP
Network Abstraction Switch/Swarm
Peerstore Local database backend (KV store or SQLite)
Protocols Ping
Identify
Host Abstraction
NAT traversal
Others Floodsub/Gossipsub (w/signed message records)
Peer Routing kad-dht
Discovery Find_node (or whatever is chosen)

We recommend before starting work on a contribution that you communicate with the libp2p JVM community on the Gitter channel to express your intent to ensure no-one is already working on it.

Additionally, keep an eye on the open Pull Requests and branches to see what others are working on.

Also, please do review the project issues to identify any low hanging fruit you can get started with!

Build instructions

git clone https://github.com/web3j/libp2p.git
cd libp2p
./gradlew build publishToMavenLocal

libp2p's People

Contributors

conor10 avatar iikirilov avatar johnchanguk avatar ligi avatar nicksneo avatar snazha-blkio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libp2p's Issues

Should we work on master?

Most of the heavy lifting it's happening in the feature/interface-definitions branch. Since no one is depending yet on this project, I wonder if it makes sense to bring activity into master.

The reason is that, at first sight, this repo gives the impression of being inactive, since Github displays the default branch (master). As of today the last commit there is from 1 February.

Remove the lib folder once 3rd party libs are in a maven repo

There are some files that are not in a maven repository, instead these files have been committed alongside the code as a stop-gap measure until they are made publicly available.

These files can be found in the lib folder, at the time of this issue the dependencies are:

  1. bcprov-jdk15-on-161b20.jar: There are some classes (e.g.ECParameterSpec) that are only provided in 161-beta; we will revert this once this has been published
  2. kotlin-multibase-1.1.0.jar: This doesn't appear to be available in any maven public repo, but is a compile-time dependency for kotlin-multiaddr

Rename to jvm-libp2p

Could we rename this repo to jvm-libp2p to denote that this is a JVM implementation? This also paves the way for pulling it into the libp2p org in the future, as it matures.

Needs LICENSE file

first of all: really great to see this project - very exciting!

But this project really needs a license file for using the project and contributing to it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.