Skip to content

Latest commit

 

History

History
468 lines (321 loc) · 19.7 KB

RaportWyborBibliotekiImplementacjaEtap1.md

File metadata and controls

468 lines (321 loc) · 19.7 KB

Raport - wybór biblioteki dla realizacji implementacji

C#

Komponent: dotNetRDF

Krótki opis

dotNetRDF is a powerful and flexible API for working with RDF and SPARQL in .Net environments dotNetRDF

dotNetRDF is a powerful and flexible API for working with RDF and SPARQL in .Net environments, for details and documentation on the project please see our website at dotnetrdf.org

To get started with using dotNetRDF you may want to check out the following resources:

  • User Guide - Series of articles detailing how to use various features of the library
  • Developer Guide - Some advanced documentation
  • MSDN Style API - MSDN style documentation for the entire API

License

dotNetRDF is licensed under the MIT License, see the LICENSE.txt file in this repository

  • technologia C#
  • funkcja triplestore API

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 4
  • Możliwość równomiernego rozłożenia prac 3
  • Licencja MIT
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu społeczny, ilość aktywnych developerów: 10
  • Ocena kodu przez społeczność
    • ilość gwiazdek - 40
    • ilość forków - 8,
    • ilość osób śledzących - 12
    • ilość otwartych problemów - 60
    • aktywność projektu

Komponent: Nethereum

Krótki opis

Bringing the love of Ethereum to .Net

Nethereum is the .Net integration library for Ethereum, it allows you to interact with Ethereum clients like geth, eth or parity using RPC. The library has very similar functionality as the Javascript Etherum Web3 RPC Client Library. All the JSON RPC/IPC methods are implemented as they appear in new versions of the clients. The geth client is the one that is closely supported and tested, including its management extensions for admin, personal, debugging, miner. Interaction with contracts has been simplified for deployment, function calling, transaction and event filtering and decoding of topics. The library has been tested in all the platforms .Net Core, Mono, Linux, iOS, Android, Raspberry PI, Xbox and of course Windows

  • technologia C#
  • funkcja ethereum API

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 3
  • Możliwość równomiernego rozłożenia prac 3
  • Licencja open source
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu społeczny, ilość aktywnych developerów: 9
  • Ocena kodu przez społeczność
    • ilość gwiazdek - 181
    • ilość forków - 89,
    • ilość osób śledzących - 47
    • ilość otwartych problemów - 28
    • aktywność projektu

Komponent: CSharp2nem

Krótki opis

The CSharp2nem Api wrapper library is designed to simplify development on and use of the nem blockchain. CSharp2nem flexibly supports mainnet, testnet and mijin.

  • technologia C#
  • Funkcja Nem BlockChain API

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 2
  • Możliwość równomiernego rozłożenia prac 3
  • Licencja MIT
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu NEM Project (firma), ilość aktywnych developerów: 2
  • Ocena kodu przez społeczność
    • ilość gwiazdek - 2
    • ilość forków - 0
    • ilość osób śledzących - 6
    • ilość otwartych problemów - 0
    • aktywność projektu - 74 commity, 3 branche, 2 kontrybutorów, ostatni commit: < 1 miesiąc temu

Dodatkowe informacje

  1. Artykuł dot. porównania Ethereum vs NEM: link
  2. Porównanie Ethereum vs NEM - reddit: Ethereum vs NEM
  3. Landstead - rejestr ziem i własności: Landstead - Land and property registry - rozwiązanie bazujące na NEM BlockChain
  4. Wpis o Mijin - Permissioned BlockChain Platform opartej o NEM: link

Komponent: NStratis

Krótki opis

NStratis is a fork of NBitcoin with additional support for:
  • POS (Proof of Stake) mining algorithm
  • Hash functions for the X13 POW mining algorithm

