Источник https://bitcointalk.org/index.php?topic=2133048Дисклеймер: я не принадлежу к команде разработчиков, инвесторов. Данная тема носит ознакомительный характер и не является рекомендацией для инвестиций.ОБЯЗАТЕЛЬНОЕ ОБНОВЛЕНИЕ: VSYNC WALLET RELEASE V3.8.7.6 addnode=69.57.222.116 addnode=5.189.129.3 addnode=91.201.25.86 addnode=195.238.108.87
★☆★ Поддержите VSYNC ношением рекламных подписей ★☆★ Junior Members: Screenshot URL: https://i.imgur.com/CaKcoiy.pngScreenshot preview:[center]VSYNC | NEXT GENERATION OF MONEY | COMMUNITY DRIVEN CRYPTO-CURRENCY | ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ Members:Screenshot URL: https://i.imgur.com/0LAt6fn.pngScreenshot preview:[center][url=https://vsync.io/]VSYNC[/url] | [url=https://vsync.io/]NEXT GENERATION OF MONEY[/url] | [url=https://vsync.io/]COMMUNITY DRIVEN CRYPTO-CURRENCY[/url] | [url=https://vsync.io/]VSYNC[/url] [url=https://vsync.io/]▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪[/url] [url=https://www.youtube.com/watch?v=owQ1qMsHhbQ]ROADMAP[/url] | [url=https://bitcointalk.org/index.php?topic=2133048.0]THREAD[/url] | [url=https://twitter.com/VsyncCrypto/]TWITTER[/url] | [url=https://t.me/VSXcoin]TELEGRAM[/url] | [url=http://discord.gg/Arqhyqg]DISCORD[/url][/center] Full Members:Screenshot URL: https://i.imgur.com/ClksbWv.pngScreenshot preview:[center][font=Tahoma][b][url=https://vsync.io/][color=#5da1c1]VSYNC [color=#ff5964]| [color=#ff5964]N[color=#022f40]EXT GENERATION [color=#0090c1]OF MONEY [color=#ff5964]| [color=#ff5964]C[color=#022f40]OMMUNITY DRIVEN [color=#0090c1]CRYPTO-CURRENCY [color=#ff5964]| [color=#5da1c1]VSYNC [color=#649ebd]▪[color=#669dbc]▪[color=#699cba]▪[color=#6b9bb9]▪[color=#6d9ab8]▪[color=#7099b6]▪[color=#7298b5]▪[color=#7497b4]▪[color=#7696b2]▪[color=#7995b1]▪[color=#7b94b0]▪[color=#7d93ae]▪[color=#8092ad]▪[color=#8291ac]▪[color=#8490aa]▪[color=#878ea9]▪[color=#898da8]▪[color=#8b8ca6]▪[color=#8e8ba5]▪[color=#908aa4]▪[color=#9289a2]▪[color=#9588a1]▪[color=#9787a0]▪[color=#99869e]▪[color=#9b859d]▪[color=#9e849c]▪[color=#a0839a]▪[color=#a28299]▪[color=#a58198]▪[color=#a78096]▪[color=#a97f95]▪[color=#ac7e94]▪[color=#ae7d93]▪[color=#b07c91]▪[color=#b37b90]▪[color=#b57a8f]▪[color=#b7798d]▪[color=#ba788c]▪[color=#bc778b]▪[color=#be7689]▪[color=#c17588]▪[color=#c37487]▪[color=#c57385]▪[color=#c77284]▪[color=#ca7183]▪[color=#cc7081]▪[color=#ce6f80]▪[color=#d16e7f]▪[color=#d36d7d]▪[color=#d56c7c]▪[color=#d86a7b]▪[color=#da6979]▪[color=#dc6878]▪[color=#df6777]▪[color=#e16675]▪[color=#e36574]▪[color=#e66473]▪[color=#e86371]▪[color=#ea6270]▪[color=#ec616f]▪[color=#ef606d]▪[color=#f15f6c]▪[color=#f35e6b]▪[color=#f65d69]▪[color=#f85c68]▪[color=#fa5b67]▪[color=#fd5a65]▪[color=#ff5964]▪[color=#fd5a65]▪[color=#fa5b67]▪[color=#f85c68]▪[color=#f65d69]▪[color=#f35e6b]▪[color=#f15f6c]▪[color=#ef606d]▪[color=#ec616f]▪[color=#ea6270]▪[color=#e86371]▪[color=#e56473]▪[color=#e36674]▪[color=#e06776]▪[color=#de6877]▪[color=#dc6978]▪[color=#d96a7a]▪[color=#d76b7b]▪[color=#d56c7c]▪[color=#d26d7e]▪[color=#d06e7f]▪[color=#ce6f80]▪[color=#cb7082]▪[color=#c97183]▪[color=#c77284]▪[color=#c47386]▪[color=#c27487]▪[color=#c07588]▪[color=#bd768a]▪[color=#bb778b]▪[color=#b9788c]▪[color=#b6798e]▪[color=#b47a8f]▪[color=#b27b90]▪[color=#af7c92]▪[color=#ad7e93]▪[color=#aa7f95]▪[color=#a88096]▪[color=#a68197]▪[color=#a38299]▪[color=#a1839a]▪[color=#9f849b]▪[color=#9c859d]▪[color=#9a869e]▪[color=#98879f]▪[color=#9588a1]▪[color=#9389a2]▪[color=#918aa3]▪[color=#8e8ba5]▪[color=#8c8ca6]▪[color=#8a8da7]▪[color=#878ea9]▪[color=#858faa]▪[color=#8390ab]▪[color=#8091ad]▪[color=#7e92ae]▪[color=#7c93af]▪[color=#7994b1]▪[color=#7796b2]▪[color=#7497b4]▪[color=#7298b5]▪[color=#7099b6]▪[color=#6d9ab8]▪[color=#6b9bb9]▪[color=#699cba]▪[color=#669dbc]▪[color=#649ebd]▪[/url] [url=https://www.youtube.com/watch?v=owQ1qMsHhbQ][color=#5da1c1]ROADMAP[/url] [color=#ff5964]| [url=https://bitcointalk.org/index.php?topic=2133048.0][color=#0090c1]THREAD[/url] [color=#ff5964]| [url=https://twitter.com/VsyncCrypto/][color=#1da1f2]TWITTER[/url] [color=#ff5964]| [url=https://t.me/VSXcoin][color=#0088cc]TELEGRAM[/url] [color=#ff5964]| [url=http://discord.gg/Arqhyqg][color=#7289DA]DISCORD[/url][/center] Senior MembersScreenshot URL: https://i.imgur.com/6TjMLRA.pngScreenshot preview:[center][table][tr][td][size=1px][font=monospace][color=#1298bb]
[color=#002967]▄[/color] [color=#002967]▐█▄[/color] █▌ [color=#002967]▐██▄[/color] █▌ [color=#002967]▐██▄[/color] ▄█▌ [color=#002967]████▄[/color] ██▌ [color=#002967]▐████▄[/color] ██▌ [color=#002967]▐█████▌[/color] ███ [color=#002967]██████▌[/color] ████ [color=#002967]▐██████▌[/color] ▄████ [color=#002967]███████▌[/color] ████▌ [color=#002967]▐███████▌[/color] █████ [color=#002967]▐████████[/color] █████▌ [color=#002967]█████████[/color] ██████ [color=#002967]▐█████████▄[/color] ██████▌ [color=#002967]██████████▄[/color] ███████ [color=#002967]▐██████████[/color] ███████▌ [color=#002967]████████[/color] ▄████████ [color=#002967]▐██████[/color] █████████ [color=#002967]████[/color] ▄█████████▌ [color=#002967]███[/color] ███████████ ███████████ ▄███████████▌ █████████████ ████████████ ▐██████████ ▐█████████ ▐████████ ▐███████ ▐█████▀ ▐████ ▐███ ▐█▀ ▐▀[/td][td][size=7px] [url=https://vsync.io/][font=Tahoma][b][size=20px][color=#5da1c1]VSYNC[/td][td][font=Monospace][size=32px][color=#ff5964]|[/td][td][size=3px] [right][url=https://vsync.io/][font=Tahoma][b][size=14px][color=#ff5964]N[color=#022f40]EXT GENERATION [color=#ff5964]C[/color]OMMUNITY DRIVEN[/td][td][size=3px] [url=https://vsync.io/][font=Tahoma][size=14px][color=#0090c1]OF MONEY CRYPTO-CURRENCY[/td][td][font=Monospace][size=32px][color=#ff5964]|[/td][td][size=7px] [url=https://goo.gl/Ykk5H8][font=monospace][size=2px][color=#ff5964] ▄▄▄ ▐█████▌ ██▀ ▀██ ██▄ ▄██ █████ ▄▄▄ ███ ▐█████▌ [color=#b5222b]█ ██▀ ▀██ ▀▀ ▀▀ ▀█ ██▄ ▄██ ▀ █████ ███ █ █ ▀▀ ▀▀ ▀▀[/td][td][size=7px] [url=https://goo.gl/zy3Yjf][font=monospace][size=2px][color=#0090c1] █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▀ ▀█ █ █ █ █ ▄ ▄ ▄ ▄ █ █ █ ▀ ▀ ▀ ▀ █ █ █ █ [color=#3a88af]█ █▄ ▄█ █ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄ ▀▀█ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀ █ ▄▀ █▀[/td][td][size=7px] [url=https://goo.gl/bSN9CB][font=monospace][size=2px][color=#1da1f2] ▄████▄▄ ▄ █▄ ██████████▀▄ ███ ███████████▀ ▐████▄ ██████████▌ ▄▄██████▄▄▄▄█████████▌ ▀████████████████████ [color=#078bdc] ▀█████████████████ ▄▄███████████████ ▀█████████████▀ ▄▄█████████▀ ▀▀██████████▀ ▀▀▀▀▀[/td][td][size=7px] [url=https://t.me/VSXcoin][font=monospace][size=2px][color=#0088cc] ▄▄████ ▄▄████████▌ ▄▄█████████▀███ ▄▄██████████▀▀ ▄███▌ ▄████████████▀▀ ▄█████ ▀▀▀███████▀ ▄███████▌ [color=#0771a7] ██ ▄█████████ █ ▄██████████▌ █ ███████████ █ ██▀ ▀██████▌ ██▀ ▀████ ▀█▌[/td][td][size=7px] [url=http://discord.gg/Arqhyqg][font=monospace][size=2px][color=#7289DA] ▄▄█▀▀ ▄▄▄▄▄▄▄▄ ▀▀█▄▄ ▐██▄▄██████████████▄▄██▌ ████████████████████████ ▐████████████████████████▌ ███████▀▀▀██████▀▀▀███████ ▐██████ ████ ██████▌ [color=#3e64e8]███████ ████ ███████ ▐████████▄▄▄██████▄▄▄████████▌ ▐████████████████████████████▌ █████▄▄▀▀▀▀██████▀▀▀▀▄▄█████ ▀▀██████ ██████▀▀ ▀▀▀ ▀▀▀[/td][td][font=Monospace][size=32px][color=#ff5964]|[/td][/tr][/table] Hero/Legendary MembersScreenshot URL: https://i.imgur.com/iECGGCT.pngScreenshot preview:[center][table][tr][td][size=1px][font=monospace][color=#1298bb]
[color=#002967]▄[/color] [color=#002967]▐█▄[/color] █▌ [color=#002967]▐██▄[/color] █▌ [color=#002967]▐██▄[/color] ▄█▌ [color=#002967]████▄[/color] ██▌ [color=#002967]▐████▄[/color] ██▌ [color=#002967]▐█████▌[/color] ███ [color=#002967]██████▌[/color] ████ [color=#002967]▐██████▌[/color] ▄████ [color=#002967]███████▌[/color] ████▌ [color=#002967]▐███████▌[/color] █████ [color=#002967]▐████████[/color] █████▌ [color=#002967]█████████[/color] ██████ [color=#002967]▐█████████▄[/color] ██████▌ [color=#002967]██████████▄[/color] ███████ [color=#002967]▐██████████[/color] ███████▌ [color=#002967]████████[/color] ▄████████ [color=#002967]▐██████[/color] █████████ [color=#002967]████[/color] ▄█████████▌ [color=#002967]███[/color] ███████████ ███████████ ▄███████████▌ █████████████ ████████████ ▐██████████ ▐█████████ ▐████████ ▐███████ ▐█████▀ ▐████ ▐███ ▐█▀ ▐▀[/td][td][size=7px] [url=https://vsync.io/][font=Tahoma][b][size=20px][color=#5da1c1]VSYNC[/td][td][font=Monospace][size=32px][color=#ff5964]|[/td][td][size=3px] [right][url=https://vsync.io/][font=Tahoma][b][size=14px][glow=#022f40,1] [color=#ff5964]N[color=#fff]EXT GENERATION [/glow] [color=#ff5964] C[color=#022f40]OMMUNITY DRIVEN [/td][td][size=3px] [url=https://vsync.io/][font=Tahoma][size=14px][color=#0090c1] OF MONEY [glow=#022f40,1][color=#fff] CRYPTO-CURRENCY [/td][td][font=Monospace][size=32px][color=#ff5964]|[/td][td][size=7px] [url=https://goo.gl/Ykk5H8][font=monospace][size=2px][color=#ff5964] ▄▄▄ ▐█████▌ ██▀ ▀██ ██▄ ▄██ █████ ▄▄▄ ███ ▐█████▌ [color=#b5222b]█ ██▀ ▀██ ▀▀ ▀▀ ▀█ ██▄ ▄██ ▀ █████ ███ █ █ ▀▀ ▀▀ ▀▀[/td][td][size=7px] [url=https://goo.gl/zy3Yjf][font=monospace][size=2px][color=#0090c1] █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▀ ▀█ █ █ █ █ ▄ ▄ ▄ ▄ █ █ █ ▀ ▀ ▀ ▀ █ █ █ █ [color=#3a88af]█ █▄ ▄█ █ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄ ▀▀█ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀ █ ▄▀ █▀[/td][td][size=7px] [url=https://goo.gl/bSN9CB][font=monospace][size=2px][color=#1da1f2] ▄████▄▄ ▄ █▄ ██████████▀▄ ███ ███████████▀ ▐████▄ ██████████▌ ▄▄██████▄▄▄▄█████████▌ ▀████████████████████ [color=#078bdc] ▀█████████████████ ▄▄███████████████ ▀█████████████▀ ▄▄█████████▀ ▀▀██████████▀ ▀▀▀▀▀[/td][td][size=7px] [url=https://t.me/VSXcoin][font=monospace][size=2px][color=#0088cc] ▄▄████ ▄▄████████▌ ▄▄█████████▀███ ▄▄██████████▀▀ ▄███▌ ▄████████████▀▀ ▄█████ ▀▀▀███████▀ ▄███████▌ [color=#0771a7] ██ ▄█████████ █ ▄██████████▌ █ ███████████ █ ██▀ ▀██████▌ ██▀ ▀████ ▀█▌[/td][td][size=7px] [url=http://discord.gg/Arqhyqg][font=monospace][size=2px][color=#7289DA] ▄▄█▀▀ ▄▄▄▄▄▄▄▄ ▀▀█▄▄ ▐██▄▄██████████████▄▄██▌ ████████████████████████ ▐████████████████████████▌ ███████▀▀▀██████▀▀▀███████ ▐██████ ████ ██████▌ [color=#3e64e8]███████ ████ ███████ ▐████████▄▄▄██████▄▄▄████████▌ ▐████████████████████████████▌ █████▄▄▀▀▀▀██████▀▀▀▀▄▄█████ ▀▀██████ ██████▀▀ ▀▀▀ ▀▀▀[/td][td][font=Monospace][size=32px][color=#ff5964]|[/td][/tr][/table] [/quote]
|
|
|
Заданиями для перевода предлагаю сделать пару тем об альткоинах, о которых у нас нет тем с анонсами: Переводчикам рекомендую традиционно небольшим шрифтом вынести свой текст о непричастности к команде разработчиков, предупреждение об отсутствии в личной рекомендации к покупке этих криптовалют и т.п. Если, конечно, вы действительно не являетесь ни участником ICO, ни держателем этих монет. забрал 1 Перевод https://bitcointalk.org/index.php?topic=5230042
|
|
|
-----BEGIN BITCOIN SIGNED MESSAGE----- This is FP91G from bitcointalk.org forum and today's date is March 02, 2020 -----BEGIN SIGNATURE----- bc1qyn0mdf3tkrcaueepmqjcdtc3p3hjdlv9g280ac H4E6vb0E8Rvmw3Y7DcoWbnakTysF0bwI+cDE5+eqTZdwBMuP5yGCYIOCj0yXdj5Tie0Gj3H6nPx9xQ7XAQobOZE= -----END BITCOIN SIGNED MESSAGE-----
Please quote and verify!
|
|
|
МаштабируемостьВерсия Core 2.0 имеет много проблем маштабируемости из-за архитектурных недостатков, описанных ранее в этой статье. Core 3.0 пытается максимально устранить эти проблемы путем реализации проверенных концепций и принципов. Шаблон, который вы увидите чаще всего в Core 3.0, - это Builder Pattern, основанный на драйверах в сочетании с менеджером. Мы рассмотрим новую реализацию журнала, чтобы понять, как она работает и какие преимущества она приносит. МенеджерLogManager - это объект, который заботится об управлении всеми взаимодействиями с экземплярами logger. Он привязан к контейнеру, чтобы быть доступным для пакетов, и содержит только логику, специфичную для службы журнала. Он расширяет abstract Manager, который получает подсказку типа контракта реализации регистратора для обеспечения соответствия типа во время разработки. class LogManager extends Manager<Logger> { protected async createConsoleDriver(): Promise<Logger> { return this.app.resolve(ConsoleLogger).make(); } protected getDefaultDriver(): string { return "console"; } }
ServiceProvider1.ServiceProvider заботится о нескольких вещах, давайте разберем подробнее. 2.LogManager связан с контейнером как Singleton. Это означает, что он будет создан только один раз, чтобы гарантировать, что один и тот же экземпляр используется всеми пакетами. 3.Загружается LogManager, который заботится о создании экземпляра регистратора по умолчанию, в нашем случае консольного регистратора. driver method, ответственный за разрешение настроенного регистратора, привязан к контейнеру. Это связано как динамическое значение, чтобы гарантировать, что каждый раз, когда driver methodвызывается, мы разрешаем настроенный регистратор, поскольку этот регистратор может быть изменен в любое время пакетом. class ServiceProvider extends BaseServiceProvider { public async register(): Promise<void> { this.app .bind<LogManager>(Identifiers.LogManager) .to(LogManager) .inSingletonScope(); await this.app.get<LogManager>(Identifiers.LogManager).boot(); this.app .bind(Identifiers.LogService) .toDynamicValue((context: interfaces.Context) => context.container.get<LogManager>(Identifiers.LogManager).driver(), ); } }
Реализация пользовательских регистраторовТеперь, когда вы увидели, как LogManager создается и регистрируется в приложении, мы рассмотрим, как зарегистрировать пользовательскую реализацию через пакет. Еще раз разберем, чтобы понять, что происходит, шаг за шагом. 1. Мы определяем LogManager из контейнера, чтобы использовать его так же, как это делает Core внутри. 2. Мы вызываем метод extends в LogManager с именем и обратным вызовом, который отвечает за создание экземпляра регистратора. 3. Мы вызываем метод setDefaultDriver в LogManager, чтобы приложение знало, что регистратор pino должен быть возвращен при вызове метода LogManager.driver (). Если бы мы могли пропустить этот шаг, мы могли бы вручную вызвать LogManager.driver («pino»), чтобы получить экземпляр регистратора Pino. class ServiceProvider extends Providers.ServiceProvider { public async register(): Promise<void> { const logManager: LogManager = this.app.get<LogManager>(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. 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
|
|
|
Перевод. Оригинальная статья 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 имеет совершенно новое решение, которое было переписано с нуля с учетом простоты, маштабируемости и тестируемости. // 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 InversifyCore 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-apihttps://github.com/inversify/InversifyJS/tree/master/wiki
|
|
|
Ratimov, присоединяюсь к поздравлениям. Спасибо за вашу работу по раздаче заслуг.
|
|
|
Перевод https://bitcointalk.org/index.php?topic=5224177.msg53796328#msg53796328Автор темы: dkbit98Почти каждый день мне приходится архивировать какую-то страницу или пост на форуме Bitcointalk или на каком-либо другом веб-сайте. Таким образом, страница архивируется и сохраняется ее состояние в определенное время, что может быть использовано в качестве доказательства или для справки. Есть несколько вариантов архивирования, и я опубликую их здесь с кратким пояснением. 1. Wayback Machine - Самый популярный и крупнейший веб-сайт архивирования с более чем 150 миллиардами заархивированных страниц. Легко сохранять или просматривать страницы, и есть расширения и сценарии, чтобы сделать это еще быстрее. http://web.archive.org/2. Archive.is или Archive.today со всеми другими доменами является вторым по величине веб-сайтом для архивирования. Я думаю, что он немного быстрее и проще в использовании. Существуют расширения для более быстрого архивирования. https://archive.is/3. Archive.st - хорошая альтернатива, когда другие сайты перегружены или не могут архивировать определенные веб-страницы. https://archive.st/4. Freezepage - тоже хорошая альтернатива, но она имеет ограниченный объем информации и другие ограничения. http://www.freezepage.com/5. Arweave это блокчейн-альтернатива для архивирования, где все сохраняется на блокчейне permaweb навсегда. Вам придется использовать расширение браузера для архивации страниц, и вы получите монеты 1AR coin для начала работы. Сервис немного медленнее, чем централизованные решения, но будете уверены, что файлы не могут быть удалены. Arweave работает с теми сайтами, где не работают другие архиваторы, и он может архивировать PDF-файлы размером до 3 МБ. https://www.arweave.org/archiving.htmlЧто же является лучшим вариантом для архивирования? -Вы можете использовать все эти инструменты или комбинировать их. У каждого из них есть свои преимущества и недостатки, но все они полезны. Bitcointalk архив:Примечание:Эти инструменты часто используются в разделе ScamAccusation для архивирования страницы в качестве доказательства: https://bitcointalk.org/index.php?board=83.0
|
|
|
Ratimov,спасибо. для меня эти EIP темный лес. Я по русски не понимаю зачем и длячего.
|
|
|
Спасибо, поправил, почему пишут когорта? на русском точно не звучит.
|
|
|
Уважаемые майнеры!
Если у вас простаивает оборудование, готов снять его в аренду.
Требуется более-менее стабильный онлайн. Карты Nvidia 1050Ti и новее.
Деньги обсудим в Л.С. Вопросы задавайте тут, чтобы всем было полезно.
P.S. Буква "Ы" в заголовке темы интересно отобразилась.
линукс нужно ставить?
|
|
|
перевод статьи https://www.cryptoninjas.net/2020/02/17/consensys-grants-funds-third-cohort-of-projects-to-benefit-the-ethereum-ecosystem/17 февраля 2020 ConsenSys Grants финансирует третью когорту проектов в интересах экосистемы EthereumПрограмма ConsenSys Grants, запущенная на Devcon 4 в 2018 году, призвана стимулировать рост уровня инфраструктуры Ethereum с помощью премий и грантов для проектов с открытым исходным кодом ... На Devcon 4 в 2018 году Джозеф Любин, соучредитель Ethereum и основатель ConsenSys, одной из крупнейших в мире блокчейн компаний, занимающейся созданием инструментов, инфраструктуры и приложений для сети Ethereum, объявил что создал грантовый фонд в размере 550 000 долларов США для проектов по созданию экосистемы Ethereum. ConsenSys Grants финансирует проекты с открытым исходным кодом, которые приносят пользу экосистеме Ethereum. Поддерживаемые проекты включают в себя такие важные области, как базовая инфраструктура, улучшенные средства разработки и UX, безопасность и доступ к знаниям для разработчиков, пользователей и проекты, влияющие на социальную сферу. С 2019 года в рамках программы грантов ConsenSys было профинансировано 25 проектов.Теперь ConsenSys Grants объявила третью группу проектов для получения финансирования:Инфраструктура:Ethereum State Analytics: $ 25 000 за доступный аналитический инструмент, отслеживающий рост Ethereum на основе Turbo Geth. https://github.com/ledgerwatch/turbo-gethРост экосистемы:BlockchainsForSchools: 10 000 долл. США для команды старшеклассников и студентов,на привлечение последующего поколение инноваторов, предпринимателей и инженеров в блокчейн-индустрию. https://github.com/raunakchowdhury/bfs-siteBURNER WALLET 2: Следующий шаг для проекта Burner Wallet -это расширение, выходящее за рамки простого инструмента регистрации/проведения мероприятий. Пользователь с небольшим опытом сможет использовать кошелек в качестве «дистанционного управления» для использования dapps. Вознаграждение 10 000 долларов. https://github.com/dmihal/burner-wallet-2Удобство Использования + Инструмент Для Разработки:EthereumETL: $ 10 000 за поддержку процессов обработки больших данных с помощью Ethereum. https://github.com/blockchain-etl/ethereum-etlПредыдущие проекты для получения финансирования грантами ConsenSys включают:БезопасностьLighthouse: клиент Ethereum Serenity, позволяющий пользоваться преимуществами защищенной платформы Ethereum proof-of-stake с пропускной способностью 1000x (50 000 долл. США). https://lighthouse.sigmaprime.io/Unikeys:аппаратные кошельки с биометрическими сенсорами, которые позволяют пользователям легко и безопасно проверять платежи, используя эти кошельки вместе со смартфонами, $ 25 000. https://www.unikeys.io/инфраструктураGas Station Network:: / EIP-1613: Решение проблемы с подключением "безгазового" пользователя надёжным децентрализованным способом, через сеть стимулирующих почтовых узлов(network of incentivized relays) - 25 000 долл. США. https://eips.ethereum.org/EIPS/eip-1613Notus: сервис, который позволяет пользователям запускать webhooks из событий смарт контракта Ethereum или подписок Graph Protocol GraphQL, $ 5000. https://www.notus.events/Zeropool: полностью анонимные и не отслеживаемые транзакции на Ethereum с поддержкой нескольких токенов ERC20, эфира и анонимных атомарных свопов, $ 25 000. https://github.com/zeropoolnetwork/PISA: создание и защита глобальных, защищающих конфиденциальность автономных off-chain смарт-контрактов, $25 000. 25 000 долл. США. https://pisa.watch/Tellor: децентрализованный "оракул", который обеспечивает эффективную, ненадежную и децентрализованную альтернативу для данных off-chain, 25 000 долларов https://www.tellor.io/DappNode: децентрализованная сеть персональных нод с удобным интерфейсом, 25 000 долларов. https://dappnode.io/Trueblocks: платформа, которая индексирует появление адресов, обеспечивая молниеносный доступ к полной и подробной истории транзакций с качественным аудитом для любого адреса, $ 25 000. https://github.com/Great-Hill-Corporation/trueblocks-coreУдобство использования + инструмент разработкиKickback: Помогает организаторам блокчейн-мероприятий привлечь новых участников с минимальными знаниями или опытом взаимодействия с dapps и смарт-контрактами, 10 000 долларов. https://kickback.events/Vyper: контрактно-ориентированный язык программирования Python, ориентированный на виртуальную машину Ethereum (EVM) - 30 000 долларов. https://github.com/vyperlang/vyper/Alice: мобильное приложение для простого создания собственных мобильных приложений, 25 000 долларов. https://github.com/vyperlang/vyper/Ethers.js: полная библиотека Ethereum JavaScript для создания кошельков, фреймворков и инструментов с акцентом на безопасность, компактность и простоту, 25 000 долларов США. https://docs.ethers.io/ETH Dev Tools: инструмент для расширения хрома как "Swiss-Army knife" ( как швейцарский армейский нож или все в одном), который дает разработчикам мощные возможности проверки, отладки и ручного тестирования во время разработки dapp, $ 10 000. https://kauri.io/article/03a1ce4d66aa47e2a935f7d65f936371/eth-dev-toolsMailchain. Простая отправка и получение мультимедийных HTML-сообщений между публичными адресами блокчейна через простой интерфейс, похожий на электронную почту, стоимостью 25 000 долларов. https://mailchain.xyz/Reach: язык программирования / платформа разработки, которая устраняет сложности блокчейна и автоматически формально проверяет все dapp, $ 25 000 https://github.com/reach-shTribute: микро платежи в DeFi, построенные на основе rDAI и основанные на перенаправлении потоков процентов от криптохолдеров на все, что владелец желает поддержать, $ 10 000. https://github.com/pi0neerpat/tributeСоциальныеRibbon Blockchain: приложение для стимулирования общественного здравоохранения: использование токенов для стимулирования программ внесения позитивных изменений в образ жизни и снижения нагрузки на медицинскую систему, 25 000 долларов США. https://ribbonblockchain.com/Nori: Использование технологии блокчейна для стимулирования удаления углерода. Nori предотвращает мошенничество и двойной учет на углеродном рынке, и токен NORI позволяет миру установить действительную рыночную цену за удаление тонны углекислого газа из атмосферы - 10 000 долларов. https://nori.com/Образование + технические знанияBlack Girls CODE Blockchain Immersion Program: трехуровневая блокчейн-программа, которая фокусируется на образовании, исследованиях и предоставлении “hackternships” (программы стажировки) для тестирования практических знаний экосистемы, $25 000. http://www.blackgirlscode.com/Africa Blockchain Developers Program: предоставление африканским разработчикам возможности приобрести навыки, необходимые для работы в отрасли разработки блокчейн технологий, $10,000. https://afriblockchain.org/developer/«Sigma Prime чрезвычайно благодарна за поддержку, полученную от ConsenSys. Этот грант помог нам расширить команду разработчиков Lighthouse, что позволило нам нанимать и сохранить команду из удивительных и талантливых работников. Мы гордимся всем прогрессом, достигнутым за последние несколько месяцев, когда Lighthouse стал ведущим в реализации Eth2. Финансирование, полученное от ConsenSys, способствует достижению наших целей ». - Mehdi Zerouali, директор Sigma Prime «ConsenSys Grants - это больше, чем деньги; Они помогли команде понять, что она на правильном пути, и дали одобрение от сообщества. Отличный инструмент, чтобы показать сообществу, что это шаг в правильном направлении». - Yoav Weiss, технический директор, TabooKey (Gas Station Network) «Девушки программисты выходят из программы обучения разносторонними, образованными и способными конкурировать в технологии блокчейна. Они рассказывают свою историю через сообщества, в которых общаются. Это потрясающе. Им сделали платформу для ознакомления с экосистемой блокчейна ». - Ewurabena Ashun, Управление и развитие учебных программ, Black Girls Code
|
|
|
👍
Почерпнул из темы по эфиру пару заданий для переводов: Первую лучше оформить отдельной темой, а вторую можно в основную эфировскую опубликовать. забрал вторую
|
|
|
У тебя у самого больше 25 невыданных меритов, сам бы и оценил, раз видишь полезность. А копить мериты само по себе не есть хорошо. А то интересно получается, я увидел полезные посты, которые никто не оценил, и вместо того, чтобы их оценить самому, пойду кину их в тему и позову сорсов. Гениально. Насяльника, задание выполнено. по 2 мерит отправлено, осталось 22. жду новых распоряжений. себя не могу оценить https://bitcointalk.org/index.php?topic=5225972.msg53842772#msg53842772
|
|
|
|