Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A comprehensive Java library for the Nano cryptocurrency.

License

NotificationsYou must be signed in to change notification settings

blockracer/jNano

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jNano | Java library for Nano

Maven Central

jNano is a Java library used to make integrations with theNano cryptocurrency simple.This library allows you to interface with thenodevia RPC requests, and also provides many native tools and utilities so that a node isn't always necessary.

Nano is a crypto-currency which offers instantaneous and fee-less transactions. For more information, visithttps://nano.org.


Technical details

  • This library requiresJava 8+ (moduleuk.oczadly.karl.jnano for versions 9+)
  • Fully compatible with clone cryptocurrencies (eg.Banano)
  • Built and managed throughMaven
  • List of dependencies

Features

This library provides simple access to the following facilities:


Usage

Download

This project is hosted on Maven Central. You can also download the compiled JAR directly fromhere.

Maven

<dependency>    <groupId>uk.oczadly.karl</groupId>    <artifactId>jnano</artifactId>    <version>2.20.1</version></dependency>

Gradle

dependencies {    implementation'uk.oczadly.karl:jnano:2.20.1'}

Documentation

Examples

RPC Queries[Wiki]

To make queries to an external Nano node through the RPC system, you will need to use theRpcQueryNodeclass. You can customize these objects even further by constructing using the nestedBuilder class.

RpcQueryNoderpc =newRpcQueryNode();// Using localhost:7076RpcQueryNoderpc =RpcServiceProviders.nanex();// Using nanex.cc public API

This example will print an account's balance to the console using a synchronous (blocking) call.

// Construct and execute the request, and obtain the responseResponseBalancebalance =rpc.processRequest(newRequestAccountBalance("nano_34qjpc8t1u6wnb584pc4iwsukwa8jhrobpx4oea5gbaitnqafm6qsgoacpiz"));// Handle the result object however you wish (eg. print the balance)System.out.println("Account balance: " +balance.getTotal());

WebSockets (listening for blocks)[Wiki]

The following will create a WebSocket listener which connects to port7078 onlocalhost. For each new blockconfirmed by the node, the hash and type will be printed to the console.

NanoWebSocketClientws =newNanoWebSocketClient();// Defaults to localhost:7078ws.connect();// Connect to the endpoint// Register a listener (will be called for each new block)ws.getTopics().topicConfirmedBlocks().registerListener((message,context) -> {// Print the hash and type of all confirmed blocksSystem.out.printf("Confirmed block: %s (%s)%n",message.getHash(),message.getBlock().getType());});// Subscribe to the block confirmations topicws.getTopics().topicConfirmedBlocks().subscribeBlocking(newTopicConfirmation.SubArgs()        .includeBlockContents()// Include block info in messages        .filterAccounts(// Only receive blocks for these accounts"nano_34qjpc8t1u6wnb584pc4iwsukwa8jhrobpx4oea5gbaitnqafm6qsgoacpiz","nano_1ipx847tk8o46pwxt5qjdbncjqcbwcc1rrmqnkztrfjy5k7z4imsrata9est"));

Block Creation[Wiki]

The following sample will create a newstate block. The block will be signed using the provided private key, andwork will be generated in the JVM using the CPU.

WorkGeneratorworkGenerator =newCPUWorkGenerator();// Note: construct once and re-useStateBlockblock =StateBlock.builder()        .subtype(StateBlockSubType.OPEN)        .link("BF4A559FEF44D4A9C9CEF4972886A51FC83AD1A2BEE4CDD732F62F3C166D6D4F")        .balance("123000000000000000000000000")        .generateWork(workGenerator)        .buildAndSign("A3293644AC105DEE5A0202B7EF976A06E790908EE0E8CC43AEF845380BFF954E");// Private keyStringhash =block.getHash().toHexString();// Hashes the blockStringblockJson =block.toJsonString();// Serializes the block to JSON

Dependencies

This project requires the following dependencies, which are included automatically through Maven:


If you found this library useful and would like to support my work, donations may be sent tonano_34qjpc8t1u6wnb584pc4iwsukwa8jhrobpx4oea5gbaitnqafm6qsgoacpiz -any amount would be greatly appreciated :D

About

A comprehensive Java library for the Nano cryptocurrency.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java99.6%
  • C0.4%

[8]ページ先頭

©2009-2025 Movatter.jp