-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updates README.md to make it easier to setup the powpeg node. #241
base: master
Are you sure you want to change the base?
Changes from 2 commits
1477748
7f531cc
c4d17d3
c3ea1b5
d30f5b4
5684dc3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,68 @@ | ||||||
# Quick Setup for macos x64 | ||||||
|
||||||
In case you would like to try a fool-proof setup for macos from scratch, you can try the following steps. | ||||||
You can also skip some of the steps if it is not applicable, for example, you don't need to install Java 1.8 if you have it already installed. | ||||||
|
||||||
You can also try your own variations. But the example provided here makes it easy for anybody to setup a powpeg node from scratch in an easy way. | ||||||
|
||||||
## Steps | ||||||
|
||||||
1. Install Java OpenJDK 1.8 from the binaries (if it is not installed yet) | ||||||
1. You can download it from here: `https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u-2021-05-08-08-14/OpenJDK8U-jdk_x64_mac_hotspot_2021-05-08-08-14.tar.gz` | ||||||
1. `cd` to the directory where you want to download it. It could be like `cd /Library/Java/JavaVirtualMachines/` | ||||||
2. Download it like this: `sudo curl -o adoptopenjdk-8.tar.gz -L https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u-2021-05-08-08-14/OpenJDK8U-jdk_x64_mac_hotspot_2021-05-08-08-14.tar.gz` | ||||||
3. Unzip it like this: `sudo tar -zxvf adoptopenjdk-8.tar.gz` | ||||||
4. The unzipped directory could be named like this `jdk8u302-b01`. Run an `ls` command to see it. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What do you think about including here the output of the command? |
||||||
2. Add it to the `.bash_profile`. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since the last two macOS versions, the default shell in macOS has been zsh(https://support.apple.com/lv-lv/guide/terminal/trml113/2.14/mac/14.0). Therefore, I think this should be done in the zsh profile file, and the same applies to the rest of the configuration done in the bash env files. |
||||||
1. Open the `.bash_profile` file with `nano` like this `nano ~/.bash_profile` and add the following 2 `export` lines: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
2. `export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk8u302-b01/Contents/Home/bin` | ||||||
3. `export PATH="$JAVA_HOME/bin:$PATH"` | ||||||
4. Save it and run the command: `source ~/.bash_profile` and restart the terminal. After this, the `java -version` command should return info. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same here; I think we should add the output as a sample. |
||||||
2. Install bitcoind | ||||||
1. `cd` to the directory where you want to download it. It could be `/Library/Bitcoin` (if it doesn't exit, you can create it running the command `sudo mkdir /Library/Bitcoin`) | ||||||
2. You can download version 0.18.1 (ideal for regtest) from here: `https://bitcoincore.org/bin/bitcoin-core-0.18.1/bitcoin-0.18.1-osx64.tar.gz` | ||||||
3. You can download version 24.0.1 `https://bitcoincore.org/bin/bitcoin-core-24.0.1/bitcoin-24.0.1-x86_64-apple-darwin.tar.gz` | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't this a secondary option when the user is not interested in the |
||||||
4. Download it like this: `sudo curl -o bitcoind18.tar.gz -L https://bitcoincore.org/bin/bitcoin-core-0.18.1/bitcoin-0.18.1-osx64.tar.gz` | ||||||
5. Unzip it like this: `sudo tar -zxvf bitcoind18.tar.gz` | ||||||
6. Run the `ls` command to see the actual name of the unzipped directory. It should be like `bitcoin-0.18.1` | ||||||
7. Add the path `export PATH="$PATH:/Library/Bitcoin/bitcoin-0.18.1/bin"` to the `/.zshrc` file | ||||||
1. Open the `.zshrc` file with nano like this: `nano ~/.zshrc` and add the following line in it and save it: `export PATH="$PATH:/Library/Bitcoin/bitcoin-0.18.1/bin"` | ||||||
8. Run `source ~/.zshrc` command, close and reopen the terminal. | ||||||
9. Running an instance of bitcoind | ||||||
1. To run it in regtest mode, run this command: `bitcoind -deprecatedrpc=generate -addresstype=legacy -regtest -printtoconsole -server -rpcuser=rsk -rpcpassword=rsk -rpcport=18332 -txindex -datadir=/Library/Bitcoin/data` | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we leave this user and password by default? |
||||||
2. You can also put this command into an `bitcoin-regtest.sh` file, make it executable with `sudo chmod +x bitcoin-regtest.sh` and run it like `./bitcoin-regtest.sh` | ||||||
3. To run it in regular mode, simply run the command: `bitcoind` | ||||||
10. Generate some blocks | ||||||
1. To generate, for example, 200 regtest bitcoin blocks, run: `./btc-regtest.sh generate 200` | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Where is this script? It has not been created at this point, so it won't work. |
||||||
3. Create a `powpeg-project` folder anywhere you like | ||||||
1. For example: `mkdir /Library/powpeg-project` | ||||||
4. Setup the rskj project | ||||||
1. `cd` to the `powpeg-project` directory: `cd /Library/powpeg-project` | ||||||
2. Clone it from here: `https://github.com/rsksmart/rskj` | ||||||
1. `git clone https://github.com/rsksmart/rskj.git` | ||||||
2. `cd` to the cloned `rskj` directory: `cd rskj` | ||||||
3. Run the `configure.sh` | ||||||
1. You will probably have to make it executable first with: `sudo chmod +x configure.sh` | ||||||
2. And run it from a terminal like this: `./configure.sh` | ||||||
5. Setup this project (powpeg-node: `https://github.com/rsksmart/powpeg-node`) | ||||||
1. `cd` to the `powpeg-project` directory: `cd /Library/powpeg-project` | ||||||
2. `git clone https://github.com/rsksmart/powpeg-node.git` | ||||||
3. `cd` to the cloned `powpeg-node` directory: `cd powpeg-node` | ||||||
4. Run the `configure.sh` file present in the root directory | ||||||
1. You will probably have to make it executable with: `sudo chmod +x configure.sh` | ||||||
2. And run it from a terminal like this: `./configure.sh` | ||||||
5. Make a copy of the `development-settings.gradle.sample` file and rename it to `DONT-COMMIT-settings.gradle` | ||||||
1. Remove the line `# Sample configuration to build rskj from the directory /home/user/another/dir/rskj` | ||||||
2. Remove the line `# Rename it to DONT-COMMIT-settings.gradle for use in your local environment` | ||||||
3. Replace the `'/home/user/another/dir/rskj/'` with the relative or absolute path where the `rskj` project is, for example: `/Library/powpeg-project/rskj` | ||||||
6. Create a `fed.conf` file and set it up | ||||||
1. Check the config file sample in `src/main/resources/config/fed-sample.conf`, copy it, rename it to `fed.conf` and update it as you need. | ||||||
7. Optionally create a `logback.xml` file for the logging | ||||||
1. Check the config file sample in `src/main/resources/config/logback-sample.xml`, copy it, rename it to `logback.xml` and update it as you need, adding or removing classes and their log level. | ||||||
8. Build the powpeg project | ||||||
1. Run: `./gradlew clean build` | ||||||
2. To build it without running the tests, run: `./gradlew clean build -x test` | ||||||
3. `cd` into `/Library/powpeg-project/powpeg-node/build/libs/` directory to see the version of the `federate-node-SNAPSHOT-<version>-all.jar` file, so you can run it in the following step. | ||||||
9. Run the project | ||||||
1. Resetting the rsk db (replace `<version>` with the actual version of the `.jar`): `java -cp /Library/powpeg-project/powpeg-node/build/libs/federate-node-SNAPSHOT-<version>-all.jar -Drsk.conf.file=/Library/powpeg-project/powpeg-node/src/main/resources/config/fed-sample.conf -Dlogback.configurationFile=/Library/powpeg-project/powpeg-node/logback.xml co.rsk.federate.FederateRunner --regtest --reset` | ||||||
2. Without resetting the rsk db (replace `<version>` with the actual version of the `.jar`): `java -cp /Library/powpeg-project/powpeg-node/build/libs/federate-node-SNAPSHOT-<version>-all.jar -Drsk.conf.file=/Library/powpeg-project/powpeg-node/src/main/resources/config/fed-sample.conf -Dlogback.configurationFile=/Library/powpeg-project/powpeg-node/logback.xml co.rsk.federate.FederateRunner --regtest` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<configuration INFO="false" scan="true" scanPeriod="3600 seconds"> | ||
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> | ||
<Target>System.out</Target> | ||
<encoder> | ||
<pattern>%date{yyyy-MM-dd-HH:mm:ss.SSSS} %p [%c{1}] %m%n</pattern> | ||
</encoder> | ||
</appender> | ||
|
||
<appender name="FILE-AUDIT" | ||
class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
<file>/Users/your-user/path_to_logs/logs/rsk.log</file> | ||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | ||
<Pattern> | ||
%date{yyyy-MM-dd-HH:mm:ss.SSS} %p [%c{1}] %m%n | ||
</Pattern> | ||
</encoder> | ||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> | ||
<fileNamePattern>./logs/rskj-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> | ||
<maxFileSize>100MB</maxFileSize> | ||
<maxHistory>7</maxHistory> | ||
<totalSizeCap>1GB</totalSizeCap> | ||
</rollingPolicy> | ||
</appender> | ||
|
||
<logger name="federatorSupport" level="TRACE"/> | ||
<logger name="JsonRpcCustomServer" level="TRACE"/> | ||
<logger name="web3" level="TRACE"/> | ||
<logger name="bridge" level="TRACE"/> | ||
<logger name="BtcToRskClient" level="TRACE"/> | ||
<logger name="BridgeSupport" level="TRACE"/> | ||
<logger name="co.rsk.peg.BridgeStorageProvider" level="ERROR"/> | ||
<logger name="jsonrpc" level="TRACE"/> | ||
|
||
<!-- more classes...--> | ||
|
||
<root level="INFO"> | ||
<appender-ref ref="stdout"/> | ||
<appender-ref ref="FILE-AUDIT"/> | ||
</root> | ||
</configuration> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if we call this section "Quick setup for macOS"?