NStratis is targeted to the Stratis blockchain . It's the core component of the Stratis FullNode framework, a port of the bitcoin blockchain in C#

  • technologia C#
  • Funkcja BlockChain Development Framweork oficjalnie tak to nazwali; wstępny przegląd bardziej wygląda jak implementacja własnej kryptowaluty na bazie BitCoina

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 2
  • Możliwość równomiernego rozłożenia prac 3
  • Licencja MIT
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu Stratis (firma), ilość aktywnych developerów: 36
  • Ocena kodu przez społeczność
    • ilość gwiazdek - 40
    • ilość forków - 213
    • ilość osób śledzących - 18
    • ilość otwartych problemów - 2
    • aktywność projektu - 1755 commitów, 5 branchów, 36 kontrybutorów, ostatni commit: < 1 dzień temu
    • raczej nieprzydatne w początkowej fazie ze względu na nie do końca pasującą funkcję komponentu, jednak możliwe wykorzystanie pewnych fragmentów w etapie późniejszym, jak np: PoS

Dodatkowe informacje

  1. Przykładowe kody programowania BlockChain w .NET (w oparciu o NBitCoin, którego forkiem jest NStratis): GitHub
  2. Pdf "Blockchain Programming in C#": link

Java

Komponent web3j

Krótki opis

web3j is a lightweight, reactive, type safe Java and Android library for integrating with clients (nodes) on the Ethereum network

Features:

  • Complete implementation of Ethereum's JSON-RPC client API over HTTP and IPC
  • Ethereum wallet support
  • Auto-generation of Java smart contract wrappers to create, deploy, transact with and call smart contracts from native Java code
  • Support for Parity's Personal, and Geth's Personal client APIs
  • Support for Infura, so you don't have to run an Ethereum client yourself

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 1
  • Możliwość równomiernego rozłożenia prac 1
  • Licencja: Apache License 2.0
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu społeczny, ilość aktywnych developerów: 9
  • Ocena kodu przez społeczność
    • ilość gwiazdek - 221
    • ilość forków - 86
    • ilość osób śledzących - 45
    • ilość otwartych problemów - 23
    • aktywność projektu - 303 commitów, 4 branch, 18 kontrybutorów

Eclipse RDF4J (poprzednio: Sesame)

Krótki opis

RDF4J udostępnia programowalne API, za pomocą którego można tworzyć modele RDF, dodawać i usuwać trójki, zapisywać do pliku i odczytywać (wspierane są różne formaty: RDF/XML, Turtle, N-Triples, Json-LD; cała dostępna lista tutaj). Przykłady użycia API można znaleźć pod tym adresem.

RDF4J udostępnia następujące aplikacje do zarządzania repozytoriami RDF:

  • RDF4J Server - aplikację serwerową uruchamianą w kontenerze serwletów Javy. Stanowi back-end dla systemu zarządzania repozytoriami. Udostępnia końcówkę SPARQL-ową.
  • RDF4J Workbench - front-end dla RDF Servera.
  • RDF4J Console

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 1
  • Możliwość równomiernego rozłożenia prac 1
  • Licencja: Eclipse Distribution License (EDL) v1.0
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu Fundacja Eclipse, open source, ilość aktywnych developerów: 15
  • Ocena kodu przez społeczność (na podstawie GitHuba)
    • ilość gwiazdek - 83
    • ilość forków - 31
    • ilość osób śledzących - 19
    • ilość otwartych problemów - 245
    • aktywność projektu - 928 commitów, 7 branch, 15 kontrybutorów

Apache Jena

