26-7-27 Steem.js v1.1.0 — 리라이트(Rewrite) SDK 공식 배포 포스트가 올라왔습니다.
과거의 스팀과 다른 것이 있다면 끊임없이 개선 작업이 진행되고 있다는 것입니다.
@ety001이 📢 Steem.js v1.1.0 — 리라이트(Rewrite) SDK 공식 배포를 하고 이에 관한 포스트를 올렸습니다.
https://steemit.com/steem/@ety001/steem-js-v1-1-0-official-release-of-the-rewritten-sdk
그 내용을 한글로 번역하게 이번 작업의 의미를 평가했습니다.
한번씩 읽어 보시고 @ety001을 칭찬해주시기 바랍니다.
칭찬은 고래도 춤추게 한다고 합니다.
📢 Steem.js v1.1.0 — 리라이트(Rewrite) SDK 공식 배포
새롭게 재작성된 Steem.js SDK v1.1.0 공식 배포 소식을 발표하게 되어 기쁩니다.
npm의 최신 dist-tag가 v1.1.0을 가리키도록 변경되었으므로, 이제 npm install @steemit/steem-js를 실행하면 기본적으로 새 버전이 설치됩니다.
이번 배포는 v1.0.0에서 시작하여 v1.0.21을 거치며 안정화되었으며, 오늘 v1.1.0으로 결실을 맺은 전면 재작성(Full Rewrite) 프로젝트의 완성을 의미합니다.
🔄 재작성 과정 (The Rebuild Journey)
기존 v0.8.0 코드베이스는 수년간 커뮤니티를 잘 지탱해 왔으나, 오래된 의존성 패키지(bigi, ecurve, crypto-browserify, bluebird, WebSocket 전송 방식 등)로 인해 유지보수 및 보안 측면에서 큰 부담이 되었습니다.
이에 따라 v1.0.0부터 완전히 새로운 브랜치(orphan branch)에서 바닥부터 다시 작성을 시작했으며, 최신 툴링과 강화된 암호화 코어를 적용하여 SDK의 모든 레이어를 재구축했습니다.
그 과정에서 다음과 같은 집중적인 패치들을 지속적으로 제공해 왔습니다:
- RPC 라우팅 보정
bytebuffer의new Buffer()관련 문제 패치account_update권한 JSON 정규화verifyTransaction바이너리 다이제스트 오작동 수정
이러한 수정을 거쳐 최종적으로 안정적이고 실전 검증을 마친 v1.1.0을 배포하게 되었습니다.
✨ 이번 재작성의 주요 변경 사항
- 전면 TypeScript 도입: 프로젝트 전체에 엄격 모드(Strict-mode) TypeScript를 적용하였으며, 생성된 타입 선언 파일(
.d.ts)이 패키지에 함께 포함됩니다. v1.1.0부터는 자주 쓰이는 7개의 RPC 메서드(getAccounts,getAccountHistory,getDynamicGlobalProperties,getContent,getFollowers,getBlock,getConfig)가 스팀 C++ 노드의condenser_api/database_api/follow_api데이터 구조와 정확히 일치하는 직관적인 타입 인터페이스를 반환합니다. - 현대화된 암호화 모듈: 레거시 패키지 조합(
bigi/ecurve/crypto-browserify)을@noble/hashes,@noble/ciphers, 그리고 secp256k1을 위한elliptic+bn.js조합으로 교체했습니다. 더 이상 구형@steemit/libcrypto에 의존하지 않습니다. verifyTransaction문제 해결: 서명 검증 시signTransaction과 동일하게sha256(chain_id ‖ serializeTransaction(normalizedTrx))조합의 정확한 바이너리 다이제스트를 검증합니다. 또한serializeTransaction함수를 외부에 공개(export)하여, 서드파티 서비스(예: 지갑 리레이 서버 등)가 서버 측에서 서명 다이제스트를 직접 재구성하여 검증할 수 있도록 했습니다.- HTTP 전용 전송 레이어: 유효성이 떨어진 WebSocket 방식을 제거하고 경량화된 HTTP JSON-RPC 클라이언트로 전환했습니다. RPC 메서드 레지스트리 또한 현대 스팀 노드가
condenser_api와database_api호출을 라우팅하는 방식에 맞추어 정렬되었습니다. - 다양한 번들 포맷 지원: Rollup을 통해 ESM, CommonJS, 브라우저용 ESM, UMD 번들과 함께 소스 맵 및 타입 선언 파일(
.d.ts)을 제공합니다. - 프로덕션 안전장치:
prepublishOnly훅을 추가하여 npm 게시 전 반드시 빌드가 완료되도록 강제함으로써, 빈 패키지가 배포되는 실수를 방지합니다.
⚠️ 개발자를 위한 필수 조치 사항
latest 태그가 v1.1.0을 가리키고 있으므로, 해당 라이브러리를 사용하는 프로젝트에서는 다음 사항을 확인해 주세요.
- Node.js 버전 확인: 이번 버전부터는 Node.js 20.19.0 이상을 요구하며, 브라우저 환경에서는 Web Crypto API를 필요로 합니다.
- 연동 테스트 진행: 공개 API 구조(
steem.api,steem.auth,steem.broadcast,steem.memo,steem.formatter)는 기존과 호환되도록 설계되었으나, 내부 의존성 및 동작 방식에 변화가 있습니다. 배포 전 반드시 테스트 수트를 실행해 보세요. package.json점검: 업데이트할 준비가 되었다면 평소처럼 설치를 진행하면 됩니다.
npm install @steemit/steem-js
# 또는
pnpm add @steemit/steem-js
📦 레거시(v0.8.0) 버전이 계속 필요한 경우
기존 v0.8.0 코드베이스는 legacy 브랜치로 아카이브되었으며, npm에서도 계속 다운로드할 수 있습니다. 즉시 마이그레이션이 불가능한 경우 다음과 같이 버전을 명시하여 고정하세요.
npm install @steemit/steem-js@0.8.0
"dependencies": {
"@steemit/steem-js": "0.8.0"
}
※ 주의: 레거시 버전은 더 이상 적극적으로 유지보수되지 않으므로 빠른 시일 내에 v1.1.0으로 전환하시길 권장합니다.
💬 피드백 및 지원
문제점이나 문의 사항, 피드백이 있다면:
- 이 공지글에 댓글을 남겨주세요.
- GitHub 리포지토리 이슈를 등록해 주세요: https://github.com/steemit/steem-js/issues
재작성 기간 동안 기다려주신 커뮤니티 여러분께 감사드립니다. 즐거운 개발 되세요! 🚀
💡 이 작업이 스팀(Steem) 블록체인에 가지는 의미 및 평가
이번 Steem.js v1.1.0 배포는 단순한 버전 업데이트를 넘어, 스팀 개발 생태계의 부채를 청산하고 기술적 기반을 현대화한 대형 이정표로 평가할 수 있습니다.
1. 보안성 및 기술 부채(Technical Debt) 해결
- 기존 v0.8.0은 Node.js 구버전 환경에서 작성된 레거시 암호화 라이브러리(
bigi,ecurve등)에 의존하고 있어, 최신 보안 취약점 패치나 빌드 시스템(Vite, Next.js 등)과의 충돌 문제가 심각했습니다. - 검증된 표준 코어인
@noble라이브러리 스택으로 전면 교체하면서 보안성이 한층 강화되었고, 최신 프론트엔드/백엔드 툴체인과의 연동성이 대폭 향상되었습니다.
2. DX(개발자 경험)의 비약적 상승
- TypeScript 완전 지원: strict 타입 지원 및 스팀 C++ 노드 구조체와의 타입 매핑 덕분에 dApp 개발 시 타이핑 오류나 RPC 응답 객체 파싱 중 발생하는 버그를 Compile-time에 잡을 수 있게 되었습니다.
- 웹소켓(WS) 제거 및 HTTP 단일화: 불안정했던 웹소켓 연결 관리를 덜어내고, 무상태(Stateless) 방식의 HTTP JSON-RPC로 단일화하여 노드 장애 대응 및 로드 밸런싱이 훨씬 용이해졌습니다.
3. 생태계 dApp 개발 및 마이그레이션 촉진
serializeTransaction의 공개 노출과verifyTransaction버그 수정은 서버 측 트랜잭션 검증, 멀티시그 처리, 지갑 연동 등 서드파티 백엔드 서비스 구축을 훨씬 손쉽게 만들어 줍니다.- 최신 Node.js (>=20.19) 표준 준수를 요구함에 따라, 스팀 생태계 내에 방치되어 있던 레거시 dApp들이 현대적인 인프라로 고도화되는 계기가 될 것입니다.
요약하자면:
오랫동안 방치되었던 자바스크립트 SDK의 레거시 구조를 단절하고, 현대적인 Web3 개발 환경에 맞춰 스팀 블록체인 개발 기반을 재건한 매우 긍정적이고 필수적이었던 작업입니다.
High-Yield Curation by @steem-seven
Your content has been supported!
Maximize your passive income!
Delegate your SP to us and earn high rewards
Click here to see our Tiered Reward System
We are the hope!
This post has been upvoted by @italygame witness curation trail
If you like our work and want to support us, please consider to approve our witness
Come and visit Italy Community
끊임없는 개선작업..
행복한 문장이네요.