### 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}
```