- Licensing Hooks: ๋ผ์ด์ ์ค ํ ํฐ์ ๋ฐํํ๊ธฐ ์ ์ ์ฌ์ฉ์ ์ ์ ๋ก์ง์ ์ถ๊ฐํ ์ ์๊ฒ ํด์ค๋๋ค(๋ฐ ํ์๋ฌผ ๋ฑ๋ก). ์๋ฅผ ๋ค์ด, ๋์ ๊ฐ๊ฒฉ ์์ฒญ, ๋ฐํ ๊ฐ๋ฅํ ๋ผ์ด์ ์ค ํ ํฐ ์ ์ ํ, ํ์ดํธ๋ฆฌ์คํธ ๋ฑ์ด ์์ต๋๋ค. Licensing Hooks๋ ์ธ์ ๋ ์ง licensing config์์ ์ถ๊ฐ/์์ ํ ์ ์์ต๋๋ค.
- Commercializer Checker Hooks: Licensing Hooks์ ์ ์ฌํ์ง๋ง, ์ง์ ์ ์ผ๋ก ๋ผ์ด์ ์ค ์กฐ๊ฑด์ ์ผ๋ถ์ด๋ฉฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ ์ ์ ๋ฐํ ์์๋ฃ๋ฅผ ๋ฐํํ ์๋ ์์ต๋๋ค.
Licensing Hooks
์ด๋ค์IModule์ ํ์ฅํ๋ ILicensingHook ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ์ปจํธ๋ํธ์
๋๋ค.
๊ฐ์ฅ ์ค์ํ ์ ์, Licensing Hook๊ฐ License Token์ด ๋ฐํ๋๊ธฐ ์ ์ ํธ์ถ๋์ด ์ฌ์ฉ์ ์ ์ ๋ก์ง์ ๊ตฌํํ๊ณ ํด๋น License Token์ ์ต์ข
totalMintingFee๋ฅผ ๊ฒฐ์ ํ๋ beforeMintLicenseTokens ํจ์๋ฅผ ๊ตฌํํ๋ค๋ ์ ์
๋๋ค.
ILicensingHook ์ค๋งํธ ์ปจํธ๋ํธ๋
์ฌ๊ธฐ์์ ํ์ธํ์ธ์.ILicensingHook.sol
totalMintingFee๋ฅผ ๋ฐํํ๋ค๋ ์ ์ ์ ์ํ์ธ์. โLicense Terms์์ ๋ฐํ ์์๋ฃ๋ฅผ ์ค์ ํ ์๋ ์๊ณ , LicenseConfig์์๋ ์ค์ ํ ์ ์๊ณ , beforeMintLicenseTokens์์ ๋์ ๊ฐ๊ฒฉ์ ๋ฐํํ ์๋ ์๋ค. ๊ทธ๋ฌ๋ฉด ์ต์ข
๋ฐํ ์์๋ฃ๋ ์ค์ ๋ก ๋ฌด์์ด ๋ ๊น?โ๋ผ๊ณ ๊ถ๊ธํดํ ์ ์์ต๋๋ค. ์ฐ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ฌ์ฉ ๊ฐ๋ฅํ Hooks
๋ค์์ ์ฐ๋ฆฌ ํ๋กํ ์ฝ์ ๋ฐฐํฌ๋์ด ์ฌ์ฉํ ์ ์๋ hooks์ ๋๋ค.์ด hooks์ ๋ฐฐํฌ๋ ์ฃผ์๋ ์ฌ๊ธฐ์์ ํ์ธํ์ธ์.
Hooks ๊ตฌํํ๊ธฐ
SDK ์ฝ๋ ์์
licensing hook๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์ค์ ์๋ํ๋ TypeScript SDK ์ฝ๋ ์์ .
๋ ๊ตฌ์ฒด์ ์ผ๋ก, ๋ฐํ ๊ฐ๋ฅํ ๋ผ์ด์ ์ค ์๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ.
Solidity ์ฝ๋ ์์
licensing hook๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์ค์ ์๋ํ๋ Solidity ์ฝ๋ ์์ .
๋ ๊ตฌ์ฒด์ ์ผ๋ก, ๋ฐํ ๊ฐ๋ฅํ ๋ผ์ด์ ์ค ์๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ.
ILicensingHook ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ์ค๋งํธ ์ปจํธ๋ํธ์
๋๋ค. ์ธํฐํ์ด์ค๋ ์ฌ๊ธฐ์์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฏธ ๋ฐฐํฌ๋ ๋ช ๊ฐ์ง Licensing Hooks๊ฐ ์์ต๋๋ค(์ ์ฐจํธ ์ฐธ์กฐ).
์ค์ ๋ก Licensing Hook๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Licensing Config์ ์ค์ ํด์ผ ํฉ๋๋ค. Licensing Config๋ IP Asset์ ์กฐ๊ฑด์ ์ฒจ๋ถํ ๋ License Terms์ ์ค์ ํ๋ ์ผ๋ จ์ ๊ตฌ์ฑ์
๋๋ค.
1
Licensing Config ์์ฑ
๋จผ์ Licensing Config๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค:
2
Licensing Config ์ค์
๋ค์์ผ๋ก, License Terms์ Licensing Config๋ฅผ ์ค์ ํฉ๋๋ค. ๋ค์ ์์์์๋ IP Asset์ ๋ฑ๋กํ ๋ ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฝ๋๋ค:
์ด๋ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์๋
registerIpAsset ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.3
์ ํ์ 1๋ก ์ค์
์ด์ ์กฐ๊ฑด์ Licensing Config๋ฅผ ์ค์ ํ์ผ๋ฏ๋ก, hook์
setTotalLicenseTokenLimit ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ฐํ ๊ฐ๋ฅํ ์ต๋ ๋ผ์ด์ ์ค ์๋ฅผ 1๋ก ์ค์ ํ ์ ์์ต๋๋ค.์๋ก์ด Licensing Hook ์์ฑ
์๋ก์ด licensing hook๋ฅผ ๋ง๋ค๊ณ DATA Foundation ํ๋กํ ์ฝ์ ํ์ดํธ๋ฆฌ์คํธ๋ก ๋ฑ๋กํ๋ ค๋ฉด ์๋ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด์ธ์.- Hook ๊ฐ๋ฐ: ์ด ํ ํ๋ฆฟ ์ ์ฅ์๋ฅผ ํฌํฌํ์ฌ ๊ฐ๋ฐ์ ๋ถํธ์คํธ๋ฉํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ Aeneid ํ๋กํ ์ฝ์ ๋ํ ํ ์คํธ์ ํจ๊ป ์์ hook๊ฐ ํฌํจ๋์ด ์์ง๋ง, ์ฌ์ฉ์ ์ ํ ์ฌํญ์ ๋๋ค.
- Registered Modules ์ ์ฅ์ ํฌํฌ: registered-modules ์ ์ฅ์๋ฅผ ์์ ์ GitHub ๊ณ์ ์ผ๋ก ํฌํฌํ์ธ์.
-
Module ๋ชฉ๋ก ์
๋ฐ์ดํธ:
registered-modules์ ์ฅ์์์hook-modules.jsonํ์ผ์ hook์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ธ์. aeneid ๋ฐ mainnet ๋ชจ๋์ hook๋ฅผ ๋ฐฐํฌ ๋ฐ ๋ธ๋ก ์ต์คํ๋ก๋ฌ์์ ๊ฒ์ฆํด์ผ ํฉ๋๋ค. ๋ค์ JSON ๊ตฌ์กฐ๋ฅผ ์ค์ํ๋์ง ํ์ธํ์ธ์:YourModuleName,YourModuleAddress,YourModuleBlockExplorerLink๋ฅผ ๊ฐ๊ฐ hook์ ์ด๋ฆ, ์ฃผ์, ๋ธ๋ก ์ต์คํ๋ก๋ฌ ํ์ด์ง ๋งํฌ๋ก ๋ฐ๊พธ์ธ์. ์์: -
Pull Request (PR) ์์ฑ: hook๋ฅผ ์ถ๊ฐํ ํ, ์ด ์ ์ฅ์์ ๋ํด pull request๋ฅผ ์์ฑํ์ธ์. PR ์ค๋ช
์ ๋ค์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ธ์(๊ฐ์ ๋ณธ์ธ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์):
- ๊ฒ์ฆ ๋๊ธฐ: PR์ด ์ ์ถ๋๋ฉด ๊ฒํ ๋ฉ๋๋ค. ๋ณด์ ๊ฐ์ฌ๊ฐ ์ํ ๋ฐ ์๋ฃ๋๊ณ ๋ชจ๋์ด ํ๋กํ ์ฝ์ ํ์ดํธ๋ฆฌ์คํธ๋ก ๋ฑ๋ก๋๋ฉด, PR์ด ๋ณํฉ๋ฉ๋๋ค. ์ด ์์ ์์ ๋ชจ๋์ ๊ณต์์ ์ผ๋ก ๋ฑ๋ก๋๊ณ DATA Foundation ์ปค๋ฎค๋ํฐ์์ ์ฌ์ฉํ๊ธฐ์ ์์ ํ ๊ฒ์ผ๋ก ์ธ์ ๋ฉ๋๋ค.