### Install MacOS Dependencies Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/build.md Install Homebrew and then install GMP, Erlang R26, CMake, and pkg-config using Homebrew. Ensure PATH is updated as requested by Homebrew. ```sh brew install gmp erlang@26 cmake pkg-config ``` -------------------------------- ### Install ArDrive CLI Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/wallets/generating-cold-wallet.md Install the ArDrive CLI globally using npm. Ensure Node.js and npm are installed beforehand. ```sh npm install -g ardrive-cli ``` -------------------------------- ### Start Arweave Miner with Command-Line Arguments Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/sample-configs/solo-mining.md Use this command to start the Arweave miner with specific configurations for solo mining. Ensure you replace the placeholder mining address with your actual wallet address. ```bash ./bin/start \ enable randomx_large_pages \ peer peers.arweave.xyz \ data_dir /opt/data \ mine \ vdf_server_trusted_peer vdf-server-3.arweave.xyz \ transaction_blacklist_url https://public_shepherd.arweave.net \ mining_addr En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI \ storage_module 0,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 1,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 2,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 3,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 4,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 5,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 6,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 7,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 ``` -------------------------------- ### Start Arweave Node with Wrapper Script Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/configuration.md Use this script to start your Arweave node. It includes basic auto-restart functionality if the node crashes. Ensure you have a configuration file ready. ```sh ./bin/start config_file config.json ``` -------------------------------- ### Start Arweave Node with Custom Configuration Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/debugging.md Initialize and start an Arweave test node using a custom genesis block (B0), a specified wallet address, and a list of storage modules. The node will use these configurations upon startup. ```sh (main-localtest@127.0.0.1)26> ar_test_node:start(#{ b0 => B0, addr => Addr, storage_modules => [StorageModule] }). ok ``` -------------------------------- ### Configure Custom Storage Module Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/debugging.md Define a storage module configuration, specifying the data range (end offset, start offset) and the packing type along with the owner's address. This example configures storage for bytes 0 to 4,000,000 using `replica_2_9` packing. ```sh (main-localtest@127.0.0.1)38> StorageModule = {4_000_000, 0, {replica_2_9, Addr}}. {4000000,0, {replica_2_9,<<168,91,62,65,253,161,125,236,107,245,195, 213,227,180,107,100,182,59,242,8,138,225, 96,222,...>>}} ``` -------------------------------- ### Install Linux Dependencies Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/build.md Add the RabbitMQ Team PPA for Erlang R26, update package lists, and install required build dependencies on Ubuntu. ```sh sudo add-apt-repository ppa:rabbitmq/rabbitmq-erlang-26 sudo apt update sudo apt install erlang libssl-dev libgmp-dev libsqlite3-dev make cmake gcc g++ ``` -------------------------------- ### Start First Arweave Node Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/blog/2025-03-13-multi-node-startup-issue-on-arweave-2.9.5-alpha1.md Starts the first Arweave node using a configuration file and specifying the node name via an environment variable. ```sh # first node: touch config1.json NAME=a@127.0.0.1 ./bin/arweave console config1.json ``` -------------------------------- ### Start End-to-End Debug Shell Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/debugging.md Launch a debug shell within the end-to-end testing environment. This requires waiting for the 'peer2' to start. ```bash ./bin/e2e_shell ``` -------------------------------- ### Start Arweave with TLS Certificates Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/tls.md Use this command to start your Arweave node with TLS enabled. Ensure the paths to `privkey.pem` and `cert.pem` are correct and accessible by the Arweave user. This configuration is for the Arweave CLI. ```sh ./bin/start port 8443 tls_key_file /etc/letsencrypt/live/{your-domain-name}/privkey.pem tls_cert_file /etc/letsencrypt/live/{your-domain-name}/cert.pem # rest of your arweave cli arguments ``` -------------------------------- ### Start Arweave Node with Environment Variables Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/blog/2025-03-13-multi-node-startup-issue-on-arweave-2.9.5-alpha1.md Configure `NAME` and `COOKIE` environment variables to start a specific Arweave node. Use `export` for persistent settings or prefix the command for temporary ones. ```sh export NAME=mynode@127.0.0.1 export COOKIE=mycookie ./bin/start ${arweave_parameters} ``` ```sh NAME=mynode@127.0.0.1 COOKIE=mycookie ./bin/start ${arweave_parameters} ``` -------------------------------- ### Start Arweave as Daemon Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/entrypoint.md Starts the Arweave node in the background as a Unix daemon. ```sh ./bin/arweave daemon ${parameters} ``` -------------------------------- ### Start Arweave with Erlang Console Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/entrypoint.md Starts the Arweave node and provides access to its output directly from the terminal via an Erlang console. ```sh ./bin/arweave console ${parameters} ``` -------------------------------- ### Display Subcommand Help Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/entrypoint.md Get detailed help for a specific subcommand by passing 'help' followed by the subcommand name. ```sh ./bin/arweave help ${subcommand} ``` -------------------------------- ### Install arweave-js with ECDSA support Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/protocol/ecdsa-keys.md Install the arweave-js library from the dedicated 'ec' npm tag to enable native ECDSA support. This is required for creating and using ECDSA wallets with arweave-js. ```bash npm install arweave@ec ``` -------------------------------- ### Get Transaction Data (HTML Example) Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Retrieves the decoded data from a transaction. The Content-Type defaults to the one specified in a tag, or can be specified with a mime extension. ```html ... ``` -------------------------------- ### Access Arweave Node Metrics Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/debugging.md Fetch node metrics via the GET /metrics endpoint. This example shows the `v2_index_data_size_by_packing` metric, which provides details on data size, storage module, and packing configuration. ```sh v2_index_data_size_by_packing{store_id="storage_module_0_replica_2_9_1",packing="replica_2_9_1",partition_number="0",storage_module_size="2000000",storage_module_index="0",packing_difficulty="2"} 786432 ``` -------------------------------- ### Command-line Configuration for Repacking In Place Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/sample-configs/repack-in-place.md Use this command-line configuration to initiate the 'repack_in_place' process. Ensure all parameters, including mining addresses and storage module details, are correctly set. ```bash ./bin/start \ enable randomx_large_pages \ peer peers.arweave.xyz \ data_dir /opt/data \ sync_jobs 200 \ vdf_server_trusted_peer vdf-server-3.arweave.xyz \ transaction_blacklist_url https://public_shepherd.arweave.net \ mining_addr Q5EfKawrRazp11HEDf_NJpxjYMV385j21nlQNjR8_pY \ storage_module 0,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9,repack_in_place,Q5EfKawrRazp11HEDf_NJpxjYMV385j21nlQNjR8_pY.replica.2.9 \ storage_module 1,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9,repack_in_place,Q5EfKawrRazp11HEDf_NJpxjYMV385j21nlQNjR8_pY.replica.2.9 \ storage_module 2,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9,repack_in_place,Q5EfKawrRazp11HEDf_NJpxjYMV385j21nlQNjR8_pY.replica.2.9 \ storage_module 3,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9,repack_in_place,Q5EfKawrRazp11HEDf_NJpxjYMV385j21nlQNjR8_pY.replica.2.9 ``` -------------------------------- ### Get Arweave Network Info with NodeJS Request Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Utilize the 'request' module in NodeJS to fetch and parse Arweave network information. This example demonstrates a common pattern for making HTTP requests in older NodeJS projects. ```javascript let request = require("request"); let options = { method: "GET", url: "https://arweave.net/info", }; request(options, function (error, response, body) { if (error) { console.error(error); } console.log("Arweave network height is: " + JSON.parse(body).height); }); ``` -------------------------------- ### Hashing Benchmark Options Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/benchmarking.md Configure the hashing benchmark with options like randomx, jit, large_pages, and hw_aes. Defaults are recommended unless using very old hardware. ```bash ./bin/arweave benchmark hash [options] ``` -------------------------------- ### Run Arweave Node with Sync and Pack Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/sample-configs/sync-pack.md Use this command to start an Arweave node configured for syncing data from peers and packing it for storage. Ensure you replace the placeholder mining address with your own. This configuration includes settings for randomx large pages, peer discovery, data directory, sync jobs, VDF server, transaction blacklist, and multiple storage modules. ```bash ./bin/start \ enable randomx_large_pages \ peer peers.arweave.xyz \ data_dir /opt/data \ sync_jobs 200 \ vdf_server_trusted_peer vdf-server-3.arweave.xyz \ transaction_blacklist_url https://public_shepherd.arweave.net \ mining_addr En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI \ storage_module 0,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 1,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 2,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 3,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 4,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 5,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 6,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 7,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 ``` -------------------------------- ### VDF Server Command-line Configuration Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/sample-configs/vdf.md Use this command to start a VDF server with specific optimizations and peer restrictions. It enables randomx large pages, sets peers, specifies the data directory, and configures VDF client peers and local peers. ```bash ./bin/start \ enable randomx_large_pages \ peer peers.arweave.xyz \ data_dir /opt/data \ transaction_blacklist_url https://public_shepherd.arweave.net \ vdf hiopt_m4 \ vdf_client_peer 1.2.3.4 \ vdf_client_peer 5.6.7.8 \ vdf_client_peer 5.6.7.8:1985 \ vdf_client_peer node.example.com \ local_peer 1.2.3.4 \ local_peer 5.6.7.8 \ local_peer 5.6.7.8:1985 \ local_peer node.example.com ``` -------------------------------- ### VDF Benchmark Options Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/benchmarking.md Configure the VDF benchmark with mode, difficulty, and verification options. Specifying the network difficulty is advised for accurate results. ```bash ./bin/arweave benchmark vdf [options] ``` -------------------------------- ### Run Full Test Suite Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/automated-tests.md Execute the complete unit and integration test suite. Note that this can take a significant amount of time and may require multiple runs due to flaky tests. ```bash ./bin/start test ``` -------------------------------- ### Start Second Arweave Node Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/blog/2025-03-13-multi-node-startup-issue-on-arweave-2.9.5-alpha1.md Starts a second Arweave node, differentiating it from the first by using a different node name via an environment variable. ```sh # second node: touch config2.json NAME=b@127.0.0.1 ./bin/arweave console config2.json ``` -------------------------------- ### Initialize Genesis Block with Balance Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/debugging.md Create the initial block (B0) for a custom genesis block, funding a specified wallet address with a large balance. Note that 1 AR equals 10^12 Winstons. ```sh (main-localtest@127.0.0.1)36>[B0] = ar_weave:init([{Addr, 100_000_000_000_000_000_000, <<>>}]). [#block{nonce = 0,previous_block = <<>>, ...] ``` -------------------------------- ### Display Arweave Help Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/entrypoint.md Execute the script without arguments to display the main help page, listing all available subcommands. ```sh ./bin/arweave ``` -------------------------------- ### Upload Data Chunks Payload Example Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md An example JSON payload structure for uploading data chunks. Ensure all fields are correctly Base64URL encoded as specified. ```json { "data_root": "", "data_size": "a number, the size of transaction in bytes", "data_path": "", "chunk": "", "offset": "" } ``` -------------------------------- ### Start Arweave Node on a Remote Peer Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/debugging.md Use Erlang RPC to start an Arweave node on a different test node, such as 'peer1'. This is essential for multi-node testing scenarios. ```erlang (main-localtest@127.0.0.1)4> ar_test_node:remote_call(peer1, ar_test_node, start, []). ok ``` -------------------------------- ### Configure Storage Module with Custom Size Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/directory-structure.md Use this format when specifying a custom storage module size. Ensure the module index, size, and mining address are correctly provided. ```bash storage_module [storage_module_index],[storage_module_size],[your_mining_address].replica.2.9 ``` -------------------------------- ### Check Huge Memory Pages Configuration (Ubuntu) Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/os.md Execute this command to view the current status of huge memory pages. The output should indicate the total and free huge pages available. ```bash cat /proc/meminfo | grep HugePages ``` -------------------------------- ### Command-line Configuration for Repacking Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/setup/sample-configs/cross-module-repack.md Use this command-line configuration to start the Arweave miner with settings for cross-module repacking. Ensure you replace placeholder mining addresses with your own. The `sync_jobs 0` setting prevents syncing during repacking. ```bash ./bin/start \ enable randomx_large_pages \ peer peers.arweave.xyz \ data_dir /opt/data \ sync_jobs 0 \ vdf_server_trusted_peer vdf-server-3.arweave.xyz \ transaction_blacklist_url https://public_shepherd.arweave.net \ mining_addr En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI \ storage_module 0,unpacked \ storage_module 0,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 1,unpacked \ storage_module 1,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 2,unpacked \ storage_module 2,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 \ storage_module 3,unpacked \ storage_module 3,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9 ``` -------------------------------- ### Get Arweave Network Info with cURL Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Use cURL to make a GET request to the Arweave network's info endpoint to retrieve network status and height. This is a basic way to interact with any Arweave node. ```bash curl --request GET \ --url 'https://arweave.net/info' ``` -------------------------------- ### Prepare and Fetch Arweave Release Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/blog/2025-03-13-multi-node-startup-issue-on-arweave-2.9.5-alpha1.md Commands to create a directory, navigate into it, download, and extract the Arweave release archive. ```sh # prepare and fetch the release mkdir /opt/t cd /opt/t wget https://github.com/ArweaveTeam/arweave/releases/download/N.2.9.5-alpha1/arweave-2.9.5-alpha1.linux-x86_64.tar.gz tar zxvf arweave-2.9.5-alpha1.linux-x86_64.tar.gz ``` -------------------------------- ### Arweave Wallet to Wallet AR Transfer with Data Example Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md This JSON example demonstrates an AR transfer that also includes associated data. The 'data' field contains the base64 encoded data, and 'data_size' specifies its size. ```json { "format": 2, "id": "3pXpj43Tk8QzDAoERjHE3ED7oEKLKephjnVakvkiHF8", "last_tx": "NpeIbi93igKhE5lKUMhH5dFmyEsNGC0fb2Qysggd-kM", "owner": "posmE...psEok", "tags": [], "target": "pEbU_SLfRzEseum0_hMB1Ie-hqvpeHWypRhZiPoioDI", "quantity": "10000000000", "data_root": "PGh0b...RtbD4", "data_size": "234234", "data": "VGVzdA", "reward": "321579659", "signature": "fjL0N...f2UMk" } ``` -------------------------------- ### Launch Arweave Test Node Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/development/debugging.md Start a new Arweave test node with an initialized state, including a genesis block and initial transactions. This is the simplest way to begin an Arweave node for testing. ```erlang (main-localtest@127.0.0.1)1> ar_test_node:start(). ok ``` -------------------------------- ### Generate Wallet Keyfile Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/wallets/generating-cold-wallet.md Create a wallet keyfile using the generated seedphrase. Paste your seedphrase between the quotes. The keyfile will be saved as wallet.json. ```sh ardrive generate-wallet -s "PASTE_GENERATED_SEEDPHRASE_HERE" > ./wallet.json ``` -------------------------------- ### Get Transaction Data Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Retrieves the decoded data associated with a transaction. ```APIDOC ## GET /{id} ### Description Get the decoded data from a transaction. ### Method GET ### Endpoint https://arweave.net/{id} ### Response #### Success Response (200) Returns the transaction data. The Content-Type is determined by tags. ```html ... ``` #### Pending Response (202) ```bash pending ``` #### Error Response (400) ```bash Invalid hash. ``` #### Error Response (404) ```bash Not Found. ``` ``` -------------------------------- ### Get Transaction by ID (Pending Status) Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Indicates that a transaction is pending confirmation. ```bash pending ``` -------------------------------- ### Arweave Node Configuration Example Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/rate-limiting.md This JSON configuration demonstrates how to set various parameters for an Arweave node, including network settings, storage, and rate limiting for the HTTP API. ```json { "enable": [ "randomx_large_pages" ], "peers": [ "chain-1.arweave.xyz", "data-2.arweave.xyz", "data-3.arweave.xyz", "data-4.arweave.xyz", "vdf-server-3.arweave.xyz" ], "data_dir": "/opt/data_dir", "vdf_server_trusted_peers": ["vdf-server-3.arweave.xyz"], "transaction_blacklist_urls": ["https://public_shepherd.arweave.net"], "storage_modules": [ "0,En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI.replica.2.9" ], "mining_addr": "En2eqsVJARnTVOSh723PBXAKGmKgrGSjQ2YIGwE_ZRI", "max_connections": 250, "http_api.limiter.general.sliding_window_limit": 0, "http_api.limiter.general.leaky_limit": 450, "http_api.limiter.general.leaky_tick_interval": 30000, "http_api.limiter.general.leaky_tick_reduction": 450, "sync_jobs": 0 } ``` -------------------------------- ### Get Block by Height Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Retrieves a specific block from the Arweave network using its numerical height in the blockchain. ```APIDOC ## GET /block/height/{height} ### Description Get a block by its height. ### Method GET ### Endpoint https://arweave.net/block/height/{height} ### Parameters #### Path Parameters - **height** (String) - Required - The block height. #### Headers - **Accept** (String) - Optional - application/json - **X-Block-Format** (String) - Optional - 2 ### Response #### Success Response (200) - **nonce** (String) - The nonce of the block. - **previous_block** (String) - The hash of the previous block. - **timestamp** (Number) - The timestamp when the block was created. - **last_retarget** (Number) - The timestamp of the last retarget. - **diff** (String) - The difficulty of the block. - **height** (Number) - The height of the block in the chain. - **hash** (String) - The hash of the block. - **indep_hash** (String) - The independent hash of the block. - **txs** (Array) - A list of transaction IDs included in the block. - **tx_root** (String) - The Merkle root of the transactions. - **tx_tree** (Array) - The transaction tree structure. - **wallet_list** (String) - Identifier for the wallet list. - **reward_addr** (String) - The address receiving block rewards. - **tags** (Array) - Tags associated with the block. - **reward_pool** (Number) - The reward pool size. - **weave_size** (Number) - The size of the weave. - **block_size** (Number) - The size of the block. - **cumulative_diff** (String) - The cumulative difficulty. - **hash_list_merkle** (String) - The Merkle root of the hash list. - **poa** (Object) - Proof of Access data. #### Response Example (200) ```json { "nonce": "W3Jy4wp2LVbDFhGX_hUjRQZCkTdEbKxz45E5OVe52Lo", "previous_block": "YuTyalVBTNB9t5KhuRezcIgxVz9PbQsbrcY4Tpkiu8XBPgglGM_Yql5qZd0c9PVG", "timestamp": 1586440919, "last_retarget": 1586440919, "diff": "115792089039110416381168389782714091630053560834545856346499935466490404274176", "height": 422250, "hash": "_____8422fLZnBsEsxtwEdpi8GZDHVT-aFlqroQDG44", "indep_hash": "5VTARz7bwDO4GqviCSI9JXm8_JOtoQwF-QCZm0Gt2gVgwdzSY3brOtOD46bjMz09", "txs": ["IRPCjc_ws7aS5GWp4mwR2k-HuQy-zT_GWrgR6kRdbmI"], "tx_root": "lsoo-p3Tj7oblZ-54WVPHoVguqgw5rA9Jf3lLH6H8zY", "tx_tree": [], "wallet_list": "N5NJtXhgH9bPmXoSopehcr_zqwyPjjg3igel0V8G1DdLk_BYdoRVIBsqjVA9JmFc", "reward_addr": "Oox7m4HIcVhUtMd6AUuGtlaOoSCmREUNPyyKQCbz4d4", "tags": [], "reward_pool": 3026104059201252, "weave_size": 407672420044, "block_size": 937455, "cumulative_diff": "99416580392277", "hash_list_merkle": "akSjDrBKPuepJMOhO_S9C-iFp5zn9Glv57HGdN_WPqEToWC0Ukb37Gzs4PDA7oLU", "poa": { "option": "1", "tx_path": "xZ6vhVXw_0BlD-Xkv3KtfnJeLXykjkjUrwcPsXw2JUnie021At7I-fMZkt5EF_xOHtcdq4RIqXto1gwFAM5eZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfDSbuKpWzKZ9HP_N2I4gX6cUujNsJtelJULjHmbZp0XzmkBljlK4S1PMlSrTePIjfJdRfqvFNE8idpnj69X1P0zAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn4ybxD6lgdArqnPJzs7t8bU-7KfEb1YqpAOvbr6q3vmP-MWnCTWZJKTL90azeYZmHrTMx-iutuT6bP6CUC7zgHAfGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmTpFIGvz18gKl5rZ6p2Ve4yVeRzWNwibyVTKz80HSBYprfIpVJk9oRG3E5q1xRn5wErqyH2vFLbsLxDqKcR0vLunBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfDwBRWXT_vDxcaBxGmihJwlU_n_PFBCOsP-Lx3hSG6H6UGesIMAEYMmd2c5QixR-fCimhm_9S582cLzSUffsrAHliQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmP-RTrBhY9xCC1yywyehB7X6EmlBjyQBqm0y1L9Ex_dkswkf50rG-LE29UJP4st0bzFthHukfHvvWZY3bgIiog3L7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfD3YxQguhfH8daMBAQrveQq3MMp4iKB3khk5mbU34Ckl1q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj_kQ", "data_path": "bTVpffiN3SSDeqBEJpKiXegQGKKnprS_AFMh6zz4QRIU-8dJuvFzyKxqjkDHQvtKl0Eajfm18yZsjaAJkNhbAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAOH0cuoLq1CTbSelF9C59C-fcO3a3ywoceaNxRl4nQQH1BuwcpiNdDdZvEz6Pfk5wKbnsF_VwVIgrfcLZgsxoKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAefOoaNyW7ORmrzbZ5O7midzLByHooxjM5oEMJfZbQsY9mKS14G9fUEFmFaCPPJX6EXVGrUwROzDIWfHf8oHErAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAktmxYyC7BSV-MULrjzgdJJYfJY7lDFcKe3mo_EX19xoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA", "chunk": "aHQ6OTBweH1..." } } ``` #### Error Response (404) - **Message**: Block not found. #### Error Response Example (404) ```html Block not found. ``` ``` -------------------------------- ### Get Last Transaction ID Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Retrieve the ID of the last outgoing transaction for a given wallet address. ```http GET https://arweave.net/wallet/{address}/last_tx ``` -------------------------------- ### Launch Two Arweave Nodes with Screen and CPU Pinning Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/multiple-nodes.md Launches two Arweave nodes using `screen` for background management and `numactl` to pin each node to a specific set of CPU cores. This is recommended for performance optimization and to avoid dual-CPU issues. ```sh ARNODE=node1@127.0.0.1 \ ARCOOKIE=node1 \ screen -dmSL arweave.node1 -Logfile ./screenlog.node1 \ numactl --physcpubind=0-31 \ ./bin/start port 1984 data_dir /opt/data/node1; ARNODE=node2@127.0.0.1 \ ARCOOKIE=node2 \ creen -dmSL arweave.node2 -Logfile ./screenlog.node2 \ numactl --physcpubind=32-63 \ ./bin/start port 1985 data_dir /opt/data/node2; ``` -------------------------------- ### Get Transaction Data with Extension Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Retrieves transaction data with a specified MIME extension for content negotiation. ```APIDOC ## GET /tx/{id}/data.{extension} ### Description Get the decoded data from a transaction with specific mime extension. ### Method GET ### Endpoint https://arweave.net/tx/{id}/data.{extension} ### Parameters #### Path Parameters - **id** (String) - Required - Transaction ID - **extension** (String) - Required - Mime extension (example: ".html", ".txt", ".jpg") ### Response #### Success Response (200) Returns the transaction data with the specified extension. ```html ... ``` #### Pending Response (202) ```bash pending ``` #### Error Response (400) ```bash Invalid hash. ``` #### Error Response (404) ```bash Not Found. ``` ``` -------------------------------- ### Get Transaction Field Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/server/http-api.md Retrieves a specific field's value from a transaction by its ID and the field name. ```APIDOC ## GET /tx/{id}/{field} ### Description Get a single field from a transaction. ### Method GET ### Endpoint https://arweave.net/tx/{id}/{field} ### Parameters #### Path Parameters - **id** (String) - Required - Transaction ID - **field** (String) - Required - Field name, acceptable values: id, last_tx, owner, tags, target, quantity, data, data_root, data_size, reward, signature. #### Header Parameters - **Accept** (String) - Optional - application/json ### Response #### Success Response (200) Returns the value of the requested field. ```bash jUcuEDZQy2fC6T3fHnGfYsw0D0Zl4NfuaXfwBOLiQtA ``` #### Pending Response (202) ```bash pending ``` #### Error Response (400) ```bash Invalid hash. ``` #### Error Response (404) ```bash Not Found. ``` ``` -------------------------------- ### Start Arweave in Foreground Source: https://github.com/arweaveteam/docs.arweave.org-info/blob/master/mining/operations/entrypoint.md Launches the Arweave node in the foreground, allowing direct terminal output. This is equivalent to using the `./bin/start` script and is suitable for process managers like systemd as the VM will not fork. ```sh ./bin/arweave foreground ${parameters} ```