# Run A Local Test Network

## Download go-u2u

Please check out and clone go-u2u source code:

```
git clone https://github.com/unicornultrafoundation/go-u2u
```

## Scripts

Scripts to run fakenet are located at `demo` folder, it contains these scripts:

* start network: `./start.sh`;
* stop network: `./stop.sh`;
* clean data and logs: `./clean.sh`;

You can specify number of genesis validators by setting N environment variable.

## Balance transfer example

from `demo/` dir

* Start network:

```sh
N=3 ./start.sh
```

* Attach js-console to running node0:

```sh
go run ../cmd/u2u attach http://localhost:4000
```

* Check the balance to ensure that node0 has something to transfer (node0 js-console):

```js
eth.getBalance(eth.accounts[0]);
```

output shows the balance value:

```js
1e+27
```

* Get node1 address:

```sh
go run ../cmd/u2u attach --exec "eth.accounts[0]" http://localhost:4001
```

output shows address:

```js
"0x02aff1d0a9ed566e644f06fcfe7efe00a3261d03"
```

* Transfer some amount from node0 to node1 address as receiver (node0 js-console):

```js
eth.sendTransaction(
	{from: eth.accounts[0], to: "0x02aff1d0a9ed566e644f06fcfe7efe00a3261d03", value:  "1000000000"},
	function(err, transactionHash) {
        if (!err)
            console.log(transactionHash + " success");
    });
```

output shows unique hash of the outgoing transaction:

```js
0x68a7c1daeee7e7ab5aedf0d0dba337dbf79ce0988387cf6d63ea73b98193adfd success
```

* Check the transaction status by its unique hash (js-console):

```sh
eth.getTransactionReceipt("0x68a7c1daeee7e7ab5aedf0d0dba337dbf79ce0988387cf6d63ea73b98193adfd").blockNumber
```

output shows number of block, transaction was included in:

```
174
```

* As soon as transaction is included into a block you will see new balance of both node addresses:

```sh
go run ../cmd/u2u attach --exec "eth.getBalance(eth.accounts[0])" http://localhost:4000
go run ../cmd/u2u attach --exec "eth.getBalance(eth.accounts[0])" http://localhost:4001
```

outputs:

```js
9.99999999978999e+26
1.000000000000001e+27
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.u2u.xyz/network/run-a-local-test-network.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
