Pages:
Author

Topic: 🔹🅰RK🔹[ANN] ARK - Криптoвaлютнaя Экocиcтeмa🔹 ICO Зaвepшeнo - page 2. (Read 103837 times)

legendary
Activity: 1708
Merit: 1615
#SWGT CERTIK Audited
Перевод
https://blog.ark.io/lets-explore-core-part-3-kernel-services-2836756675bd
Brian Faust

Давайте исследуем ARK Core: часть 3 - ядро ​​и сервисы.

Это третья часть серии статей Let Let's Explore ARK Core, в которой описывается разработка следующего основного релиза ARK Core, а также некоторые советы и рекомендации о том, как начать вносить свой вклад и создавать свою  идею сегодня.



Вступление
В первой и второй частях этой серии мы дали приблизительный обзор , как была обновлена ​​базовая инфраструктура и процесс начальной загрузки приложений. Сегодня мы узнаем, какие сервисы внутри ARK Core, почему они были внедрены и как они поддерживают работу ARK  Core.

Что такое сервис?
Прежде чем начать, мы должны подготовить почву, определив, что такое сервис внутри ARK Core. Проще говоря, сервис - это автономная функция, которая предоставляет лишь небольшую часть всей логики, составляющей ядро. Например, служба журналов, служба кэширования, служба базы данных, служба транзакций и т. д. - все они являются важными строительными блоками Core и должны легко изменяться, обслуживаться и тестироваться.

Почему были введены сервисы?
Сервисы на самом деле не все новые в Core 3.0, а скорее доработки того, как некоторые плагины работают в Core 2.0. В Core 2.0 была одна серьезная проблема, возникшая в результате позднего внедрения системы контейнеров и плагинов, она была настолько сильно фрагментирована, что потребовались плагины для таких функций, как регистраторы. Вы всегда должны будете включать эти плагины при сборке Core вместо того, чтобы они были частью единого пакета, который вам требуется.

Как были внедрены сервисы?
В Core 3.0 мы представили новый пакет под названием core-kernel, который представляет собой объединение различных пакетов, которые ранее существовали в Core 2.0. Примерами могут быть core-container, core-logger, core-event-emitter и другие
Пакет core-kernel является ядром Core 3.0 с целью устранения многих болевых точек по сравнению с предыдущими версиями, улучшения DX, сокращения шаблонов для разработчиков пакетов и, наконец, уменьшения фрагментации, от которой страдает Core 2.0.
Часть core-kernel - это каталог сервисов, который поставляется с множеством готовых сервисов, чтобы уменьшить размер шаблона, необходимый для разработки новых пакетов, и уменьшить дублирование в существующих.

-Actions
-Cache
-Config
-Events
-Filesystem
-Log
-Mixins
-Queue
-Schedule
-Validation

Мы подробнее рассмотрим эти службы в следующей части этой серии.

Регистрация ваших собственных сервисов

Регистрация ваших собственных сервисов настолько проста, насколько это возможно, и занимает всего несколько строк кода, которые выходят из коробки для разработчиков пакетов. Давайте сначала взглянем на  ServiceProvider, который поставляется с Core, чтобы уменьшить необходимый шаблон для регистрации сервисов.
Code:
@injectable()
export abstract class ServiceProvider {
    /**
     * The application instance.
     */
    @inject(Identifiers.Application)
    protected readonly app: Kernel.Application;
/**
     * The application instance.
     */
    private packageConfiguration: PackageConfiguration;
/**
     * The loaded manifest.
     */
    private packageManifest: PackageManifest;
/**
     * Register the service provider.
     */
    public abstract async register(): Promise;
/**
     * Boot the service provider.
     */
    public async boot(): Promise {
        //
    }
/**
     * Dispose the service provider.
     */
    public async dispose(): Promise {
        //
    }
/**
     * Get the manifest of the service provider.
     */
    public manifest(): PackageManifest {
        return this.packageManifest;
    }
/**
     * Set the manifest of the service provider.
     */
    public setManifest(manifest: PackageManifest): void {
        this.packageManifest = manifest;
    }
/**
     * Get the name of the service provider.
     */
    public name(): string | undefined {
        if (this.packageManifest) {
            return this.packageManifest.get("name");
        }
return undefined;
    }
/**
     * Get the version of the service provider.
     *
     * @returns {string}
     * @memberof ServiceProvider
     */
    public version(): string | undefined {
        if (this.packageManifest) {
            return this.packageManifest.get("version");
        }
return undefined;
    }
/**
     * Get the configuration of the service provider.
     */
    public config(): PackageConfiguration {
        return this.packageConfiguration;
    }
/**
     * Set the configuration of the service provider.
     */
    public setConfig(config: PackageConfiguration): void {
        this.packageConfiguration = config;
    }
/**
     * Get the configuration defaults of the service provider.
     */
    public configDefaults(): JsonObject {
        return {};
    }
/**
     * Get the configuration schema of the service provider.
     */
    public configSchema(): object {
        return {};
    }
/**
     * Get the dependencies of the service provider.
     */
    public dependencies(): Kernel.PackageDependency[] {
        return [];
    }
/**
     * Enable the service provider when the given conditions are met.
     */
    public async enableWhen(): Promise {
        return true;
    }
/**
     * Disable the service provider when the given conditions are met.
     */
    public async disableWhen(): Promise {
        return false;
    }
/**
     * Determine if the package is required, which influences how bootstrapping errors are handled.
     */
    public async required(): Promise {
        return false;
    }
}
sr. member
Activity: 812
Merit: 443
★777Coin.com★ Fun BTC Casino!
ARK Messenger Turtorial - часть первая



Приветствую всех в нашей серии учебных пособий, основанных на докозательстве концепции Proof-of-Concept (PoC) ARK Messenger. К концу этой серии вы сможете настроить свое собственное автономное и приватное приложение для обмена сообщениями. Это учебное пособие было создано частично с документацией, предоставленной делегатом Lemii в рамках его концепции подтверждения ARK Messenger, которая финансировалась Программой грантов ARK.

Чтобы сделать процесс разработки максимально простым, мы разделим эти учебные пособия на три основных части:

Часть Первая

•   Настройка среды разработки
•   Создание и развертывание мостовой цепочки локально с пользовательской конфигурацией сети

Часть вторая

•   Разработка пользовательской транзакции
•   Протестируйте пользовательскую транзакцию с локальной мостовой цепочкой
•   Разработка клиента

Часть третья

•   Развернуть мостовую цепочку
•   Запустить клиентское приложение

Как работает ARK Messenger?

Прежде чем мы углубимся, было бы полезно понять, как работает ARK Messenger!

ARK Messenger состоит из двух основных компонентов: (1) клиент; и (2) Мостовая цепочка.

•   Клиент - это интерфейсное приложение, с которым вы взаимодействуете как пользователь. Он обрабатывает все вводимые пользователем данные и обрабатывает все входящие и исходящие данные в сеть.

•   Мостовая цепочка - это блокчейн компонент приложения. Она действует как децентрализованная база данных.

Если вы хотите просмотреть код для обоих компонентов, они перечислены ниже для вашего удобства:

•   Код клиента (Client Codebase)

•   Код мостовой цепочки (Bridgechain Codebase)

Приложение ARK Messenger работает с каналами. Канал может состоять из любого количества участников. Когда пользователь создает новый канал, генерируется новый идентификатор канала и пароль. Затем пароль можно передать другим пользователям, чтобы они могли присоединиться к каналу и отправлять сообщения.

