Skip to content

Instantly share code, notes, and snippets.

@mnill
Last active May 2, 2023 17:55
Show Gist options
  • Save mnill/bd712ea280ed0052dcb9ab04f40475f1 to your computer and use it in GitHub Desktop.
Save mnill/bd712ea280ed0052dcb9ab04f40475f1 to your computer and use it in GitHub Desktop.
// Запуск локального теснета с 6 валидаторами на одной машине, debian 11
// Лучше побольше цпу и диск от 200 гигабайт
// Зависимости
apt update
apt install jq build-essential git tmux
apt install libc6=2.31-13+deb11u4
apt-get install pkg-config libssl-dev libzstd-dev libclang-dev
apt-get install libgoogle-perftools-dev
// увеличиваем разрешенное количество открытых файлов/коннектов
ulimit -n 102400
//ставим раст
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone --recursive https://github.com/tonlabs/ton-labs-node
git clone --recursive https://github.com/tonlabs/ton-labs-node-tools
// тонос-кли нужен чтобы собирать сообщения для отправки сеть
git clone https://github.com/tonlabs/tonos-cli.git
cd tonos-cli
cargo update
cargo build --release
cp ./target/release/tonos-cli /usr/bin/tonos-cli
// дальше идем в
cd /root/ton-labs-node/tests/test_run_net/
//В файле test_run_net.sh
// git clone https://github.com/tonlabs/ton-labs-node-tools меняем на
git clone --recursive https://github.com/tonlabs/ton-labs-node-tools
// cd ton-node-tools меняем на
cd ton-labs-node-tools
// В самом низу добавляем sleep 36000 чтобы не выключалось
// Так же нода пытается найти 200 блок //find_block "-1:8000000000000000, 200"
// вот ', 200' можно убрать, потому что не всегда успевает 200 блоков сделать за 10 минут.
// Дальше в remove_junk.sh убираем $TEST_ROOT/ у rm $TEST_ROOT/zero_state_tmp.json rm $TEST_ROOT/zero_state_tmp_2.json
// В файле zero_state_blanc_2.json находим второй аккаунт с адресом "-1:00df5b4d0f76e47d8b049bfdf9ae2f7227515155230eb68c6bd3ab15afa58f90"
// меняем весь этот аккаунт на наш, чтобы пользоватся как мультисигом, я сделал для вас multisig2
{
"acc_type_name": "Active",
"id": "-1:15ee4ccba50d8bdf04c044d20a85324e18188671b2b15c9e97895c010c1c4b12",
"workchain_id": -1,
"boc": "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",
"last_paid": 0,
"last_trans_lt": "0_0",
"balance": "100001000000000",
"code": "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",
"code_hash": "1974b06efa89ba22d1962d06efaef6d00751b7cdc3156c151bb0cc1c504e7e8c",
"data": "te6ccgEBAgEAmwAB5bwaFtqbYGlWbRs5LYUdL1M/VElwZuVUVo9f/zEfWJelAAAAAAAAAADeDQttTbA0qzaNnJbCjpepn6okuDNyqitHr/+Yj6xL0oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgAAAAAAABwhABAEWgF4NC21NsDSrNo2clsKOl6mfqiS4M3KqK0ev/5iPrEvSgEA==",
"data_hash": "aab7618b2b447ce2214a791f6807242c97c96f82ed1aa9538fd35d31ba144606",
"acc_type": 1
},
// это мультисиг2, с ключами
{
"public": "bc1a16da9b6069566d1b392d851d2f533f54497066e554568f5fff311f5897a5",
"secret": "b8d88703835fcf6de43bcdcbc02f5b76ba2a4d4a6956e242778b00e9acfedaae"
}
// все, можно билдить и запускать
chmod +x remove_junk.sh
chmod +x test_run_net.sh
./test_run_net.sh
// Ждем когда все соберется и запустится, и в другом окне идем в
cd /root/ton-labs-node-tools/target/release
// Кладем сюда ключи от мультисига в keys.json и аби https://github.com/EverSurf/contracts/blob/main/multisig2/build/SafeMultisig.abi.json
// Энкодим сообщения для отправки через консоль
tonos-cli message --raw --output message.boc "-1:15ee4ccba50d8bdf04c044d20a85324e18188671b2b15c9e97895c010c1c4b12" sendTransaction "{\"dest\":\"0:61df89c68098ba29d085c423c49f8622adbcea58c6768dfe7021892434b74f93\",\"value\":1000000000,\"bounce\":false,\"flags\":1,\"payload\":\"te6ccgEBAQEABgAACCiAmCM=\"}" --abi SafeMultisig.abi.json --sign keys.json
// отправляем сообщение через консоль, результат должен быть success
./console -C /root/ton-labs-node/tests/test_run_net/console1.json --cmd "sendmessage message.boc"
// проверяем что сообщение дошло
./console -C /root/ton-labs-node/tests/test_run_net/console1.json --cmd "getaccount 0:61df89c68098ba29d085c423c49f8622adbcea58c6768dfe7021892434b74f93 test.json"
вот и все
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment