์ด๋๋ฆฌ์ ํธ๋ ์ ์ ์ ์คํ (https://steemit.com/ethereum/@sigmoid/4mtmow) ์ ํตํด
์ด๋๋ฆฌ์ ํธ๋ ์ ์ ์ด insertChain์ด๋ผ๋ ํจ์์์ ์์ํ๋ฉฐ, ํธ๋ ์ ์ ์ ์คํ์
๊ฒฐ๊ตญ ์ด์นด์ดํธ์ ์๊ณ ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์์ ํ์ธํ์์ต๋๋ค.
์ด๋ฒ์ insertChainํจ์๋ ์ธ์ ํธ์ถ๋๋์ง๋ฅผ ๋ถ์ํด ๋ณด์์ต๋๋ค.
์ฐ์ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ ๋งค๋์ ธ์ ์์ฑ๊ณผ ์คํ์ ๊ฐ๋จํ๊ฒ ์๋ ๊ทธ๋ฆผ์์ ํ์ธ๊ฐ๋ฅํฉ๋๋ค.
geth๊ฐ ์คํ๋๋ฉด NewProtocolManagerํจ์์ manager.Startํจ์๊ฐ ์คํ๋ฉ๋๋ค
- NewProtocolManagerํจ์์์ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ ๋งค๋์ ธ๋ฅผ ์์ฑํ๋ฉด์ ๋ ธ๋๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํ ํ๊ธฐ ์ํด Fetcher๋ฅผ ์์ฑํ๊ณ ์์ ์ ๋ธ๋ก์ฒด์ธ์ insertChainํจ์๋ฅผ ๋ฑ๋กํด๋ก๋๋ค.
- ํ๋กํ ์ฝ ๋งค๋์ ธ๊ฐ ์์๋๋ฉด ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ์ด 4๊ฐ์ go๋ฃจํด์ด ์์๋ฉ๋๋ค ๊ทธ์ค syncer๋ฃจํด์์ Fetcher๋ฅผ ์คํํ๊ฒ ๋ฉ๋๋ค.
- fetcher์ loop๋ฃจํด์์ priority queue๋ก ๋ถํฐ ๋ธ๋ก์ ๊ฐ์ง๊ณ ์ ๋ฑ๋ก๋ insertChainํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
ํ๋๋, ๊ทธ๋ผ ํ์๋ ๋ธ๋ก์ ๋๊ฐ ๋ฃ์ง?? ๋ผ๋ ์๊ฐ์ด ๋ค์ด ์ฐพ์๋ณด๋,
p2p ๋
ธ๋์ ํธ๋ค๋ฌ์์, ๋ฑ๋ก๋ ์ฑ๋์ ํตํด ํ๋ก ๋ธ๋ก์ ๋ฃ์ด์ค๋๋ค.
p2p ๋ ธ๋๋ก ๋ธ๋ก์ ์ ๋ฌํ๋ ๊ฒ์ ๋ง์ด๋ - ํธ๋ ์ ์ ์ด ํ์์ ๋ธ๋ก์ ํฌํจ๋๊ธฐ๊น์ง(https://steemit.com/ethereum/@sigmoid/2mnkfg) ์์ ๋ค๋ฃฌ์ ์ด ์์์ต๋๋ค.
์ด์ ์กฐ๊ธ์ฉ ๊ธ๋ค์ด ์ฐ๊ฒฐ๊ณ ๋ฆฌ๋ฅผ ๊ฐ์ง๊ฒ ๋๋๊ฒ ๊ฐ์ต๋๋ค.
์ง๊ทนํ ๊ฐ์ธ์ ์ผ๋ก ์ด๋๋ฆฌ์ ์ฃผ์ ํ๊ธํ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์์ต๋๋ค.
https://github.com/NAKsir-melody/go-ethereum