Сообщения, отправляемые на канал, шифруются и расшифровываются с использованием пароля канала в качестве seed. Все конфиденциальные данные обрабатываются локальным клиентом пользователя, и не зашифрованные данные никогда не передаются. ARK Messenger работает на собственной мостовой цепочке с настраиваемой конфигурацией сети и узла. Он также использует пользовательскую транзакцию, созданную с помощью универсального интерфейса транзакций (GTI) для обработки сообщений чата.

Попробуйте ARK Messenger на https://ARKmessenger.io

Теперь, когда у нас есть основа того, что такое ARK Messenger, мы готовы начать. Давайте рассмотрим, как настроить среду разработки.

Настройка среды разработки

Документация к Learn ARK - это идеальный способ для разработчиков пройти через процессы настройки среды разработки. Мы рекомендуем операционную систему Linux (*.deb based) в качестве среды по умолчанию. Мы официально рекомендуем и поддерживаем операционную систему Ubuntu.

Вы также можете настроить свою среду разработки, используя Docker в MacOS/Linux Docker или Docker в Windows.

Шаг 1: Настройка пользователя

После того, как вы запустили свою среду, используя ссылки выше, мы можем создать нового пользователя "arc" и добавить его в группу sudoers (разрешив выполнение root, если это необходимо).
Если вы работаете в новом облаке box/vps, например DigitalOcean, то создайте пользователя с помощью следующих команд:

Code:
sudo adduser ark
sudo usermod -aG sudo ark
# login as ark user
sudo su ark

Шаг 2: Установите Систему Управления Версиями Git

Как самое популярное программное обеспечение для управления версиями из существующих, оно является основным элементом многих рабочих процессов разработчиков, и ARK не является исключением. Загрузка Git позволит вам клонировать последнюю версию ARKCore. Загрузите его, введя следующую команду:

Code:
sudo apt-get install -y git curl apt-transport-https update-notifier

Шаг 3: Установите Node.js Runtime

Поскольку ARK Core написано исключительно на Node.js , серверной платформе для JavaScript и Typescript, установка Node.js является необходимостью для разработки ядра. Код ниже устанавливает Node.js из исходника.

Code:
sudo wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
(echo "deb https://deb.nodesource.com/node_11.x $(lsb_release -s -c) main" | sudo tee /etc/apt/sources.list.d/nodesource.list)
sudo apt-get update
sudo apt-get install nodejs -y

Шаг 4: Установите Yarn Package Manager

Yarn - это менеджер пакетов предназначенный для использования опыта npm с Node.js. Хотя yarn не является строгим требованием, во многих случаях он работает быстрее и элегантнее, чем npm. Большинство разработчиков ARK используют yarn, и поэтому вы увидите команды yarn, часто используемые в нашей документации.

Code:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
(echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list)
sudo apt-get update
sudo apt-get install -y yarn

Шаг 5: Установка Зависимостей

Зависимости необходимы для того, чтобы "core" компилировался, запускался и управлялся во время жизни в вашей среде на базе Linux. Приведенная ниже команда устанавливает некоторые из тех необходимых зависимостей, которые используются ядром или связанными сценариями.

Code:
sudo apt-get install build-essential libcairo2-dev pkg-config libtool autoconf automake python libpq-dev jq -y

Шаг 6: клонировать основной репозиторий

Давайте клонируем наш "core" репозиторий и запустим начальную "yarn setup" команду. Мы также проверим последнюю "develop" ветку.

Команда "yarn setup" использует Lerna для очистки, начальной загрузки и сборки базовых пакетов (включая перенос typescript). Для получения дополнительной информации просмотрите package.json файл в корневой папке.

Code:
git clone https://github.com/arkecosystem/core
cd core
git checkout develop
#run Lerna to clean, bootstrap and build the core packages
yarn setup

Шаг 7: Настройка базы данных разработки

ARK Core хранит все данные блокчейна в базе данных PostgreSQL. У вас есть два варианта настройки базы данных для разработки.

Выполните шаг 7.1, если вы работаете локально на компьютере разработчика и у вас есть среда docker, в противном случае выполните шаг 7.2 (например, если вы работаете в облачном экземпляре Ubuntu или предпочитаете установку собственной базы данных).

Шаг 7.1. Настройка базы данных с помощью Docker

Если вы уже используете Docker и установили docker-compose , то вы можете сгенерировать файлы Docker из командной строки с помощью команды "yarn docker ark" , где ark – это имя network , для которой вы хотите создать файлы docker. На данный момент, давайте придерживаться ark в качестве имени сети по умолчанию.

Выполнение команды "yarn docker ark" в корневой папке ранее клонированного репозитория выглядит следующим образом:

Code:
cd core  #root folder of the cloned repository
yarn docker ark

создаст следующие файлы Docker внутри нашей core/docker папки (см. дерево папок ниже):

Code:
#core/docker tree in the cloned repository folder
├── development
│   ├── devnet
│   │   ├── Dockerfile
│   │   ├── docker-compose.yml
│   │   ├── entrypoint.sh
│   │   ├── purge_all.sh
│   │   └── restore.sh
│   ├── mainnet
│   │   └── docker-compose.yml
│   ├── testnet #this is the folder where we will start our PostgreSQL testned DB
│   │   ├── Dockerfile
│   │   ├── docker-compose.yml
│   │   ├── entrypoint.sh
│   │   ├── purge_all.sh
│   │   └── restore.sh
│   └── unitnet
│       ├── docker-compose.yml
│       └── purge.sh
└── production
...

Чтобы запустить Docker-контейнер PostgreSQL, мы должны зайти в соответствующую папку и запустить "docker-compose" команду. Для testnet нам нужно запустить следующее:

Code:
cd core/docker/development/testnet
docker-compose up postgres #postgres is the name of the PostgreSQL container

docker-compose up postgres запустит контейнер PostgresSQL и предоставит его нашему ядру через стандартный порт 5432 PostgreSQL.

Шаг 7.2 Установка базы данных Postgres для всей системы

Если вы не хотите устанавливать и запускать Docker на своем локальном компьютере, вы все равно можете установить базу данных PostgreSQL в своей операционной системе. Для систем Linux на основе * .deb следующие команды:

Code:
sudo apt-get install postgresql postgresql-contrib -y
sudo -i -u postgres psql -c "CREATE USER ark  WITH PASSWORD 'password' CREATEDB;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_testnet WITH OWNER ark;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_devnet WITH OWNER ark;"

Приведенные выше команды устанавливают базу данных PostgreSQL локально и создают базы данных для запуска сетей testnet и devnet с пользователем ark в качестве владельца базы данных . Если вы пропустили Шаг 1: Настройка пользователей, вам нужно изменить имя пользователя ark на ваше имя пользователя для разработки, обычно это имя пользователя , вошедшего в систему.

Выполните вышеуказанные команды вместе в одном сценарии установки

Хотя приведенные выше шаги полезны для ознакомления с ARKCore, некоторые разработчики могут выбрать выполнение вышеперечисленных команд вместе в одном сценарии установки. Сначала создайте пользователя ARK с паролем по умолчанию password. Это облегчит нам работу с настройками по умолчанию.

Code:
#!/usr/bin/env bash
sudo adduser ark
sudo usermod -aG sudo ark
# login as ark user
sudo su - ark

После создания и входа в систему под ark пользователем вы можете выполнить следующий сценарий для установки инструментов разработки и зависимостей из Technology Stack. Если пользователь по умолчанию не является пользователем ark, вам следует скопировать и изменить источник скрипта ниже (раздел базы данных).

