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:'''

   * priv...@cava.incubator.apache.org (with moderated subscriptions)
   * d...@cava.incubator.apache.org
   * us...@cava.incubator.apache.org
   * comm...@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?

Reply via email to