
Ark.net é a Biblioteca do Ecossistema da Ark para a plataforma .NET. Ele implementa todas as funcionalidades da ARK mais relevantes para ajudá -lo a desenvolver aplicativos .NET eficientes construídos na plataforma ARK . Ele também fornece acesso de baixo nível à arca para que você possa criar facilmente seu aplicativo em cima dele.
O pacote suporta:
Install-package ark.net vá no site da Nuget para obter mais informações.
Para compilá -lo sozinho, você pode git clone, abrir o projeto e pressionar o botão Compilar no Visual Studio. No prompt de comando:
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
Todas as respostas do serviço de nó arca têm representações de objetos. Você pode usar classes de serviço na pasta de serviço. As respostas são ienumerable para uma lista ou um objeto para um único item. Todo método possui um método Async correspondente.
É melhor deixar o código falar. Para mais exemplos, observe os testes do Ark.NET, onde todos os testes estão escritos e você pode ver o uso da API. Alguns trechos de código estão abaixo.
A primeira chamada precisa ser iniciada, para que todas as configurações da biblioteca possam inicializar antes de entrar em ação. Várias instâncias de Arknetapi podem ser usadas ao mesmo tempo (Devnet & MainNet no mesmo aplicativo)
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 obter uma lista completa de chamadas de API disponíveis, consulte o projeto de teste 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 ( ) ;
.. .A camada é usada para a comunicação de blockchain da arca (transação, criptografia ...). É envolvido por bibliotecas de API que são chamadas da camada de serviço e conta.
//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 ) ; Qualquer estrutura de registro pode ser usada para capturar os logs do Arknet. Cabe ao usuário da biblioteca implementar o iarklogger e passá -lo para arknetapi.start (). Abaixo está um exemplo de implementação 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 do GitHub para perguntas ou feedback. Para solicitações confidenciais ou demandas específicas, entre em contato conosco em nossos canais públicos.
Se você descobrir uma vulnerabilidade de segurança dentro deste pacote, envie um e-mail para seguranç[email protected]. Todas as vulnerabilidades de segurança serão abordadas prontamente.
© Arkecosystem