2021-06-16 22:00 기준.
Solana Network 의 강점 중 하나는 Transaction Fee가 매우 저렴하다는 것이다.
Solana Network 에서 Transaction을 남기는 것과, DB 에서 Ledger Transaction을 구현을 할 때, 어느 것이 더 경제적인지 알아보자.
Solana 기준 하나의 트랜젝션에 57개의 token transfer instruction 을 담을 수 있다.
transaction의 max size는 1232 bytes 이다.
50개의 instruction 을 넣었을 때 transaction의 size는 1112 bytes.
10개의 instruction 을 넣었을 때 transaction의 size는 432 bytes.
50개의 instruction 이 들어간 transaction size - 10개의 instruction 이 들어간 transaction size
=> 40개의 instruction size = 680 bytes
따라서,
기본 메타 데이터 = 262 bytes
1 개의 transfer instruction size = 17 bytes
262 bytes + n개의 transfer instruction * 17 bytes <= transaction max size = 1232 bytes
n <= 57.0588...
[n] = 57
Explorer | Solana
explorer.solana.com
에 접속시 57개의 token transfer이 있는걸 확인할 수 있다.
전제조건
계산의 편의성을 위해 초당 57개의 token transfer 이 이동한다.
또한 하나의 Ledger Transaction 은 1kib를 가진다.
Solana Token Price는 변동 가능성이 있고, DB 설계에 따라 DB의 가격은 줄어들 수 있다.
또한 개발에 필요한 시간 및 비용은 고려하지 않는다.
Solana
1 solana = $37.78
1 on-chain transaction fee = 0.000005 sol = $0.0001889
AWS Server - t2.medium / seoul 기준
시간당 $0.0576
AWS Database
Storage - 한달에 $0.12/GB
Read/Write - 1백만건의 I/O 당 $0.24
Solana vs AWS Server + Database
Solana
1. 초당 한번의 트랜젝션(57번의 token transfer)
2. 한달 Transaction fee = 30(일) * 24(시간) * 60(분) * 60(초) * transaction fee = 2,592,000 * 0.000005 SOL = 12.96 SOL
3. 한달 USD = 12.96 * $37.78 = $489.6288
4. n달 USD = n * $489.6288
AWS
AWS Server - t2.medium / Seoul 기준
1. 한달 USD = 0.0576 * 24(시간) * 30(일) = $41.472
2. n달 USD = n * $41.472
AWS Database - Storage
1. 하루 트랜젝션 발생 용량 = 1(일) * 24(시간) * 60(분) * 60(초) * 57(횟수) * 1 kib= 4,924,800번 * 1 kib = 4,924,800 kib = 4,809.375 mib => 4.6966... gib => 4.7gib
2. 한달 USD = 4.7 * 0.12 * (1/30) + 4.7 * 0.12 * (2/30) + ... + 4.7 * 0.12 * (29/30) + 4.7 * 0.12 * (30/30) = 4.7 * 0.12 * (1 + 2 + ... + 29 + 30) / 30 = 4.7 * 0.12 * 465 / 30 = 72.85 * 0.12 = $8.742
3. n달 USD = 1번째 달 * n달 요금 + 2번째 달 * (n-1)달 요금 + ... + (n-1)번째 달 * 2달 요금 + n번째 달 * 1달 요금 = 72.85(n달요금 + n-1달요금 + ... + 2달요금 + 1달요금) = 72.85(0.12n + 0.12(n-1) + ... + 0.12 * 2 + 0.12) = 72.85 * ((0.12n + 0.12) * n / 2) = 36.425 * (0.12n^2 + 0.12n) = 4.371n^2 + 4.371n
AWS Database - I/O
1. 쓰기 - 초당 57번, 읽기 - 초당 57 * 8 [checkHasToken, confirmToken, checkTokenChanged, checkTokenTransfer, ...]
2. 한달 I/O 발생 횟수 = 57 * 9(쓰기 + 읽기) * 30(일) * 24(시간) * 60(분) * 60(초) = 1,329,696,000 회
3. 한달 USD = 0.24 * 1329= $318.96
4. n달 USD = n * $318.96
AWS RDS - t2.medium / Seoul 기준
1. 한달 USD = 0.125 USD * 24(시간) * 30(일) = $90
2. n달 USD = n * $90
총 n달 Solana Cost = 489.6288n
총 n달 AWS Cost = 41.472n + 4.371n^2 + 4.371n+ 318.96n + 90n
첫 번째 달에는 Solana Network가 비용이 많이 든다
하지만, Solana Cost = AWS Cost 로 식을 두고 손익분기점을 구하면,
489.6288n = 41.472n + 4.371n^2 + 4.371n + 318.96n + 90n
489.6288n = 454.803n + 4.371n^2
34.82588n = 4.371n^2
n = 7.967485701212537
따라서, 8개월 이상 시스템이 지속이 될 경우, Transaction Fee는 On-chain으로 처리하는 것이 바람직하다.
'개발 > Solana' 카테고리의 다른 글
Transaction fee 에 대한 사실 (1) | 2021.07.23 |
---|---|
Solana 지갑 만들기 (3) | 2021.07.05 |