Вам нужно иметь конечные точки. / транзакция / трансляция и / транзакция.
мы собираемся отправить данные транзакции в / транзакции / широковещание на случайном узле в нашей сети. Первое, что произойдет в этой конечной точке, мы создадим новую транзакцию из отправленных данных. Поэтому у вас уже должен быть метод для создания в вашей блокчейне.
после создания новой транзакции, мы должны передать эту транзакцию каждому узлу в сети. эта трансляция будет получена в конечной точке транзакции во всех других сетях.
Каждый узел в нашей цепочке блоков имеет массив URL-адресов других узлов. Таким образом, широковещание означает отправку новых транзакций всем другим узлам в массиве. небольшой фрагмент кода будет выглядеть следующим образом.
const requestPromises = [];//sending transaction to each node returns a promise. so we store each promise inside the array.
blockchain.networkNodes.forEach(networkNodeUrl => {
const requestOptions = {
uri: networkNodeUrl + '/transaction',
method: 'POST',
body: newTransaction,
json: true
};
requestPromises.push(rp(requestOptions)); //I used request-promise library
});
Как только все эти обещания будут выполнены, это означает, что наша транзакция успешно создана.
Promise.all(requestPromises)
.then(data => {
res.json({ note: 'Transaction created and broadcast successfully.' });
});