Хочу переписать этот код с Go на C++/Boost ради опыта работы с библиотеками типа asio.
package main
import "time"
import "strconv"
import "bytes"
import "crypto/sha256"
type Block struct {
Timestamp int64
Data []byte
PrevBlockHash []byte
Hash []byte
}
func (block *Block) SetHash() {
timestamp := []byte(strconv.FormatInt(block.Timestamp, 10))
headers := bytes.Join([][]byte{ block.PrevBlockHash, block.Data, timestamp }, []byte{})
hash := sha256.Sum256(headers)
block.Hash = hash[:]
}
Так как я не до донца понимаю, как устроен Golang, возникли вопросы насчет выбора типов данных. Timestamp из структуры Block можно оставить таким же uint64_t. Data, PrevBlockHash и Hash здесь массивы произвольной длины, кроме хэшей, который представлены 32-байтными массивами байт. Чем можно заменить эти массивы байт в C++? Использовать std::string? Я ведь не буду использовать const char* и рисковать сделать учечку памяти.
Какую библиотеку sha256 выбрать? SSL? Есть ли криптография в бусте?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости