incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antoine Toulme <anto...@toulme.name>
Subject [PROPOSAL] New blockchain project: Cava
Date Tue, 05 Feb 2019 22:42:31 GMT
Hi all,

We’d like to start a conversation around a new proposal for a set of Java-based blockchain
project.

I have written a proposal available here, and reproduced below: https://wiki.apache.org/incubator/CavaProposal
<https://wiki.apache.org/incubator/CavaProposal>

At this time, we have a champion, Jim Jagielski (thanks Jim), and would like to recruit additional
developers and mentors.

We have deliberately left room on the project charter to engage openly with the community.
That said, we would start the project with code coming from ConsenSys, and we will recruit
developers from there and elsewhere actively.

The goal of this thread is engage with the community and gather interest for participation
in the project. Please let us know what you think!

Cheers,

Antoine Toulme

== Abstract ==
Cava is a set of libraries and other tools to aid development of blockchain and other decentralized
software in Java and other JVM languages.

Please note: Cava is a contraction of "ConsenSys Java". The community should consider an alternate
name.

= Proposal =

Cava is a set of libraries and other tools to aid development of blockchain and other decentralized
software in Java and other JVM languages.
It includes a low-level bytes library, serialization and deserialization codecs (e.g. RLP),
various cryptography functions and primatives, and lots of other helpful utilities.
Cava is developed for JDK 1.8 or higher, and depends on various other FOSS libraries.

=== Background ===

Cava was built as an open source project from the grounds up to accelerate the maturation
of the blockchain ecosystem, particularly in relation with enterprise products predominantly
built in Java.
Cava is used by several products today: Orion, Pantheon, and Artemis from Pegasys.

Cava libraries are also used in various experiments regarding scalability, such as Canto.

Several other community members would want to leverage Cava and would benefit from working
directly on the project outside of the influence of the original corporate sponsor, ConsenSys.

=== Rationale ===

Cava is organized as set of libraries that form the basis of most blockchain, distributed
ledgers or cryptography work.

Most of the work built for Cava was meant for Ethereum, but can be reused across other blockchain
technologies.

There is a need for blockchain implementors to use well trusted, production-ready software
to bootstrap their efforts.

=== Initial Goals ===

The goal is to form a community of developers and adopters who will be able to collaborate
openly around blockchain technologies and mature frameworks 
to reduce risk when implementing blockain-related projects.

=== Current Status ===

The project is well established and counts 2 active committers. Some contributions were made
from the community.

The project has made several releases, distributed through Maven Central, with GPG signatures
and proper Maven metadata published.

'''Meritocracy:'''

Active discussions on github issues and PRs has helped identify new possible commiters.

Our main goal, moving to Apache is to promote our project as a meritocracy under the guideline
of the Apache Way to help foster a community around our efforts.

 * '''Community:'''

Blockchain protocol developers organize well in communities, and some lively discussions take
place over Twitter, Gitter, Telegram.

We would like to create a community for dedicated Java developers to contribute to the blockchain
space.

We currently have a little activity through the channels mentioned above, but no channel dedicated
specifically to Cava is seeing a lot of traction.

 * '''Core Developers:'''

Cava was built by two developers with a long experience in open source work. Both lead separate
open source projects.
One of the developers is the PMC Chair for Apache Buildr and a committer for Apache ODE.

 * '''Alignment:'''

We believe there isn't a blockchain TLP for Java at Apache at this time and would like to
participate in establishing a presence in that domain of expertise.

We would rely and integrate closely with a number of projects hosted by the ASF such as Apache
Camel.

'''Known Risks'''

 * '''Orphaned products''':

The contributors are committed to the development of the blockchain space and are employed
by a leading vendor in blockchain.

The source code is used in a production setting by critical projects.

However, the number of initial developers and contributors is small, and we will need to ramp
up our recruitment efforts.

 * '''Inexperience with Open Source:'''

The project was started from scratch as an open source project. All committers have experience
with open source projects.

We did not make the effort of creating a detailed roadmap and organizing a collaborative approach
to reaching to the community for feedback.
We aim to rely on the ASF infrastructure, especially Jira, to help create more visibility
in this regard.

 * '''Length of Incubation:'''

 We will remain in incubation for a period of no less than a year so we can properly invest
and build a community of users, contributors and committers around our goals.

 * '''Homogenous Developers:'''

The current list of committers is made of folks working or having worked for the same company.

We will aggressively expand to new populations of developers, from a geographical and domain
perspective.

We believe there is a category of enterprise Java developers who are not experimenting with
blockchain technologies because it looks immature or is built in other languages.
We believe addressing this gap will help create a healthy community around the project.

 * '''Reliance on Salaried Developers''':

The project is made first and foremost of volunteers. One of the initial committers is salaried
by one of the sponsors.

Given the level of interest into the project, we firmly believe the project would continue
without salaried developers contributing to the project.

 * '''Relationships with Other Apache Products:'''

We will work with other Apache and open source projects to help ensure we offer developers
using our framework a cohesive approach to building blockchain middleware products.
Currently the project doesn't have strong tie ins to other Apache projects, but we will investigate
how to strenghten our relationships with middleware integration projects such as Apache Camel,
queues and transport projects such as Apache Kafka, and database projects such as Apache Ignite
and Apache Cassandra.

 * '''A Excessive Fascination with the Apache Brand:'''

We rely on the Apache Way to help bake in the best community around our project. We are educated
about the sensitivity of the Apache brand and how to best preserve it.
We will make sure to work with  the Incubator PMC and the PRC to ensure the brand policies
are respected.

'''Documentation'''

You can read more about Cava at our current github repository: https://www.github.com/consensys/Cava

We publish as part of each build a complete project documentation in Dokka and Javadoc formats:
https://consensys.github.io/cava/docs/kotlin/0.6.0/cava/

'''Initial Source'''

All initial source is under the git repository present at https://www.github.com/consensys/Cava.

The source is under Apache License v2.0. All source files have headers with a copyright notice.

All contributors have signed a ICLA to assign copyright to ConsenSys, AG.


'''Source and Intellectual Property Submission Plan'''

The source is under Apache License v2.0. All source files have headers with a copyright notice.

All contributors have signed a ICLA to assign copyright to ConsenSys, AG.

We have no web properties (domain names or hosted content) outside of the github repository
and the bintray repository.

'''External Dependencies''':

The dependencies all have Apache compatible licenses. These include
   BSD, CDDL, CPL, MPL and MIT licensed dependencies.
A report of the dependencies is compiled and checked for valid licenses for each build, the
latest is:
https://851-137528592-gh.circle-artifacts.com/0/reports/license/license-dependency.html


'''Cryptography'''

The proposal involves cryptographic code directly and indirectly.

'''Required Resources''':

 * '''Mailing lists:'''

   * private@cava.incubator.apache.org (with moderated subscriptions)
   * dev@cava.incubator.apache.org
   * users@cava.incubator.apache.org
   * commits@cava.incubator.apache.org

 * '''Subversion Directory:'''

https://svn.apache.org/repos/asf/incubator/cava

 * '''Git Repositories:'''

https://git-wip-us.apache.org/repos/asf/incubator-cava.git

 * '''Issue Tracking:'''

JIRA Cava (CAVA)

'''Initial Committers'''

Antoine Toulme (toulmean at apache dot org) *

'''Interested Developers'''

TBD

'''Sponsors'''

ConsenSys would sponsor this project.

 * '''Champion:'''
 
 Jim Jagielski ( jim at apache dot org )

 * '''Nominated Mentors:'''

 Jim Jagielski ( jim at apache dot org )

 * '''Sponsoring Entity''':

 TBD - the incubator?


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message