
Ark.net es la biblioteca del ecosistema ARK para la plataforma .NET. Implementa todas las funcionalidades de ARK más relevantes para ayudarlo a desarrollar aplicaciones .NET eficientes construidas en la plataforma ARK . También proporciona acceso de bajo nivel al ARK para que pueda construir fácilmente su aplicación encima.
El paquete admite:
Install-Package Ark.net Vaya al sitio web de Nuget para obtener más información.
Para compilarlo usted mismo, puede Git Clone, abrir el proyecto y presionar el botón de compilación en Visual Studio. En el símbolo del sistema:
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
Todas las respuestas del servicio de nodo ARK tienen representaciones de objetos. Puede usar clases de servicio en la carpeta de servicio. Las respuestas son IEnumerables para una lista o un objeto para un solo elemento. Cada método tiene un método async correspondiente.
Es mejor dejar que el código habla. Para obtener más ejemplos, mire las pruebas Ark.net, donde se escriben todas las pruebas y puede ver el uso de API. Algunos fragmentos de código están a continuación.
La primera llamada debe comenzar, por lo que todas las configuraciones dentro de la biblioteca pueden inicializarse antes de entrar en acción. Se pueden usar múltiples instancias de Arknetapi al mismo tiempo (Devnet y Mainnet en la misma aplicación)
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 ( ) ) ;Para obtener una lista completa de las llamadas API disponibles, mire el proyecto de prueba Ark.net
//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 ( ) ;
.. .La capa se utiliza para la comunicación de cadena de bloques de arca de núcleo (transacción, criptografía ...). Está envuelto por bibliotecas API que se llaman desde el servicio y la capa de cuenta.
//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 ) ; Cualquier marco de registro se puede usar para capturar los registros desde Arknet. Depende del usuario de la biblioteca implementar iarklogger y pasarlo a arknetapi.start (). A continuación se muestra una implementación de ejemplo usando 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 ) ; Por favor, use problemas de GitHub para preguntas o comentarios. Para solicitudes confidenciales o demandas específicas, contáctenos en nuestros canales públicos.
Si descubre una vulnerabilidad de seguridad dentro de este paquete, envíe un correo electrónico a [email protected]. Todas las vulnerabilidades de seguridad se abordarán de inmediato.
© Arkecosystem