Przy wyborze triplestore brana była pod uwagę platforma Apache Jena - SPARQL Endpoint Fuseki używający serializacji HDT (https://github.com/rdfhdt/hdt-java/tree/master/hdt-fuseki), jednak na tym etapie ze względu na szczegóły implementacyjne (w projekcie założono obecność w dużej liczby named graphs - w Apache Jena każdemu z nich odpowiada "otwarty plik", co przy ograniczeniach na liczbę jednocześnie otwartych plików, obecnych na poziomie systemów operacyjnych, stanowi istotny problem w skalowalności rozwiązania) zostało ono odrzucone.

Krótki opis

Apache Jena udostępnia programowalne API w Javie. Za pomocą API można tworzyć i modyfikować modele RDF, wczytywać je z plików i zapisywać do plików. Obsługiwane serializacje RDF można znaleźć w tutaj. Przykłady użycia API znajdują się w dokumentacji projektu oraz w innym naszym projekcie: SearchInsights.

Jena dostarcza również natywnego TS, który nazywa się TDB. Oprócz TDB, istnieje również możliwość użycia Fuseki jako serwera SPARQL, ale nie jestem pewien czy można komunikować się z nim bezpośrednio za pomocą programowalnego API (raczej nie).

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 3
  • Możliwość równomiernego rozłożenia prac 1
  • Licencja: Apache License 2.0
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu Fundacja Apache, open source, ilość aktywnych developerów: 31
  • Ocena kodu przez społeczność (na podstawie GitHuba)
    • ilość gwiazdek - 340
    • ilość forków - 278
    • ilość osób śledzących - 63
    • ilość otwartych problemów - Brak danych
    • aktywność projektu - 5989 commitów, 2 branch, 31 kontrybutorów (na podstawie mirrora)

JavaScript

Komponent naivechain

Krótki opis

naivechain to implementacja prostego BC w języku JavaScript, wykorzystująca framework node.js, zawarta w ok. 200 liniach kodu. Nie jest to biblioteka do tworzenia BC, ale gotowa, choć bardzo prosta i ograniczona, implementacja BC. naivechain działa jako serwer HTTP oraz udostępnia web service'y do połączeń typu P2P pomiędzy poszczególnymi węzłami. Najważniejsze cechy tej implementacji to:

  • Interfejs HTTP do zarządzania węzłami.
  • Websockety używane do komunikacji z innymi węzłami (P2P).
  • Komunikacja P2P używana do rejestrowania nowych węzłów i rozgłaszania nowych bloków.
  • Blok składa się z:
    • indeksu,
    • poprzedniego hasha,
    • timestampa,
    • danych (dowolny napis),
    • hasha: sha256(indeks + poprzedni hash + timestamp + dane)

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 2
  • Możliwość równomiernego rozłożenia prac 1 (ew. 2 jeżeli weźmiemy pod uwage RR)
  • Licencja: Apache License 2.0
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu społeczny, ilość aktywnych developerów: 9
  • Ocena kodu przez społeczność
    • ilość gwiazdek - 1692
    • ilość forków - 233,
    • ilość osób śledzących - 99
    • ilość otwartych problemów - 6
    • aktywność projektu - 9 commitów, 1 branch, 2 kontrybutorów

C++

Komponent: Ethereum C++ client

Krótki opis

It is the third most popular of the Ethereum clients, behind geth (the go client) and Parity (the rust client). The code is exceptionally portable and has been used successfully on a very broad range of operating systems and hardware. cpp-ethereum

License

GNU General Public License v3.0 GPL-3.0

  • technologia C++
  • funkcja ethereum API

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 5
  • Możliwość równomiernego rozłożenia prac 5
  • Licencja GPL-3.0
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu społeczny, ilość aktywnych developerów: ?
  • Ocena kodu przez społeczność (2017-07-14, godz. 09:00)
    • ilość gwiazdek - 1388
    • ilość forków - 949
    • ilość osób śledzących - 292
    • ilość otwartych problemów - 254
    • aktywność projektu - wysoka (??)

WAŻNE OWLchain

Komponent: HDT

Krótki opis

HDT (Header, Dictionary, Triples) is a compact data structure and binary serialization format for RDF that keeps big datasets compressed to save space while maintaining search and browse operations without prior decompression. HDT

  • The size of the files is smaller

  • The HDT file is already indexed

  • High performance querying

  • Highly concurrent

  • The format is open

  • C++ and Java libraries / command line tools to create and search HDT files.

  • HDT-it! GUI to create and browse HDT files from your desktop: HDT-it! GUI tool

  • Jena Integration to have a Jena Model on top of a given HDT file

  • Raptor RDF Parser Library 2.x (optional) This enables importing RDF data in many serialization formats, e.g., RDF/XML, Turtle, N3, etc

License

  • The libraries are open source (LGPL)
  • technologia C++
  • funkcja binary serialization format

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac 5
  • Możliwość równomiernego rozłożenia prac 5
  • Licencja LGPL
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu społeczny, ilość aktywnych developerów: ?
  • Ocena kodu przez społeczność (2017-07-14, godz. 09:00)
    • ilość gwiazdek - 31
    • ilość forków - 14
    • ilość osób śledzących - 19
    • ilość otwartych problemów - 8
    • aktywność projektu - niska (???)

Komponent: Redland

Krótki opis

Redland is a set of free software C libraries that provide support for the Resource Description Framework (RDF). Redland

  • Modular, object based libraries and APIs for manipulating the RDF graph, triples, URIs and Literals.
  • Storage for graphs in memory and persistently with Oracle Berkeley DB, MySQL 3-5, PostgreSQL, OpenLink Virtoso, SQLite, files or URIs.
  • Support for multiple syntaxes for reading and writing RDF as RDF/XML, N-Triples and Turtle, RSS and Atom syntaxes via the Raptor RDF Syntax Library.
  • Querying with SPARQL and RDQL using the Rasqal RDF Query Library.
  • Data aggregation and recording provenance support with Redland contexts.
  • Language Bindings in Perl, PHP, Python and Ruby via the Redland Bindings package.
  • Command line utility programs rdfproc (RDF), rapper (parsing) and roqet (query).
  • Portable, fast and with no known memory leaks.

License

All Redland packages are free software / open source software and released under the LGPL 2.1, GPL 2 or Apache 2 licenses as alternatives. See the individual package license files for full details and any exceptions.

  1. The GNU Lesser General Public License (LGPL) Version 2.1 or any newer version lgpl-2.1
  2. GNU General Public License (GPL) V2 or any newer version gpl-2
  3. The Apache License V2.0 or any newer version asl-2.0
  • technologia C
  • funkcja triplestore API

Namiary

Ocena

  • Możliwość wykorzystania dotychczasowych prac ?
  • Możliwość równomiernego rozłożenia prac ?
  • Licencja LGPL/GPL/Apache
  • Dostęp do kodu źródłowego czytaj, pull request, fork
  • Właściciel kodu społeczny, ilość aktywnych developerów: ??
  • Ocena kodu przez społeczność (2017-07-14, godz. 09:00) - różne oceny dla poszczególnych modułów kodu (librdf, rasqal, raptor, redland-bindings)
    • ilość gwiazdek - 63
    • ilość forków - 18
    • ilość osób śledzących - 11
    • ilość otwartych problemów -
    • aktywność projektu - średnia (???)

Projekty używające modułów Redland

  • owlcpp is an open-source C++ library for parsing, querying, and reasoning with OWL 2 ontologies. owlcpp opis
  • BRAHMS is designed as a fast main-memory RDF/S storage BRAHMS, The Semantic Web
  • Soprano (formally known as QRDF) is a library which provides a nice Qt interface to RDF storage solutions Soprano

Wzór

Komponent:

Krótki opis

  • technologia język/środowisko
  • Funkcja

Namiary

  • Link do opisu biblioteki: Nazwa
  • Link do kodu: Nazwa

Ocena

  • Możliwość wykorzystania dotychczasowych prac ocena 2..5
  • Możliwość równomiernego rozłożenia prac ilość potencjalnych developerów
  • Licencja [MIT, .....]
  • Dostęp do kodu źródłowego brak, czytaj, czytaj/pisz, pull request, fork, itp
  • Właściciel kodu firma, społeczny, ilość aktywnych developerów
  • Ocena kodu przez społeczność
    • ilość gwiazdek
    • ilość forków,
    • ilość osób śledzących
    • ilość otwartych problemów
    • aktywność projektu