일반적인 데이터베이스는 서로 다른 트랜잭션들이 동일한 데이터를 읽거나 수정하여, database에 inconsistency가 생기면 충돌이 발생한 트랜잭션 들의 일부를 Abort 시켜서 해결합니다.
제가 블록체인 내용을 잘 모르지만, a block 내에는 a set of transactions 이 들어 있는데요.
같은 블록에서 Submit 된 트랜잭션들 중 A transaction과 B transaction이 서로 동일한 데이터 (예를 들어, 동일한 Contract 내의 특정 데이터)를 수정하는 연산을 할 경우에,
A와 B 중 어느 것이 성공하는지 궁금합니다
일반적인 블록체인 관련 질문이긴 한데…
클레이만의 특별한 충돌 해결 알고리즘이 있는지도 궁금합니다~
nonce 내용은 잘 몰랐는데, 알려주셔서 감사합니다. 같은 nonce 중에, 하나는 반드시 처리가 되겠지요?
‘block 내 트랜잭션은 순차적으로 하나씩 실행됩니다’ 라고 하셨는데,
그렇다면, 그 처리 순서는 '트랜잭션 풀’에서 꺼내서 block에 추가 되는 순서라고 보면 되겠네요.
이더리움의 경우, 수수료등을 고려해서 트랜잭션 풀에 있는 트랜잭션 중 어떤 것을 먼저 뽑을지 정하는 것으로 알고 있습니다.
클레이튼은 그러한 로직이 전혀 없는지요?
제가 알기로는 고정된 Gas Price 로 인해, 이더리움과 같은 가스 전쟁은 없는 것으로 알고 있습니다.
혹시, '트랜잭션 풀’에서 트랜잭션을 하나씩 뽑아서 블록에 추가하는 로직이 있는 github의 클레이튼 오픈 소스의 코드 파일을 reference 해주실 수 있을까요?
거기까지 알아야 하나 싶긴한데, 갑자기 궁금해지네요 ㅎㅎ;;