IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Блокчейн (от англ. blockchain, «цепочка блоков») — это распределённая и децентрализованная база данных, которая используется для записи и хранения информации таким образом, чтобы она была защищена от подделки или изменения. Основное применение блокчейна связано с криптовалютами, но технология находит применение и в других областях....

продолжить чтение


В контексте майнинга идентификатор кошелька майнера — это адрес криптовалютного кошелька, на который майнинг-пул (или сеть в случае соло-майнинга) отправляет награду за добытые блоки или шары....

продолжить чтение


Программа-майнер — это программное обеспечение, которое позволяет устройствам (например, компьютеру, ферме или ASIC) участвовать в процессе майнинга криптовалют. Она выполняет вычисления для решения математических задач, необходимых для добычи новых блоков в блокчейне, и подключает оборудование пользователя к сети криптовалюты или майнинг-пулу....

продолжить чтение


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

продолжить чтение


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

продолжить чтение


В майнинговом пуле, где добыча блока ведётся на нескольких распределённых серверах одновременно, подсчёт общей сложности раунда требует учета всех шар (shares), отправленных майнерами в пул, с учётом их сложности. Вот пошаговое объяснение, как это сделать...

продолжить чтение


В майнинговом пуле, где добыча блока ведётся на нескольких распределённых серверах одновременно, подсчёт общей сложности раунда требует учета всех шар (shares), отправленных майнерами в пул, с учётом их сложности. Вот пошаговое объяснение, как это сделать...

продолжить чтение


Proof of Work (PoW) — это один из самых популярных и ранних механизмов консенсуса в блокчейн-сетях. Он используется для обеспечения безопасности, децентрализации и согласования данных между участниками сети. В основе PoW лежит выполнение вычислительных задач, которые требуют значительных ресурсов, что делает манипуляцию сетью крайне сложной и дорогостоящей....

продолжить чтение


В контексте майнинга "монета" (или "койн", от англ. coin) — это криптовалюта, которая создаётся (добывается) майнерами с использованием вычислительных мощностей. Майнеры решают сложные математические задачи, чтобы верифицировать транзакции в блокчейне и добавлять новые блоки. В награду за свои усилия они получают определённое количество монет этой криптовалюты....

продолжить чтение


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

продолжить чтение


DTO (Data Transfer Object) действительно по своей сути является простым и плоским объектом, предназначенным для передачи данных между слоями приложения. Его основная цель — перенос данных, а не реализация поведения или бизнес-логики. Однако в практике программирования DTO может включать методы, если они соответствуют следующим условиям:...

продолжить чтение


В Go преобразование структур между архитектурными слоями, таких как преобразование DTO (Data Transfer Object) в Entity, часто необходимо для соблюдения принципов разделения ответственности. Это делается для того, чтобы каждое архитектурное звено работало только с теми структурами данных, которые ему нужны, и избегало ненужной связи между слоями....

продолжить чтение


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

продолжить чтение


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

продолжить чтение


Инициализация конфигурации из нескольких источников (.env, параметры командной строки, config.yaml) — это распространённая задача в Go. Принципиальный порядок инициализации часто следующий:...

продолжить чтение


Пакет envconfig в Go предназначен для удобной загрузки переменных окружения в структуры. Это популярный инструмент, который позволяет легко маппить переменные окружения на заранее определённые поля структуры и упрощает управление конфигурацией приложения....

продолжить чтение


Инициализация конфигурации из нескольких источников (.env, параметры командной строки, config.yaml) — это распространённая задача в Go. Принципиальный порядок инициализации часто следующий:...

продолжить чтение


Зелёные потоки — это потоки, которые управляются не операционной системой (ОС), а пользовательской библиотекой или рантаймом (в случае Go это рантайм Go). Они позволяют управлять параллельностью на уровне программы, без участия планировщика ОС, что делает их гораздо легче и менее ресурсоёмкими по сравнению с системными потоками....

продолжить чтение


Кооперативная многозадачность — это модель многозадачности, в которой задачи (или горутины, если говорить о Go) сами определяют, когда уступить управление другим задачам. В этой модели операционная система (или планировщик) не прерывает задачу автоматически; вместо этого задачи добровольно освобождают процессор, чтобы другие задачи могли выполняться....

продолжить чтение