09 25 feat sparkles adds ethereum besu service#118
Conversation
|
https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/ BESU - is only an execution client so we'll also need to get a consensus client installed for the validator to work |
| - name: Find teku binary | ||
| become: true | ||
| ansible.builtin.find: | ||
| paths: | ||
| - /tmp | ||
| - "{{ ethereum_teku_download_path | default('/tmp') }}" | ||
| patterns: 'besu$' | ||
| use_regex: true |
There was a problem hiding this comment.
The patterns parameter is currently set to 'besu$', which will search for files ending with "besu". To correctly locate the Teku binary, this should be changed to 'teku$'. This adjustment will ensure the task finds the appropriate Teku executable file.
Spotted by Graphite Reviewer
Is this helpful? React 👍 or 👎 to let us know.
| debug: | ||
| var: ethereum_teku.status | ||
|
|
||
| - name: Check teku ervice |
There was a problem hiding this comment.
There's a minor typo in the task name. Consider changing Check teku ervice to Check teku service to improve clarity and maintain consistency in the task descriptions.
Spotted by Graphite Reviewer
Is this helpful? React 👍 or 👎 to let us know.
|
Hi @anthonyra, I add teku execution client, with the beacon node config file. |
With this does it add an additional execution client? Or is Teku a consensus client? |
There was a problem hiding this comment.
We should probably separate this out into sections.
- Base configurations - things that are common between clients
ethereum_execution_client: 'besu'ethereum_consensus_client: 'nimbus'
- Execution clients with each client being grouped together
- Consensus clients with each client being grouped together
There was a problem hiding this comment.
Nimbus is a new ethereum consensus client. Separate them now is a tricky thing and this should be done in next phase with testing.
| become: true | ||
| ansible.builtin.apt: | ||
| name: | ||
| - openjdk-21-jdk |
There was a problem hiding this comment.
Will probably be dependent on what clients have been selected right?
There was a problem hiding this comment.
Nimbus is a new ethereum consensus client with a different configuration for start.
| - name: Create program folder for besu | ||
| become: true | ||
| ansible.builtin.file: | ||
| state: directory | ||
| owner: root | ||
| group: root | ||
| mode: '0755' | ||
| dest: /opt/ethereum_besu/{{ ethereum_besu_version }} | ||
|
|
||
| - name: Create program folder for teku | ||
| become: true | ||
| ansible.builtin.file: | ||
| state: directory | ||
| owner: root | ||
| group: root | ||
| mode: '0755' | ||
| dest: /opt/ethereum_teku/{{ ethereum_teku_version }} | ||
|
|
||
| - name: Download besu binary to tmp | ||
| become: true | ||
| ansible.builtin.unarchive: | ||
| remote_src: true | ||
| src: "{{ ethereum_besu_download_url }}" | ||
| dest: /tmp | ||
| failed_when: false | ||
|
|
||
| - name: Download teku binary to tmp | ||
| become: true | ||
| ansible.builtin.unarchive: | ||
| remote_src: true | ||
| src: "{{ ethereum_teku_download_url }}" | ||
| dest: /tmp | ||
| failed_when: false | ||
|
|
||
| - name: Find besu binary | ||
| become: true | ||
| ansible.builtin.find: | ||
| paths: | ||
| - /tmp | ||
| - "{{ ethereum_besu_download_path | default('/tmp') }}" | ||
| patterns: 'besu$' | ||
| use_regex: true | ||
| get_checksum: true | ||
| recurse: true | ||
| register: _download_besu | ||
|
|
||
| - name: Find teku binary | ||
| become: true | ||
| ansible.builtin.find: | ||
| paths: | ||
| - /tmp | ||
| - "{{ ethereum_teku_download_path | default('/tmp') }}" | ||
| patterns: 'teku$' | ||
| use_regex: true | ||
| get_checksum: true | ||
| recurse: true | ||
| register: _download_teku |
There was a problem hiding this comment.
Should try and leverage depin.core.installer here.. but might need to run it twice. Once for the execution and once for the consensus clients to make it less "spaghetti"
There was a problem hiding this comment.
Probably this should be changed with new phase - because testing with integrating clients and server node can spent weeks to be sure that all works as expected. And changing of this part cannot be tested right now.
| - name: Ensure metrics is installed | ||
| ansible.builtin.include_tasks: | ||
| file: metrics.yml No newline at end of file |
| - name: "ethereum_besu {{ ethereum_cmd }}" | ||
| ansible.builtin.include_tasks: | ||
| file: "commands/{{ ethereum_cmd }}.yml" |
There was a problem hiding this comment.
- name: Ethereum {{ ethereum_cmd }}
vars:
cmd_file: "{{ role_path }}/tasks/commands/{{ ethereum_cmd }}.yml"
when: cmd_file is file
ansible.builtin.include_tasks:
file: "{{ cmd_file }}"There was a problem hiding this comment.
This can be removed due to depin.core.metrics
There was a problem hiding this comment.
This can be removed due to depin.core.metrics
There was a problem hiding this comment.
Probably should use some systemd magic here to ensure that an execution client and consensus client are running together. Probably should make these generic also to ensure that clients can be swamped around as necessary.
There was a problem hiding this comment.
There was a problem hiding this comment.
Teku client can be launched only after Besu, otherwise there will be a runtime error. Running with custom scenarios better to do in the next phase with qa.
Nimbus is a new ethereum consensus client |
0f56e67 to
8f5689c
Compare
No description provided.