Code:
bash <(curl -s https://raw.githubusercontent.com/learn-ark/bash-helper-scripts/master/dev-setup.sh)

После этого:

Code:
#!/usr/bin/env bash
sudo apt-get install -y git curl apt-transport-https update-notifier
sudo wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
(echo "deb https://deb.nodesource.com/node_11.x $(lsb_release -s -c) main" | sudo tee /etc/apt/sources.list.d/nodesource.list)
sudo apt-get update
sudo apt-get install nodejs -y
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
(echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list)
sudo apt-get update
sudo apt-get install -y yarn
sudo apt-get install build-essential libcairo2-dev pkg-config libtool autoconf automake python libpq-dev jq -y
sudo apt-get install postgresql postgresql-contrib -y
sudo -i -u postgres psql -c "CREATE USER ark  WITH PASSWORD 'password' CREATEDB;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_testnet WITH OWNER ark;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_devnet WITH OWNER ark;"

Создание и развертывание мостовой цепочки локально с пользовательской конфигурацией сети

В последней части этого руководства мы будем создавать и развертывать мостовую цепочку с пользовательской конфигурацией сети.

Для этого мы будем использовать документацию, найденную в ARK Deployer Hub. После того, как вы выполните описанные там шаги, вы успешно создадите и развернете свою цепочку мостов.

При использовании bridgechain откроется множество опций для настройки сети. Вот краткое описание некоторых параметров, которые использует ARK Messenger:

Ticker: Պ
Token: MSN
Block time: 4 seconds
Forgers: 11
p2p port: 11002
API port: 11003
Webhook port: 11004


Но самое главное, что bridgechain позволяет вам запускать сеть с вашими собственными транзакциями.

Следующие шаги

В следующем части мы рассмотрим разработку пользовательской транзакции, тестирование этой транзакции на нашей мостовой цепочке и разработку клиента, который будет выполнять роль интерфейсного приложения.
Если вы застряли в какой-то точке, обязательно ознакомьтесь с нашими документами в центре обучения ARK. Кроме того, наша команда и разработчики активны в Slack, поэтому не стесняйтесь обращаться к нам!


Прочтите нашу новую  whitepaper, следите за нами в социальных сетях ( Twitter | Facebook | Reddit ), присоединяйтесь к нашему сообществу ( Slack | Discord ) и следите за обновлениями в нашем блоге на Medium и Steemit.


Перевод.
Оригинал: https://blog.ark.io/ark-messenger-tutorial-part-one-30068eb8619e
staff
Activity: 3444
Merit: 4037
Crypto Swap Exchange
Некоторые новости:
Вышел шестьдесят седьмой эпизод подкаста ARK: https://ark.io/podcast/ark-crypto-podcast-067-ark-core-values-deep-dive-speed
Tакже у проекта новый член команды - Elaine Egan, которая нанята на должность коммьюнити-менеджера, ну или по-русски - менеджер по связи с общественностью. Будет вести соц. сети проекта и т.д.

Источник: https://blog.ark.io/meet-elaine-egan-arks-newest-community-engagement-manger-e683271a683e
sr. member
Activity: 812
Merit: 443
★777Coin.com★ Fun BTC Casino!
ARK Desktop Wallet v2.9.0 - Значительные улучшения в скорости и производительности



Выпущена новая версия кошелька ARK Desktop Wallet v2.9.0 , и мы рады, что вы попробуете наши улучшения скорости и производительности. Это обновление является более быстрым, мгновенным и отзывчивым на протяжении всего вашего пути от начала до конца, но это еще не все, поэтому давайте углубимся во все изменения.

| Вы можете загрузить ARK Desktop Wallet по адресу https://ark.io/wallet или использовать новую функцию загрузки из вашего текущего кошелька (доступна в версии v2.7.0 +).

С более частыми выпусками Desktop Wallet мы хотим принести вам, пользователям, постоянный поток улучшений. Этот релиз был посвящен повышению производительности и капитальному ремонту базовой системы, которая заботится о чтении, запросе и сохранении данных (изнутри и снаружи кошелька). Одна из первых вещей, которую вы заметите - это гораздо более быстрое время загрузки при открытии кошелька. На одной из наших самых медленных тестовых машин, где было много профилей, сетей, кошельков и установленных плагинов, время начальной загрузки составляло от 40 до 12 секунд, и все это благодаря тому, как мы реинжинирировали и оптимизировали базовые процессы. После открытия вы увидите, что переключение между кошельками, вкладками, графиками и при извлечении данных происходит гораздо более плавно, чем в предыдущем выпуске.

| Дайте нам знать, что вы думаете об этих улучшениях в Twitter.

Что нового?

•   Изображения и слайдеры плагинов - сейчас мы разработали способ, позволяющий разработчикам плагинов включать скриншоты самого плагина. Изображения также можно нажимать, чтобы они расширялись. (чтобы посмотреть, как это выглядит, откройте Plugin Manager и откройте плагин ARK Explorer).



•   Модальное подтверждение закрытия транзакции - до сих пор, когда вы пытались отправить, отдать голос или инициировать любую транзакцию, если вы щелкнули за пределами модального режима, она автоматически закрывалась. Это создало болевую точку для пользователей, где они должны были бы создать новую транзакцию и ввести детали транзакции снова, если модальное закрытие произошло случайно. Теперь мы улучшили это поведение с помощью окна подтверждения.



•   Состояние открытия меню менеджера плагинов - состояние меню плагина, если вы щелкнете по меню, оно скрывается/открывается, теперь сохраняется для каждого профиля и также отображается по умолчанию.



•   Показывать альтернативные балансы в сетке кошелька - при просмотре сетки вы также можете увидеть стоимость вашей альтернативной предпочтительной валюты.



•   Добавление ссылок в список мультиплатежей при показе транзакции - получатели мультиплатежных транзакций теперь связаны с модальным показом транзакций.



•   Улучшен UX кошелька на аппаратном уровне - основные улучшения UX в аппаратных взаимодействиях, начиная от кеширования, обновления в фоновом режиме и исправления некоторых сообщений об ошибках (например, отключение при отклонении транзакции).
•   Пользовательская валидация однорангового узла - улучшенная маркировка и улучшенная валидация однорангового узла при добавлении настраиваемого однорангового узла
•   Языки на основе классов для локализации - перемещает всю логику локализации в классы и поставляется только с английским по умолчанию. Проложить путь для плагинов локализации.
•   Заменили различные методы lodash на собственные альтернативы - мы заменили многие функции lodash в Desktop Wallet его альтернативой из чистого / нативного JavaScript для повышения производительности и уменьшения площади зависимостей.
•   Заменить moment с DayJS - Заменяет все вхождения moment с dayjs.
•   Извлеченные крипто-поведения из клиентской службы - извлеченные крипто-поведения из ClientServiced каждой транзакции в свой собственный класс, дублированные крипто-утилиты в CryptoUtils класс, из которого они могут использоваться, и методы подписывания транзакций в TransactionSigner класс.
•   Отрегулирована валидация формы транзакции в bridgechain - капитальный ремонт проверки модальности регистрации в bridgechain с улучшенной проверкой полей ввода и других исправлений.
•   Обновлен Electron с v6 до v8 - серьезное обновление зависимостей, которое исправляет ошибки и улучшает каркас, используемый внутри кошелька.
•   Добавлена поддержка TypeScript - теперь файлы TypeScript можно смешивать с нашим текущим кодом.

Хотя это лишь некоторые из многих изменений, обязательно прочтите журнал изменений v2.9.0, чтобы узнать больше.

Изменения в числах
Начиная с предыдущего выпуска:

•   8 разных разработчиков вносят свой вклад в ARK Desktop Wallet.
•   71 новый коммит в ARK Desktop Wallet.
•   260 файлов изменены в ARK Desktop Wallet.
•   9173 строки кода добавлены в ARK Desktop Wallet.
•   8678 строк кода удалены из кошелька ARK Desktop.

Хеш-суммы для v2.9.0 Desktop Wallet (SHA256)

•   Linux (ark-desktop-wallet-linux-x64–2.9.0.tar.gz)
172f9b3a94558afb79ef03e39fe57931393ef05f1b7b64fe706b6990036d82da
•   MacOS (ark-desktop-wallet-mac-2.9.0.dmg)
8fbba3483f1a1e5a04de78d7c3ec48197d7ab05468ee45f4dca985c7fcb2fafe
•   Ubuntu (ark-desktop-wallet-linux-amd64–2.9.0.deb)
b49603a310a7803696ebd27f77fe01c3dbc25837fe8fde4a272bf2a5d2c30b75
•   Windows X86 & X64 (ark-desktop-wallet-win-2.9.0.exe)
b3d3acd60432c7460937fb12dfe0db3e27f9b768423123f4906920bd9bea19e7
•   Linux-AppImage (ark-desktop-wallet-linux-x86_64–2.9.0.AppImage)
959e075c87dd71ee270e4e6a82fddb48e5cdb006a6cdf11ace9f363ef9a1fcb0

Я нашел ошибку/проблему - что мне делать?
Пожалуйста, откройте вопрос со всеми подробностями на странице ARK Desktop Wallet .

Я хочу помочь с развитием - что мне делать?
Пожалуйста, откройте pull request , и не забудьте, что мы также запускаем Github development bounty , так что вы можете заработать дополнительне ARK.

Прочтите нашу новую  whitepaper, следите за нами в социальных сетях ( Twitter | Facebook | Reddit ), присоединяйтесь к нашему сообществу ( Slack | Discord ) и следите за обновлениями в нашем блоге на Medium и Steemit.

Перевод.
Оригинал: https://blog.ark.io/ark-desktop-wallet-v2-9-0-major-speed-and-performance-improvements-6f6adb024524
staff
Activity: 3444
Merit: 4037
Crypto Swap Exchange
Новости:
Вышел шестьдесят пятый эпизод подкаста Ark (на английском), прослушать можно по ссылке: https://ark.io/podcast/ark-crypto-podcast-065-everything-you-might-have-missed-wrapup
Вышла новая версия - 2.9 кошелька ARK Desktop. Обновление включает в себя важные улучшения в производительности и новые функции.
Скачать кошелёк можно на https://ark.io/wallet




Хэш-суммы: (SHA256)

Linux (ark-desktop-wallet-linux-x64–2.9.0.tar.gz)
 172f9b3a94558afb79ef03e39fe57931393ef05f1b7b64fe706b6990036d82da

MacOS (ark-desktop-wallet-mac-2.9.0.dmg)
 8fbba3483f1a1e5a04de78d7c3ec48197d7ab05468ee45f4dca985c7fcb2fafe

Ubuntu (ark-desktop-wallet-linux-amd64–2.9.0.deb)
 b49603a310a7803696ebd27f77fe01c3dbc25837fe8fde4a272bf2a5d2c30b75

Windows X86 & X64 (ark-desktop-wallet-win-2.9.0.exe)
 b3d3acd60432c7460937fb12dfe0db3e27f9b768423123f4906920bd9bea19e7

Linux-AppImage (ark-desktop-wallet-linux-x86_64–2.9.0.AppImage)
 959e075c87dd71ee270e4e6a82fddb48e5cdb006a6cdf11ace9f363ef9a1fcb0

Источник:
https://bitcointalksearch.org/topic/m.53997276
https://bitcointalksearch.org/topic/m.53978563
sr. member
Activity: 812
Merit: 443
★777Coin.com★ Fun BTC Casino!
ARK GitHub Development Bounty Program — Февраль 2020



Февраль закончился, так что пришло время объявить участников и победителей GitHub bounty. Отдельное спасибо всем разработчикам сообщества за их постоянную работу. Эта программа работает в течение всего года, так что никогда не поздно присоединиться.

Обязательно распространяйте информацию о нашей программе bounty через социальные сети, блоги и другие творческие способы, чтобы помочь нам привлечь больше разработчиков и внести свой вклад в экосистему ARK, не только улучшая кодовую базу, но и давая разработчикам возможность учиться и зарабатывать.

Не знаете, о чем идет речь, и хотите принять участие?

Пожалуйста, ознакомьтесь с https://ark.io/bounties, а также посмотрите другие крупные проекты уровня 0 на https://ark.io/projects .

Теперь без лишних слов , вот участники и помощники GitHub development bounty program в феврале 2020 года!

dated - 570$ USD + 20% БОНУС (114$ USD) = Итого: 684$ USD

Количество запросов: 30


•   refactor: отрегулируйте валидацию формы транзакции bridgechain 2020–02–28 17:22:17 — desktop-wallet#1730$50 USD

•   feat: добавьте 2.6 endpoints 2020–02–10 07:53:37 — go-client#79$50 USD

•   refactor: проверьте, указан ли токен в криптосопоставлении, прежде чем получать цены 2020–02–05 13:31:48 — explorer#849$50 USD

•   fix: использование голосующего делегата в качестве вычисляемого свойства 2020–02–28 10:23:23 — explorer#882$20 USD

•   refactor: установить currentPage/currentPerPage, только если он отличается от текущего значения 2020–02–24 21:11:56 — desktop-wallet#1612$20USD

•   refactor: извлечение всех активных делегатов, если число больше лимита API 2020–02–05 14:02:36 — explorer#851$20 USD

•   fix: отображение деталей для устаревших транзакций с несколькими подписями 2020–02–06 12:37:01 — explorer#856$20 USD

•   refactor: обновление моделей и тестов 2020–02–10 07:03:47 — go-client#78$20 USD

•   refactor: показывать статус временной блокировки как просроченный для блокировок с истекшим сроком действия 2020–02–10 13:28:12 — explorer#860$20 USD

•   feat(core-api): фильтрация пиров по диапазону версий 2020–02–13 10:01:10 — core#3465$20 USD

•   feat(core): добавьте флаг, чтобы пропустить экспорт отката транзакций 2020–02–13 10:58:07 — core#3459$20 USD

•   fix: одна ошибка при проверке получателей и подсчет в заголовке списка 2020–02–18 20:42:32 — desktop-wallet#1662$20 USD

•   fix: пользовательская функция сортировки по балансу 2020–02–18 21:10:58 — desktop-wallet#1659$20 USD

•   fix: скрыть кнопку голосования для ушедших в отставку делегатов и добавить статус 2020–02–19 16:36:43 — desktop-wallet#1682$20 USD

•   refactor: прокрутка на вкладке меню, а не на контейнере 2020–02–24 21:57:53 — desktop-wallet#1641$20 USD

•   fix: уведомления о транзакциях магистрата 2020–02–28 12:00:05 — desktop-wallet#1725$20 USD

•   feat: добавьте методы для первого и последнего блока 2020–02–25 13:42:10 — python-client#110$20 USD

•   chore: переместить конечную точку Bridgechain 2020–02–26 03:44:03 — python-client#111$20 USD

•   fix: handle обработка неверного адреса из qr-кода 2020–02–26 14:00:25 — desktop-wallet#1645$20 USD

•   fix: использование showOpenDialog с обещанием вместо обратного вызова 2020–02–26 14:25:40 — desktop-wallet#1715$20 USD

•   refactor:  упрощение размытого модального фона и пользовательские настройки 2020–02–26 16:23:57 — desktop-wallet#1638$20 USD

•   refactor: удалить столбец сумма из таблицы ipfs и перестроить столбцы 2020–02–27 03:06:44 — desktop-wallet#1724$20 USD

•   fix: ширина боковой панели и ориентация значков 2020–02–24 22:19:31 — desktop-wallet#1642$20 USD

•   feat: добавьте методы для первого и последнего блока 2020–02–25 20:30:28 — cpp-client#183$20 USD

•   fix: анимация кнопки закрытия объявлений 2020–02–24 22:33:52 — desktop-wallet#1643

•   test: модульные тесты менеджера плагинов 2020–02–26 12:53:08 — desktop-wallet#1583

•   fix: сортировка по рангу в таблице делегатов 2020–02–10 13:43:41 — explorer#862

•   fix: убрать границу для свойства последней транзакции 2020–02–28 10:38:29 — explorer#883

•   deps: понизить jest до 24.9.0 2020–02–27 03:01:20 — desktop-wallet#1721

•   chore: квадратная заставка с логотипом 2020–02–27 23:57:08 — desktop-wallet#1732

alessiodf - 220$ USD + 10% БОНУС (22$ USD) = Итого: 242$ USD

Количество запросов: 3


•   fix(core-p2p): отключить permessage-deflate 2020–02–20 10:35:47 — core#3518$200 USD

•   fix(core-database): проверка пропущенных блоков перед применением раунда 2020–02–17 03:14:24 — core#3507$20 USD

•   docs: core-sv-033 в core-sv-037 2020–02–04 12:32:41 — security-vulnerabilities#22

Rigwild - 220$ USD + 5% БОНУС (11$ USD) = Итого: 231$ USD

Количество запросов: 4


•   types: методы ресурсов 2020–02–25 06:14:04 — typescript-client#99$200 USD

•   types: доступные ресурсы 2020–02–24 03:17:22 — typescript-client#95$20 USD

•   Добавление блокировок API кошельков doc 2020–02–24 03:18:04 — gitbooks-api # 8

•   Добавьте отсутствующую ссылку на транзакцию IPFS 2020–02–20 22:42:11 — learn.ark.dev # 6

galperins4 - 20$ USD

Количество запросов: 1


•   fix: обновление метода second_sign для использования schnorr 2020–02–05 14:36:22 — python-crypto # 106$ 20 USD

Другие участники
Особая благодарность другим участникам, которые также помогли в январе с pull-запросами, улучшением документации, исправлением опечаток и другими исправлениями! Мы очень рады видеть наше энергичное и увлеченное сообщество вовлеченным в путь, по которому мы идем вместе.

Lemii

Количество запросов: 7 (часть проекта уровня 0, подробнее читайте здесь )


•   chore: начальная версия 2020–02–24 08:33:53 — [urlhttps://github.com/ArkEcosystem/poc-ark-messenger-core/pull/1]poc-ark-messenger-core#1[/url]

•   test: обновить тесты для работы с bridgechain 2020–02–20 13:54:31 — poc-ark-messenger#10

•   release: версия 0.10.0 2020–02–18 16:36:49 — poc-ark-messenger#9

•   refactor: оптимизировать локальное хранилище 2020–02–12 03:56:44 — poc-ark-messenger#6

•   refactor: использовать переменные среды 2020–02–12 03:56:19 — poc-ark-messenger#7

•   release: версия 0.9.0 2020–02–10 14:06:36 — poc-ark-messenger#5

•   chore: начальная версия 2020–02–04 10:45:36 — poc-ark-messenger#1

Mikearaya

Количество запросов: 1


•   fix: синтаксическая ошибка 2020–02–22 13:45:31 — docs#512

Прочтите нашу новую  whitepaper 2019 года, следите за нами в социальных сетях ( Twitter | Facebook | Reddit ), присоединяйтесь к нашему сообществу ( Slack | Discord ) и следите за обновлениями в нашем блоге на Medium и Steemit.

Перевод.
Оригинал: https://blog.ark.io/ark-github-development-bounty-program-february-2020-1c6fc1c9c41
sr. member
Activity: 1736
Merit: 254
Кошелек у проекта довольно крутой и сложный. Особенно если устанавливать какой-то токен, например Birdlance
staff
Activity: 3444
Merit: 4037
Crypto Swap Exchange
Новости:
ARK Deployer (https://ark.io/deployer) теперь использует среду ARK Core v2.6
Вышел шестьдесят четвёртый эпизод подкаста ARK Crypto

Источник:
https://bitcointalksearch.org/topic/m.53931157
https://bitcointalksearch.org/topic/m.53951286
copper member
Activity: 591
Merit: 55
ARK & BCdiploma — Демонстрация Технологии ARK во время Технического Дня в Университете Лилль



Глобальная система образования призвана стать отраслью, в которой технология блокчейн оказывает колоссальное влияние. В центре этого стоят ARK и BCdiploma.

В течение последних нескольких месяцев ARK тесно сотрудничал с командой BCdiploma. BCdiploma разрабатывает приложение "под ключ" для высших учебных заведений и их выпускников, автоматизируя выдачу дипломов и сертификатов. BCdiploma предоставляет выпускнику уникальный URL-адрес, чтобы на протяжении всей жизни можно было доказать его подлинность с помощью неизменного блокчейн реестра. В то время, как BCdiploma в настоящее время работает с более чем 50 учебными заведениями и использует Ethereum для их решений, они также работают с ARK для конкретного применения своих решений.

6 февраля 2020 года представители ARK и BCdiploma поучаствовали в семинаре, организованном Университетом Лилля для демонстрации технологии блокчейн.


Представители ARK и BCdiploma присутствующие во время Технического Дня организованном Университетом Лилля

Мероприятие началось с презентации Университета Лилля. Лилльский университет подчеркнул важность технологии блокчейн и сказал, что с точки зрения образования:

  • Технология блокчейн позволяет людям безопасно делиться некоторыми из самых важных достижений в своей жизни. Будь то выдача дипломов, сертификатов, транскриптов или кредитов на дальнейшее обучение, блокчейн может в корне улучшить существующую систему образования.

Технический День с Лидерами Сектора Образования

Университет Лилля организовал это мероприятие и собрал некоторых из ведущих игроков высшего образования этой области. Среди участников, как дистанционно, так и лично, были RENATER, CANOPE, France Éducation International, CRI-Paris, Erasmus + France Agency, University of Grenoble-Alpes, University of Lorraine, La Catho Lille, Polytechnic University of Hauts de France, EM Lyon, University of Burgundy, University of Nantes, INRIA, CEA.

Ранее, этот консорциум игроков высшего образования отклонял технические демонстрации решений, работающих на энергоемких блокчейнах. Модель ARK с Делегированным Доказательством Доли Владения (Delegated Proof of Stake) отвечает требованиям и потребностям рабочей группы. Конечной целью этого консорциума является запуск блокчейна на базе технологии ARK, при этом BCdiploma является первым приложением "под ключ" на выдачу дипломов.

После презентации Университета Лилля, остальная часть дня продолжилась презентациями ARK и BCdiploma. После дискуссий с участниками, дневная сессия включала в себя две параллельные сессии. Первая сессия включала установку узла ARK и ответов на общие технические вопросы. Вторая сессия была посвящена регистрации в BCdiploma и демонстрации того, как сертифицировать данные в тестовой сети ARK Testnet.

Команда ARK была невероятно рада принять участие в этом мероприятии и сотрудничесвту с компанией BCdiploma. Положительные отзывы о мероприятии показывают, что простой и безопасный подход ARK к использованию технологии блокчейн будет одним из ключевых решений в отрасли на долгие годы.

Заключительные Слова: Блокчейн и Образование

Преимущества технологии блокчейн в секторе образования огромны. Использование технологии блокчейн может значительно сократить административные расходы, ускорить процесс избавления от бумажных дипломов и обеспечить систему, способствующую повышению безопасности и сохранности документов.

В то время, как, Франция прокладывает путь для использования технологии блокчейн на университетском уровне, Европейский Союз в целом смотрит на блокчейн, как на решение современных проблем в образовании. В настоящее время, организации образования выдают сертификаты в бумажном или электронном виде через инфраструктуру публичных ключей. Использование инфраструктуры публичных ключей в качестве средства для выдачи сертификатов является дорогостоящим, уязвимым для злоумышленников и сложным для поддержания в течение длительного времени. Перейдя на систему, построенную на технологии блокчейн, сертификаты могут постоянно храниться в безопасном месте. Кроме того, университеты не будут обязаны выделять дополнительные ресурсы на подтверждение действительности выданного сертификата третьим лицам, поскольку они могут быть проверены непосредственно на блокчейне.

BCdiploma занимает уникальную позицию среди французского образовательного сектора и, по сути, уникальную позицию во всей Европе. Недавняя демонстрация, состоявшаяся во время Технического Дня в Университете Лилля, продемонстрировала убедительные аргументы в пользу выдачи сертификатов, которые являются надежными, неизменными и экономическими выгодными. Построенное по технологии ARK, подчеркивающее простоту, безопасность и скорость, будущее выглядит ярким.

Перевод.
Оригинал: https://blog.ark.io/ark-bcdiploma-showcasing-ark-technology-at-the-university-of-lilles-technical-day-854d90a537f4
legendary
Activity: 1610
Merit: 1026
Маштабируемость
Версия Core 2.0 имеет много проблем маштабируемости из-за архитектурных недостатков, описанных ранее в этой статье. Core 3.0 пытается максимально устранить эти проблемы путем реализации проверенных концепций и принципов.
Шаблон, который вы увидите чаще всего в Core 3.0, - это Builder Pattern, основанный на драйверах в сочетании с менеджером. Мы рассмотрим новую реализацию журнала, чтобы понять, как она работает и какие преимущества она приносит.
Менеджер
LogManager - это объект, который заботится об управлении всеми взаимодействиями с экземплярами logger. Он привязан к контейнеру, чтобы быть доступным для пакетов, и содержит только логику, специфичную для службы журнала. Он расширяет abstract Manager, который получает подсказку типа контракта реализации регистратора для обеспечения соответствия типа во время разработки.

Code:
 
class LogManager extends Manager {
    protected async createConsoleDriver(): Promise {
        return this.app.resolve(ConsoleLogger).make();
    }
protected getDefaultDriver(): string {
        return "console";
    }
}

ServiceProvider
1.ServiceProvider заботится о нескольких вещах, давайте разберем подробнее.
2.LogManager связан с контейнером как Singleton. Это означает, что он будет создан только один раз, чтобы гарантировать, что один и тот же экземпляр используется всеми пакетами.
3.Загружается LogManager, который заботится о создании экземпляра регистратора по умолчанию, в нашем случае консольного регистратора.
driver method, ответственный за разрешение настроенного регистратора, привязан к контейнеру. Это связано как динамическое значение, чтобы гарантировать, что каждый раз, когда driver methodвызывается, мы разрешаем настроенный регистратор, поскольку этот регистратор может быть изменен в любое время пакетом.

Code:
 
class ServiceProvider extends BaseServiceProvider {
    public async register(): Promise {
        this.app
            .bind(Identifiers.LogManager)
            .to(LogManager)
            .inSingletonScope();
await this.app.get(Identifiers.LogManager).boot();
this.app
            .bind(Identifiers.LogService)
            .toDynamicValue((context: interfaces.Context) =>
                context.container.get(Identifiers.LogManager).driver(),
            );
    }
}

Реализация пользовательских регистраторов
Теперь, когда вы увидели, как LogManager создается и регистрируется в приложении, мы рассмотрим, как зарегистрировать пользовательскую реализацию через пакет. Еще раз разберем, чтобы понять, что происходит, шаг за шагом.
1. Мы определяем LogManager из контейнера, чтобы использовать его так же, как это делает Core внутри.
2. Мы вызываем метод extends в LogManager с именем и обратным вызовом, который отвечает за создание экземпляра регистратора.
3. Мы вызываем метод setDefaultDriver в LogManager, чтобы приложение знало, что регистратор pino должен быть возвращен при вызове метода LogManager.driver (). Если бы мы могли пропустить этот шаг, мы могли бы вручную вызвать LogManager.driver («pino»), чтобы получить экземпляр регистратора Pino.

Code:
 
class ServiceProvider extends Providers.ServiceProvider {
    public async register(): Promise {
        const logManager: LogManager = this.app.get(Identifiers.LogManager);
        await logManager.extend("pino", async () => new PinoLogger().make());
        logManager.setDefaultDriver("pino");
    }
}

Как вы можете видеть, стало намного проще модифицировать и расширять Core более контролируемым и логичным образом. Вещи четко названы, структурированы и, применяя одни и те же шаблоны в Core, мы обеспечиваем более предсказуемый и приятный опыт для разработчиков.

Конфигурируемость
Маштабируемость не работает без Конфигурируемости. Если вы не можете настроить пакеты по своему вкусу или, что еще хуже, не получать никаких отзывов, если что-то настроено неправильно и пакет все еще выполняется, тогда вся предыдущая работа была потрачена впустую.
Core 3.0 внутренне использует HapiJS Joi, который недавно получил серьезную переработку и улучшения производительности в своей 17-й основной версии. С самого начала  HapiJS Joi сосредоточился на том, чтобы предоставить полезный опыт разработчика, который идеально согласуется с нашими целями и уже используется в нашей кодовой базе для различных интеграций, основанных на сервере HapiJS Hapi.

Code:
 
class ServiceProvider extends BaseServiceProvider {
    public configDefaults(): object {
        return { username: "johndoe" };
    }
    public configSchema(): object {
        return Joi.object().keys({
            username: Joi.string().alphanum().min(3).max(30).required(),
        });
    }
}

Давайте разберемся, что здесь происходит,чтобы дать обратную связь.
1.Мы указали конфигурацию по умолчанию, которая будет объединена с предоставленной пользователем конфигурацией.
2.Мы указали схему, которая должна использоваться для проверки конфигурации после ее объединения со значениями по умолчанию.
Теперь, если мы зарегистрируем наш пакет в Core, он запустится как обычно, как конфигурация по умолчанию, приведенный выше пример действителен, но при сбое есть 2 возможных результата.

1.Наш пакет не является обязательным, поэтому Core выдаст предупреждение о недопустимой конфигурации и продолжит выполнение.
2.Наш пакет необходим, поэтому Core выдаст ошибку, что конфигурация недействительна, и завершит процесс, требуя от пользователя решения проблемы конфигурации.

Преимущества этой новой проверки должны быть понятны. Лучшая обратная связь с пользователем, которая гарантирует, что конфигурация не может привести к нежелательному или неисправному поведению, и все данные автоматически преобразуются в соответствующие им типы. (то есть «1» становится 1)

Тестируемость
Подумайте немного, вначале мы установили предпосылку, что Core тесно связывал все внутренние компоненты, что приводит к хрупкой архитектуре, которую сложно протестировать.  Это обычно приводит к тому, что разработчики пишут меньше тестов, "хрупкие" тесты просто для того, чтобы покончить с этим, или, что хуже всего, не пишут вообще никаких тестов, что снижает уверенность в добавляемых или изменяемых реализациях.

Core 3.0 призван сделать тестирование проще и приятнее. Важным шагом в этом направлении стало разделение объекта приложения и контейнера. Контейнер теперь передается объекту приложения, когда он создается, прошло время издевательств, чтобы создать полные поддельные контейнеры с определенными значениями.

Теперь создание пользовательского экземпляра приложения-это просто передача реального экземпляра контейнера, который содержит нужные привязки, вместо того, чтобы тратить часы на создание идеальных решений, которые только в конечном итоге дают вам ложную уверенность, поскольку если изменение ядра останется незамеченным, то это поставит вас в недоумение, почему функция X больше не работает, даже если ваш набор тестов положительный и не выдает проблем.

Что дальше?
На этом завершается первая часть серии ARK «Let's Let's Explore Core». В следующей части мы рассмотрим, как приложение загружается, настраивается и запускается в ARK Core 3.0.

https://blog.ark.io/lets-explore-ark-core-v3-part-1-infrastructure-5c8ba13c9c42
legendary
Activity: 1610
Merit: 1026
Перевод. Оригинальная статья Brian Faust
https://blog.ark.io/lets-explore-ark-core-v3-part-1-infrastructure-5c8ba13c9c42

Давайте исследуем ARK Core v3: Часть 1 - Инфраструктура

Это первая часть Let's Explore ARK Core, в которой описывается разработка следующего основного выпуска ARK Coreнаряду с некоторыми советами и рекомендациями о том, как начать работу с вкладом и созданием ваших идеи сегодня.



Вступление
В первой части этой серии мы сосредоточимся на улучшениях инфраструктуры, которые были реализованы в ARK Core 3.0. Эти улучшения включают в себя то, как приложение загружается, как компоненты подключены, и как стало легче расширять, дополнять и тестировать систему с вашей функциональностью без необходимости непосредственного изменения наших релизов, что приводит к конфликтам, которые становится утомительным для разрешения.
Прежде чем мы начнем, давайте установим предпосылки, в соответствии с которыми ARK Core 3.0 было начато, перечислив проблемы, которые были у ядра 2.0, как они возникли, а затем мы рассмотрим, как ARK Core 3.0 стремится решить их.

-Трудно модифицировать из-за хрупкой и тесно связанной архитектуры, где любое небольшое изменение может иметь непреднамеренное воздействие.
-Сложно использовать из-за отсутствия ясности, поскольку функции и конструкторы классов имеют множество аргументов, что затрудняет их использование и тестирование.
-Трудно переписать существующую функциональность, такую ​​как логика консенсуса.
-Трудно протестировать из-за ранее упомянутой тесно связанной архитектуры, что, в свою очередь, затрудняет расширение из-за отсутствия доверия к альтернативным реализациям.


Приложение
Приложение является центральной точкой входа в ARK Core. Оно отвечает за загрузку и проверку конфигураций, принимает решение о том, какие пакеты следует зарегистрировать, запускает пакеты и служит соединением для обмена состояниями между всеми пакетами, которые разработчики добавляют в установку.
Core 2.0 предоставлял экземпляр приложения, с которым было трудно работать, потому что он состоял только из жестко закодированных объектов, таких как менеджер конфигурации, который был недоступен, загрузчик пакетов был недоступен, не было простого способа определить пути или специфичные для среды среды и многое другое. Все эти факторы в совокупности сделали тестирование и разработку пакетов неоправданно сложными, поскольку опыт разработчика (DX) в конце концов оказался слишком утомительным.
Решение всех этих проблем в текущем состоянии было бы трудным, поэтому полная переработка с нуля была самым лучшим решением. Core 3.0 имеет совершенно новое решение, которое было переписано с нуля с учетом простоты, маштабируемости и тестируемости.

Code:
 
// Core 2.0
import { app } from "@arkecosystem/core-container";
process.env.CORE_NETWORK // get the name of the network
process.env.CORE_TOKEN // get the name of the token
app.resolve("..."); // resolve a generic value
app.resolvePlugin("..."); // resolve a plugin
app.resolveOptions("..."); // resolve the options of a plugin
// Core 3.0
import { app } from "@arkecosystem/core-container";
app.network() // get the name of the network
app.token() // get the name of the token
app.get("..."); // resolve a generic value

Как вы можете видеть в приведенном выше примере, используется меньше строк, и вы, вероятно, также заметили, что методы resolve Plugin и resolveOptions исчезли. Это изменение было сделано, чтобы ослабить взаимосвязьи дать разработчикам больше свободы в том, как они разрабатывают свои пакеты, хранят их конфигурацию и получают доступ ко всем данным из них.
Давайте посмотрим на приведенный ниже код, который взят из пакета @arkecosystem/core-api.



Как вы можете видеть в приведенном выше коде, весь контроль над тем, как происходит взаимосвязь и что разрешается из контейнера, находится в руках разработчика пакета, а не ядра, решающего, как ваши данные должны храниться. Пакеты больше не рассматриваются как специальные объекты, а скорее как поставщик,  который предоставляет любое количество услуг для Core 3.0, в отличие от Core 2.0, при условии, что предоставляется одна услуга.
Не беспокойтесь о поставщиках услуг сейчас, мы рассмотрим их в части 2  и рассмотрим, как мы можем использовать их преимущества для создания гибких пакетов, которые расширяют функциональность Core 3.0.
Мы надеемся, что эта недавно предоставленная простота, маштабируемость и тестируемость побудит больше разработчиков участвовать в разработке Ark Core и пакетов для экосистемы, чтобы значительно улучшить то, что Ark Core способен делать.
Контейнер
Контейнер-это то, что обеспечивает хлеб и масло, необходимые для создания прочного фундамента для инфраструктуры, необходимой для достижения целей, поставленных Ark Core 3.0. Это позволяет нам связывать значения, функции и классы в единую сущность, которая заботится о хранении и управлении всеми взаимодействиями с ними.
Core 2.0 использовало Awilix в качестве своего контейнера и обеспечивало оболочку вокруг него с момента его реализации. В то время это работало нормально, поскольку требования были довольно низкими, поскольку кодовая база была написана на JavaScript, что означало, что концепция интерфейсов недоступна, поэтому следовать принципу «Проектирование по контракту» было довольно сложно, так как обычно оно идет рука об руку с зависимостью. Принцип инверсии, который требует, чтобы вы полагались на абстракции, а не на конкретные инструменты.
Давайте посмотрим на принцип инверсии зависимости, чтобы определить, что будет дальше. Возьмите приведенный ниже код, вы можете подумать, что реализация хороша, так как машина - это просто машина, и какое это имеет значение, как она реализована.



Теперь у вас есть разумная реализация автомобиля, которую вы можете запустить. Ну, проблема, с которой вы столкнетесь, заключается в том, что в наши дни существуют различные типы автомобилей, некоторые работают на электричестве, а некоторые на дизельном топливе. С приведенной выше реализацией, это станет беспорядочным для реализации конкретной логики двигателя, поскольку вам придется использовать операторы if, чтобы решить, что следует сделать, чтобы запустить автомобиль.
Лучший подход-предоставить контракт реализации, который является абстрактным и не делает никаких предположений о реализации, поскольку это детали, которые не должны касаться вашего приложения, когда оно потребляет сущность car. Автомобиль должен просто завестись, электрический или дизельный.



Если мы возьмем вышеприведенную реализацию и совместим ее с принципом инверсии зависимости, вы заметите, что мы больше не связаны с реализацией конкретного автомобиля, а скорее с договором на реализацию автомобиля, который затем будет преобразован в реализацию с электро или дизелем. Преимущества этого состоят в том, что нам не нужно ссылаться на конкретные классы, а также не нужно беспокоиться о том, как что-то реализовано, если это удовлетворяет указанному нами контракту.

Awilix to Inversify

Core 3.0 заменил Awilix на InversifyJS. Мощная и легкая инверсия контейнера управления для приложений JavaScript и Node.js на базе TypeScript.
Теперь вы можете задаться вопросом, почему мы решили заменить контейнер, если Awilix выполнял свою работу. Основная причина заключается в том, что Inversify разработан для TypeScript, что означает, что истинное внедрение зависимостей возможно, когда вы связываете контракты реализаций (интерфейсы) с конкретными реализациями. Awilix пытается обслуживать  JavaScript, поддерживая  TypeScript посредством определений типов, что означает, что вы получаете преимущество подсказок типов, но не возможность использовать интерфейсы так, как это возможно с Inversify.
Использование нового контейнера
Использование нового контейнера с его полными возможностями становится возможным из-за двух факторов.
-Можно получить экземпляр контейнера, который используется внутри, а не просто оболочку, как это было в случае с Awilix. Это означает, что у вас есть доступ ко всем методам, доступным через Inversify.
-Прямо открывая контейнер вместо его упаковки, мы больше не делаем никаких предположений о том, как разработчик планирует использовать его, и в конечном итоге ограничивают то, что он может сделать.
Теперь это звучит замечательно на бумаге, но вы, вероятно, спрашиваете себя, какого черта вы действительно получаете от этого. Давайте проиллюстрируем преимущества несколькими примерами из самого Core 3.0.


Как вы можете видеть, возможности и синтаксис нового контейнера выразительны и просты, не отказываясь ни от какой функциональности. Мы считаем, что эта простота обеспечит лучший опыт разработчика в целом и даст разработчикам пакетов больше свободы и контроля.
Это только малая часть, на что способен Inversify, поэтому обязательно посмотрите официальный github Inversify и документацию. Посетите их github и Wiki, чтобы получить более подробное руководство о том, как работает контейнер и на что он способен.
https://github.com/inversify/InversifyJS#the-inversifyjs-features-and-api
https://github.com/inversify/InversifyJS/tree/master/wiki
staff
Activity: 3444
Merit: 4037
Crypto Swap Exchange
Пять дней назад вышел ARK Desktop Wallet v2.8.1. В этом релизе исправлена проблема отображения суммы при использования функции мультиплатежей, добавлены новая функция получения стоимости через API, экран инициализации и много другого.
Вы можете скачать новый кошелёк с https://ark.io/wallet или использовать функцию обновления из уже установленного!




Хэши для кошельков: 2.8.1 of Desktop Wallets (SHA256)

Linux (ark-desktop-wallet-linux-x64–2.8.1.tar.gz)
- c55c04a4aa016a97057d2085f0e167807fd05dca11e97ffc7a658f43a642da0f

MacOS (ark-desktop-wallet-mac-2.8.1.dmg)
- fb455c3080e4894df1f0320b5559d265c2750d7c0f45c9808245d586effe7eaf

Ubuntu (ark-desktop-wallet-linux-amd64–2.8.1.deb)
- 1ed1da1c19ea6735e1c4dbcb6f8ba5c4b60f922fe88fcd0d7a588870ab849c61

Windows X86 & X64 (ark-desktop-wallet-win-2.8.1.exe)
- 1926fa31cf8d8971e2fb10dbe96187d570be7b50b675fec24776fd56aff6d5e8

Linux-AppImage (ark-desktop-wallet-linux-x86_64–2.8.1.AppImage)
- ee245996cf479e94269816be9329e5244965dbaa25e9eff3ae9125fd784637b5

Источник: https://bitcointalksearch.org/topic/m.53886094
legendary
Activity: 1487
Merit: 1008
Народ кто подскажет, монеты на месте, а транзакции все исчезли, при открытии кошелька выходит ошибка 404 и не могу отправить монеты на другой адрес. Что сделать что бы это исправить?
старый клиент тоже перестал транзакции показывать, скачал последний 2.2.1, там все работает.
member
Activity: 517
Merit: 10
Blocking future
Народ кто подскажет, монеты на месте, а транзакции все исчезли, при открытии кошелька выходит ошибка 404 и не могу отправить монеты на другой адрес. Что сделать что бы это исправить?
member
Activity: 517
Merit: 10
Blocking future
В последнее время хорошие темпы роста
newbie
Activity: 98
Merit: 0
https://tothemoon.live/?IsPast=False&Page=1&Month=0&Year=0&CoinTypes=Ark+%28ARK%29&SortBy=0
ПРивет всем. Как вам монета АРК? Хорошие новости на апрель. Команда работает и это радует!!
sr. member
Activity: 602
Merit: 256
А если отдал голос за пул, а потом докупил арков, то надо по новой голосовать или автоматом пересчитается?
member
Activity: 588
Merit: 28
В закладки. Присмотреться надо. Как раз Крылья заканчиваются, мона будет шкурку сменить.
Решил немножко оживить пост. Поэтому к автору, а что актуально на текущий момент, как сделать максимально объективную проверку проекта, хотя мне все их хочется назвать стартапы.
 Huh
member
Activity: 250
Merit: 28
Эх, а я в свое время недооценил этот проект
Мы все в свое время недооценили этот проект, никто в него не верил и на ICO они мало собрали. Хотя во время ICO я на все свои лиски  поучаствовал чтобы от них избавиться.

Мне тоже в свое время они показались шлаком и я решил обойти их стороной. Но оказался не прав, а те кто поверил в них получили не плохую прибыль. Надо чаще угадывать Wink
Нельзя с уверенностью сказать, что монета вырастет в цене, все же, мы понимаем, что развиваться она будет и перспективы, благодаря усилиям команды, безусловно есть. Можно попробовать прикупить монеты ARK в долгосрочный актив и уже спустя полгода наберёт рост.
member
Activity: 70
Merit: 10
ARK будет на Североамериканской конференции биткойнов в Майами, в январе 2018 года. Конференция будет посвящена широкому кругу тем, включая технологию блокчейнов, Bitcoin и Ethereum, ICOs, механику продажи токенов, инвестирование, регулирование, запуск, срыв и многое другое. Отраслевые громкоговорители Blockchain будут представлены на двухдневной конференции в главном театре на 20-минутных слотах. https://blog.ark.io/ark-is-going-to-miami-miami-bitcoin-conference-ac6c2195de79
Pages:
Jump to: