
Ark.net ist die Ark -Ökosystembibliothek für die .NET -Plattform. Es implementiert alle relevantesten ARK -Funktionen, mit denen Sie effiziente .NET -Anwendungen entwickeln können, die auf der ARK -Plattform basieren . Es bietet auch einen niedrigen Zugang zu ARK, sodass Sie Ihre Anwendung problemlos darauf erstellen können.
Das Paket unterstützt:
Installieren Sie Package Ark.net finden Sie auf der Nuget-Website, um weitere Informationen zu erhalten.
Um es selbst zu kompilieren, können Sie Klon klonen, das Projekt öffnen und die Kompilier -Taste auf Visual Studio drücken. In der Eingabeaufforderung:
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
Alle Ark-Knoten-Dienstantworten haben Objektdarstellungen. Sie können Serviceklassen unter Serviceordner verwenden. Antworten sind für eine Liste oder ein Objekt für ein einzelnes Element iEnumerableable. Jede Methode hat eine entsprechende asynchronisierende Methode.
Es ist am besten, den Code zu sprechen. Weitere Beispiele finden Sie in den Ark.net -Tests, bei denen alle Tests geschrieben werden und Sie die API -Verwendung sehen können. Einige Codeausschnitte sind unten.
Der erste Anruf muss gestartet werden, sodass alle Einstellungen in der Bibliothek vor der Aktion initialisieren können. Mehrere Instanzen von Arknetapi können gleichzeitig verwendet werden (Devnet & Mainnet in derselben Anwendung)
private ArkNetApi _arkNetApi ;
public ArkNetApi ArkNetApi
{
get { return _arkNetApi ?? ( _arkNetApi = new ArkNetApi ( ) ) ; }
}
await ArkNetApi . Start ( NetworkType . MainNet ) ; //Other type is DevNet
//or
await ArkNetApi . Start ( specificPeerIp , specificPeerPort ) ;
//or (Multiple addresses)
await ArkNetApi . Start ( listArkPeerAddresses ) ; //Existing account
var accCtnrl = new AccountController ( ArkNetApi , "top secret pass" ) ;
//Send ARK
var result = accCtnrl . SendArk ( 100 , "AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk" , "Akr.Net test trans from Account" ) ;
//Vote 4 Delegate
var result = accCtnrl . VoteForDelegate ( delegateName ) ;
//Un-Vote Delegate
var result = accCtnrl . UnVoteDelegate ( delegateName ) ;
//Create and send transaction. Transaction can be saved offine (.ToJson()) and sent later.
var transaction = accCtnrl . CreateTransaction ( 100 , "AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk" , "Akr.Net test trans from Account" ) ;
var result = accCtnrl . SendTransaction ( transaction ) ;
//Get Account
var account = accCtnrl . GetArkAccount ( ) ;
//New Account
new AccountController ( ArkNetApi , ArkNetApi . AccountService . GeneratePassphrase ( ) ) ;Eine vollständige Liste der verfügbaren API -Anrufe finden Sie unter dem Ark.net -Testprojekt
//PeerService
var peers = ArkNetApi . PeerService . GetAll ( ) ;
var peersOK = peers . Where ( x => x . Status . Equals ( "OK" ) ) ;
//TransactionService
var trans = ArkNetApi . TransactionService . GetAll ( ) ;
//BlockService
var blocks = ArkNetApi . BlockService . GetAll ( ) ;
//AccountService - Generate passphrase
var result = ArkNetApi . AccountService . GeneratePassphrase ( ) ;
//DelegateService
var delegates = ArkNetApi . DelegateService . GetAll ( ) ;
//LoaderService
var autoConfigParams = ArkNetApi . LoaderService . GetAutoConfigureParameters ( ) ;
.. .Die Schicht wird für die Kern -Ark -Blockchain -Kommunikation (Transaktion, Krypto ...) verwendet. Es wird von API -Bibliotheken abgeschlossen, die aus der Dienst- und Kontoebene aufgerufen werden.
//Create & send transaction
TransactionApi tx = ArkNetApi . TransactionApi . CreateTransaction ( recepient , amount , description , passphrase ) ;
Peer peer = ArkNetApi . NetworkApi . GetRandomPeer ( ) ;
var result = peer . PostTransaction ( tx ) ;
//Connect to a specific peer to perform requests
var peerApi = new PeerApi ( ArkNetApi , ipAddress , Port )
await peerApi . MakeRequest ( ArkStaticStrings . ArkHttpMethods . GET , ArkStaticStrings . ArkApiPaths . Loader . GET_STATUS ) ;
//Force specific peer. All API calls will flow through this peer. Set back to null to resume decentralized use. Monitoring a specific peer is a use case for this functionality.
ArkNetApi . NetworkApi . ForcedPeer = ArkNetApi . PeerService . GetPeer ( ip , port ) ;
//or
ArkNetApi . NetworkApi . ForcedPeer = new PeerApi ( ArkNetApi , ipAddress , Port ) ;
// Switch network (Can also create new ArkNetApi instance as alternative solution)
await ArkNetApi . SwitchNetwork ( NetworkType . DevNet )
//New network
_arkNetApiDevNet = new ArkNetApi ( ) ;
await _arkNetApiDevNet . Start ( NetworkType . DevNet ) ; Jedes Protokollierungs -Framework kann verwendet werden, um die Protokolle innerhalb von Arknet aus zu erfassen. Es liegt an dem Benutzer der Bibliothek, Iarklogger zu implementieren und an arknetapi.start () weiterzugeben. Im Folgenden finden Sie eine Beispielimplementierung mit Log4Net.
public class Log4netAdapter : IArkLogger
{
private readonly ILog _log4NetLog ;
public Log4netAdapter ( ILog log4NetLog )
{
_log4NetLog = log4NetLog ;
}
public void Log ( ArkLogEntry entry )
{
if ( entry . LogLevel == ArkLogLevel . Debug )
_log4NetLog . Debug ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Info )
_log4NetLog . Info ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Warn )
_log4NetLog . Warn ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Error )
_log4NetLog . Error ( entry . Message , entry . Exception ) ;
else
_log4NetLog . Fatal ( entry . Message , entry . Exception ) ;
}
}
ILog log = LogManager . GetLogger ( typeof ( LoggingTests ) ) ;
await ArkNetApi . Start ( NetworkType . MainNet , new Log4netAdapter ( log ) ; Bitte verwenden Sie GitHub -Probleme für Fragen oder Feedback. Für vertrauliche Anfragen oder spezifische Anforderungen kontaktieren Sie uns auf unseren öffentlichen Kanälen.
Wenn Sie in diesem Paket eine Sicherheitsanfälligkeit entdecken, senden Sie bitte eine E-Mail an [email protected]. Alle Sicherheitslücken werden umgehend angesprochen.
© Arkecosystem