bosnet / bosnet/sebak

Rejected transactions kill consensus

Open
#198 1 comment 2 reactions 0 assignees View on GitHub
bug
Dominant language
Go
Stars
44
Forks
12
PR merge metrics
No merged PRs in 30d

Description

- Start 3 nodes (standard docker setup)
- Kill one
- Send a valid transaction, e.g.:
```
docker run --network host -it sebak wallet payment GDTEPFWEITKFHSUO44NQABY2XHRBBH2UBVGJ2ZJPDREIOL2F6RAEBJE4 1000 SBECGI3FSCYHNQIMANNCWQSVA6S5C6L4BXFKAPMBAMI5V47NWXNE37MN --endpoint=https://127.0.0.1:2822 --create
```
=> Should fail
- Start the dead one
- Try to re-run the transaction: It fails
```
DBUG[07-31|02:21:32] message is transaction module=sebak node=GAYG.TLY7 caller=node_runner_checker.go:34
EROR[07-31|02:21:32] failed to handle message from client module=sebak node=GAYG.TLY7 error="{\"code\":100,\"message\":\"already exists in block\"}" caller=node_runner.go:230
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the three-node scenario using the standard Docker setup and the wallet payment command. Start with node_runner_checker.go:34 and node_runner.go:230, then trace the rejected transaction and the “already exists in block” error. Done means a transaction rejected while a node is down can be retried after it returns without killing consensus.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.