
Ark.net - это библиотека Ecosystem ARK для платформы .NET. Он реализует все наиболее важные функции ARK, которые помогут вам разработать эффективные приложения .NET, основанные на платформе ARK . Он также обеспечивает низкий доступ к ARK, чтобы вы могли легко построить свое приложение поверх него.
Пакет поддерживает:
Install-package ark.net Перейдите на веб-сайте Nuget для получения дополнительной информации.
Чтобы скомпилировать его самостоятельно, вы можете скинуть клон, открыть проект и нажать кнопку компиляции в Visual Studio. В командной строке:
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
Все ответы службы ARK-узла имеют представления объектов. Вы можете использовать сервисные классы в папке службы. Ответы подходят для списка или объекта для одного элемента. Каждый метод имеет соответствующий асинхенный метод.
Лучше всего позволить коду говорить. Для получения дополнительных примеров посмотрите на тесты ark.net, где написаны все тесты, и вы можете увидеть использование API. Некоторые фрагменты кода ниже.
Первый вызов должен быть запустим, поэтому все настройки в библиотеке могут инициализировать перед тем, как вступить в действие. Несколько экземпляров Arknetapi можно использовать одновременно (Devnet & Mainnet в одном и том же приложении)
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 ( ) ) ;Для получения полного списка доступных вызовов API, пожалуйста, посмотрите на тестовый проект 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 ( ) ;
.. .Слой используется для ядра Ark Blockchain Communice (транзакция, Crypto ...). Он обернут библиотеками API, которые вызываются со уровня службы и учетной записи.
//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 ) ; Любая платформа ведения журнала может использоваться для захвата журналов из Аркне. Пользователь библиотеки должен реализовать Iarklogger и передать его Arknetapi.start (). Ниже приведен пример реализации с использованием 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 ) ; Пожалуйста, используйте проблемы GitHub для вопросов или обратной связи. Для конфиденциальных запросов или конкретных требований свяжитесь с нами по нашим публичным каналам.
Если вы обнаружите уязвимость безопасности в этом пакете, отправьте электронное письмо по адресу [email protected]. Все уязвимости безопасности будут быстро рассмотрены.
© Arkecosystem