Overview of wingetopt
mastergetopt library designed for Windows compilers. It enables the compilation of Linux-based software that relies on the getopt utility on Windows environments. The source code is derived from the MinGW-runtime project.repository·master·Indexed 26 days ago
https://github.com/ton-blockchain/tonThe reference implementation for The Open Network (TON) blockchain, featuring the node/validator, lite-client, tonlib, and the FunC compiler. Includes documentation for deploying validators via Docker and Kubernetes across various environments including AWS, GCP, and Ali Cloud, as well as configuration for the validator-engine and lite-server.
getopt library designed for Windows compilers. It enables the compilation of Linux-based software that relies on the getopt utility on Windows environments. The source code is derived from the MinGW-runtime project.The Storage Provider is a smart-contract system designed for concluding storage agreements. It ensures that a provider stores a file by linking payments to proof of storage. Key features include:
Global version parameter (specified in ConfigParam 8 of block.tlb) to enable or disable specific features. As the blockchain evolves, new versions introduce new TVM instructions, changes to the c7 tuple (the context tuple available to smart contracts), and modifications to gas limits or fee calculations. Developers must ensure their smart contracts are compatible with the global version active on the network (e.g., Mainnet vs Testnet).Pull the latest official TON Docker image from the GitHub Container Registry using docker pull.
docker pull ghcr.io/ton-blockchain/ton:latestTo build the official TON Docker image from the source code, use the following commands:
git clone --recursive https://github.com/ton-blockchain/ton.git
cd ton
docker build .To build the TON test suite, navigate to your build directory. You can build specific test targets using either ninja or cmake.
Available test targets include:
test-ed25519test-biginttest-vmtest-fifttest-cellstest-smartconttest-nettest-tdactortest-tdutilstest-tonlib-offlinetest-adnltest-dhttest-rldptest-rldp2test-catchaintest-fectest-tddbtest-dbtest-validator-session-stateninja test-ed25519 test-bigint test-vm test-fift test-cells test-smartcont test-net test-tdactor test-tdutils test-tonlib-offline test-adnl test-dht test-rldp test-rldp2 test-catchain test-fec test-tddb test-db test-validator-session-statecmake --build . --target test-ed25519 test-bigint test-vm test-fift test-cells test-smartcont test-net test-tdactor test-tdutils test-tonlib-offline test-adnl test-dht test-rldp test-rldp2 test-catchain test-fec test-tddb test-db test-validator-session-stateIf you encounter a Pending PersistentVolumeClaim error stating it is waiting for an external provisioner (ebs.csi.aws.com), follow these steps to configure the Amazon EBS CSI driver in EKS:
eksctl utils associate-iam-oidc-provider --region=us-west-2 --cluster=k8s-my --approveeksctl create iamserviceaccount \
--region us-west-2 \
--name ebs-csi-controller-sa \
--namespace kube-system \
--cluster k8s-my \
--attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--approve \
--role-only \
--role-name AmazonEKS_EBS_CSI_DriverRoleeksctl create addon --name aws-ebs-csi-driver --cluster k8s-my --service-account-role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/AmazonEKS_EBS_CSI_DriverRole --forceNote: Replace us-west-2 and k8s-my with your actual region and cluster name.eksctl utils associate-iam-oidc-provider --region=us-west-2 --cluster=k8s-my --approve
eksctl create iamserviceaccount \
--region us-west-2 \
--name ebs-csi-controller-sa \
--namespace kube-system \
--cluster k8s-my \
--attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--approve \
--role-only \
--role-name AmazonEKS_EBS_CSI_DriverRole
eksctl create addon --name aws-ebs-csi-driver --cluster k8s-my --service-account-role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/AmazonEKS_EBS_CSI_DriverRole --forceDeploy to AWS EKS using an Elastic IP and a LoadBalancer service.
Prerequisites:
Setup Steps:
ton-aws.yaml:<PUBLIC_IP> with your Elastic IP.<ELASTIC_IP_ID> with the Elastic IP allocation ID from the AWS console.StorageClass name to use fast storage.kubectl apply -f ton-aws.yamlVerification:
To build TON binaries on Ubuntu, first install the required system libraries and LLVM 21 clang, then execute the provided build script.
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 21 clangcp assembly/native/build-ubuntu-shared.sh .
chmod +x build-ubuntu-shared.sh
./build-ubuntu-shared.shsudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 21 clang
cp assembly/native/build-ubuntu-shared.sh .
chmod +x build-ubuntu-shared.sh
./build-ubuntu-shared.shTo generate Tonlib libraries for iOS using Xcode, follow these steps:
https://github.com/labraburn/tonlib-xcframework repository.swift run builder --output ./build --cleanecho ./build/TON.xcframework/* | xargs -n 1 cp -R ./Resources/Headersswift run builder --output ./build --clean
echo ./build/TON.xcframework/* | xargs -n 1 cp -R ./Resources/Headers