투석기의 네임스페이스 ID와 모자이크 ID의 도출 방법(Alpaca, Bison, Cow)
15490 단어 catapultBlockchainNEM
소개
투석기의 Cow에서 네임스페이스 ID와 모자이크 ID의 도출 방법이 바뀌었기 때문에 씁니다.
네임스페이스 ID
Alpaca, Bison
기본적으로 이름에서 파생됩니다.
예를 들어, nem
의 네임스페이스 ID는 84B3552D375FFA4B
입니다.
const nem2Sdk = require("nem2-sdk").NamespaceId;
const namespaceIdNem = new NamespaceId("nem");
console.log(namespaceIdNem.toHex().toUpperCase())
// 84B3552D375FFA4B
루트 네임스페이스의 경우 0000000000000000
와 이름을 결합하여 해시 값을 취합니다.
네임스페이스(nem)const nem = "6e656d"
const id = calcurateHash(toLE("0000000000000000") + nem)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 84B3552D 375FFA4B
서브네임스페이스의 경우 상위 네임스페이스 ID와 이름을 결합하여 해시 값을 취합니다.
서브네임스페이스(nem.catapult)const catapult = "6361746170756C74"
const id = calcurateHash(toLE("84b3552d375ffa4b") + catapult)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 1B558641 28318CF8
Cow
Alpaca, Bison과 거의 같습니다만, 최상위 비트가 반드시 1
가 되었습니다. 예를 들어, cat
의 네임스페이스 ID는 B1497F5FBA651B4F
입니다만, 방금전과 같이 계산하면, 31497F5FBA651B4F
가 됩니다.
0x31
는 0011 0001
이지만, 최상위 비트를 세우면 1011 0001
가 되어 0xB1
가 됩니다.
네임스페이스(cat)const cat = "636174"
const id = calcurateHash(toLE("0000000000000000") + cat)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 31497F5F BA651B4F
// 最上位ビットを立てると
// B1497F5F BA651B4F
서브네임스페이스도 마찬가지입니다.
서브네임스페이스(cat.harvest)const harvest = "68617276657374"
const id = calcurateHash(toLE("B1497F5FBA651B4F") + cat)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 941299B2 B7E1291C
// 最初から最上位ビット立ってるパターン
모자이크 ID
Alpaca, Bison
네임스페이스 ID와 비슷한 느낌입니다. 네임스페이스 ID와 모자이크 이름을 결합하여 해시합니다.
모자이크(xem)const xem = "78656d"
const id = calcurateHash(toLE("84B3552D375FFA4B") + xem)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// D525AD41 D95FCF29
Cow
극적으로 바뀌었습니다.
모자이크에서 이름이라는 개념이 사라졌습니다.
논스(난스)라는 임의의 값과 공개키로부터 도출됩니다.
또, 최상위 비트가 반드시 0
가 되었습니다.
모자이크(nonce=0)const publicKey = '7F78559C556642FE132616910B1C9F2C36BC144D2D3A9E909092D64A0D0DE0DE'
const id = calcurateHash(toLE("00000000") + publicKey)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 119E1566 1E9B2758
모자이크(nonce=1)const publicKey = '7F78559C556642FE132616910B1C9F2C36BC144D2D3A9E909092D64A0D0DE0DE'
const id = calcurateHash(toLE("00000001") + publicKey)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// AAECBFD7 6AE7411B
// 最上位ビットを下げると
// 2AECBFD7 6AE7411B
toLE 및 calcurateHash 정보
toLEconst nem2lib = require("nem2-library")
function toLE(hex) {
const uint8arr = nem2lib.convert.hexToUint8(hex)
return nem2lib.convert.uint8ToHex(uint8arr.reverse())
}
calcurateHashconst sha3_256 = require('js-sha3').sha3_256
function calcurateHash(hex) {
const hash = sha3_256.create();
hash.update(Buffer.from(hex, 'hex'));
return hash.hex().toUpperCase();
}
Cow에서 네메시스 블록에 정의한 ID를 쉽게 보는 방법
nemgen을 할 때 로그에서 볼 수 있습니다.
왜 NamespaceId는 MSB가 1이고 MosaicId는 MSB가 0입니다.
Gimre 씨가 대답했습니다!
Cow에서 모자이크에 이름을 설정하려면
MosaicAliasTransaction을 사용하여 네임스페이스와 연결합니다.
결론
지금까지는 네임스페이스 공간 안에 모자이크가 있는 이미지였습니다.
Cow는 네임스페이스가 이름 정의 역할을 했고 모자이크가 토큰 자산을 정의하는 역할을 갖게 되었다고 느꼈습니다.
Reference
이 문제에 관하여(투석기의 네임스페이스 ID와 모자이크 ID의 도출 방법(Alpaca, Bison, Cow)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/planethouki/items/06af8007625b0ed958ab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Alpaca, Bison
기본적으로 이름에서 파생됩니다.
예를 들어,
nem
의 네임스페이스 ID는 84B3552D375FFA4B
입니다.const nem2Sdk = require("nem2-sdk").NamespaceId;
const namespaceIdNem = new NamespaceId("nem");
console.log(namespaceIdNem.toHex().toUpperCase())
// 84B3552D375FFA4B
루트 네임스페이스의 경우
0000000000000000
와 이름을 결합하여 해시 값을 취합니다.네임스페이스(nem)
const nem = "6e656d"
const id = calcurateHash(toLE("0000000000000000") + nem)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 84B3552D 375FFA4B
서브네임스페이스의 경우 상위 네임스페이스 ID와 이름을 결합하여 해시 값을 취합니다.
서브네임스페이스(nem.catapult)
const catapult = "6361746170756C74"
const id = calcurateHash(toLE("84b3552d375ffa4b") + catapult)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 1B558641 28318CF8
Cow
Alpaca, Bison과 거의 같습니다만, 최상위 비트가 반드시
1
가 되었습니다. 예를 들어, cat
의 네임스페이스 ID는 B1497F5FBA651B4F
입니다만, 방금전과 같이 계산하면, 31497F5FBA651B4F
가 됩니다.0x31
는 0011 0001
이지만, 최상위 비트를 세우면 1011 0001
가 되어 0xB1
가 됩니다.네임스페이스(cat)
const cat = "636174"
const id = calcurateHash(toLE("0000000000000000") + cat)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 31497F5F BA651B4F
// 最上位ビットを立てると
// B1497F5F BA651B4F
서브네임스페이스도 마찬가지입니다.
서브네임스페이스(cat.harvest)
const harvest = "68617276657374"
const id = calcurateHash(toLE("B1497F5FBA651B4F") + cat)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 941299B2 B7E1291C
// 最初から最上位ビット立ってるパターン
모자이크 ID
Alpaca, Bison
네임스페이스 ID와 비슷한 느낌입니다. 네임스페이스 ID와 모자이크 이름을 결합하여 해시합니다.
모자이크(xem)const xem = "78656d"
const id = calcurateHash(toLE("84B3552D375FFA4B") + xem)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// D525AD41 D95FCF29
Cow
극적으로 바뀌었습니다.
모자이크에서 이름이라는 개념이 사라졌습니다.
논스(난스)라는 임의의 값과 공개키로부터 도출됩니다.
또, 최상위 비트가 반드시 0
가 되었습니다.
모자이크(nonce=0)const publicKey = '7F78559C556642FE132616910B1C9F2C36BC144D2D3A9E909092D64A0D0DE0DE'
const id = calcurateHash(toLE("00000000") + publicKey)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 119E1566 1E9B2758
모자이크(nonce=1)const publicKey = '7F78559C556642FE132616910B1C9F2C36BC144D2D3A9E909092D64A0D0DE0DE'
const id = calcurateHash(toLE("00000001") + publicKey)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// AAECBFD7 6AE7411B
// 最上位ビットを下げると
// 2AECBFD7 6AE7411B
toLE 및 calcurateHash 정보
toLEconst nem2lib = require("nem2-library")
function toLE(hex) {
const uint8arr = nem2lib.convert.hexToUint8(hex)
return nem2lib.convert.uint8ToHex(uint8arr.reverse())
}
calcurateHashconst sha3_256 = require('js-sha3').sha3_256
function calcurateHash(hex) {
const hash = sha3_256.create();
hash.update(Buffer.from(hex, 'hex'));
return hash.hex().toUpperCase();
}
Cow에서 네메시스 블록에 정의한 ID를 쉽게 보는 방법
nemgen을 할 때 로그에서 볼 수 있습니다.
왜 NamespaceId는 MSB가 1이고 MosaicId는 MSB가 0입니다.
Gimre 씨가 대답했습니다!
Cow에서 모자이크에 이름을 설정하려면
MosaicAliasTransaction을 사용하여 네임스페이스와 연결합니다.
결론
지금까지는 네임스페이스 공간 안에 모자이크가 있는 이미지였습니다.
Cow는 네임스페이스가 이름 정의 역할을 했고 모자이크가 토큰 자산을 정의하는 역할을 갖게 되었다고 느꼈습니다.
Reference
이 문제에 관하여(투석기의 네임스페이스 ID와 모자이크 ID의 도출 방법(Alpaca, Bison, Cow)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/planethouki/items/06af8007625b0ed958ab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const xem = "78656d"
const id = calcurateHash(toLE("84B3552D375FFA4B") + xem)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// D525AD41 D95FCF29
const publicKey = '7F78559C556642FE132616910B1C9F2C36BC144D2D3A9E909092D64A0D0DE0DE'
const id = calcurateHash(toLE("00000000") + publicKey)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// 119E1566 1E9B2758
const publicKey = '7F78559C556642FE132616910B1C9F2C36BC144D2D3A9E909092D64A0D0DE0DE'
const id = calcurateHash(toLE("00000001") + publicKey)
console.log(toLE(id.substring(8,16)) + " " + toLE(id.substring(0,8)))
// AAECBFD7 6AE7411B
// 最上位ビットを下げると
// 2AECBFD7 6AE7411B
toLE
const nem2lib = require("nem2-library")
function toLE(hex) {
const uint8arr = nem2lib.convert.hexToUint8(hex)
return nem2lib.convert.uint8ToHex(uint8arr.reverse())
}
calcurateHash
const sha3_256 = require('js-sha3').sha3_256
function calcurateHash(hex) {
const hash = sha3_256.create();
hash.update(Buffer.from(hex, 'hex'));
return hash.hex().toUpperCase();
}
Cow에서 네메시스 블록에 정의한 ID를 쉽게 보는 방법
nemgen을 할 때 로그에서 볼 수 있습니다.
왜 NamespaceId는 MSB가 1이고 MosaicId는 MSB가 0입니다.
Gimre 씨가 대답했습니다!
Cow에서 모자이크에 이름을 설정하려면
MosaicAliasTransaction을 사용하여 네임스페이스와 연결합니다.
결론
지금까지는 네임스페이스 공간 안에 모자이크가 있는 이미지였습니다.
Cow는 네임스페이스가 이름 정의 역할을 했고 모자이크가 토큰 자산을 정의하는 역할을 갖게 되었다고 느꼈습니다.
Reference
이 문제에 관하여(투석기의 네임스페이스 ID와 모자이크 ID의 도출 방법(Alpaca, Bison, Cow)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/planethouki/items/06af8007625b0ed958ab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Gimre 씨가 대답했습니다!
Cow에서 모자이크에 이름을 설정하려면
MosaicAliasTransaction을 사용하여 네임스페이스와 연결합니다.
결론
지금까지는 네임스페이스 공간 안에 모자이크가 있는 이미지였습니다.
Cow는 네임스페이스가 이름 정의 역할을 했고 모자이크가 토큰 자산을 정의하는 역할을 갖게 되었다고 느꼈습니다.
Reference
이 문제에 관하여(투석기의 네임스페이스 ID와 모자이크 ID의 도출 방법(Alpaca, Bison, Cow)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/planethouki/items/06af8007625b0ed958ab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
지금까지는 네임스페이스 공간 안에 모자이크가 있는 이미지였습니다.
Cow는 네임스페이스가 이름 정의 역할을 했고 모자이크가 토큰 자산을 정의하는 역할을 갖게 되었다고 느꼈습니다.
Reference
이 문제에 관하여(투석기의 네임스페이스 ID와 모자이크 ID의 도출 방법(Alpaca, Bison, Cow)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/planethouki/items/06af8007625b0ed958ab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)