zecd Shielded-First Wallet Server (Onye na - ahụ maka obere akpa ego nke mbụ)
zecd is a shielded-first wallet server for Zcash, built on librustzcash a na-ekpughere site n'asụsụ JSON-RPC nke Bitcoin Core. Ọ na - enye ndị mmepe na ndị ntinye ego ụgwọ ihe amaara, API dakọtara maka mmekọrịta Zcash ma mee ka Orchard (olulu mmiri kachasị onwe ya) ndabara. Emepụtara site zec.rocks, zecd ezubere iji dochie anya . zcashdbụ obere akpa arụ ọrụ na oge a, igwe ojii-nwa afọ deployments.
Oge a: 0.5.0-rc3 (July 13, 2026) na Ironwood (NU6.3) nkwado. Wụnye site na cargo install zecd ma ọ bụ jiri onyinyo Docker.
TL;DR
- zecd bụ **wallet daemon (server) ** ọ bụghị ọnụ zuru oke. Ọ na-ejikwa igodo, nyocha, nkwenye, na RPC n'ekwughị usoro P2P nke Zcash .
- Ọ na-ekwu okwu ** Bitcoin Core's JSON-RPC dialect**: otu usoro aha, ụdị ubi, auth, na koodu njehie ọtụtụ ndị ahịa RPC nke Bitcoin na Zcash arụ ọrụ n'ime igbe.
- Orchard (shielded) adreesị bụ ndabara; uzo doro anya (t-address) na nkwado Sapling chọrọ ntinye aka maka obere akpa.
- Ọ na-ejikọta ya na ** onye nwe onwe ya. Zebra zuru ọnụ** site na mpaghara JSON-RPC enweghị lightwalletd chọrọ.
- ** Ọdịnaya na-enweghị ihe ọ bụla site n'ịmepụta**: obere akpa ahụ dum nwere ike weghachite naanị mkpụrụ okwu, na -eme ka ndekọ data dị.
- ** Ọ bụghị ihe na-adaba maka zcashd**: emejuputa naanị usoro nke Zcash RPC, yana ọdịiche dị iche iche ebumnuche maka nzuzo na nchekwa.
- Ụgwọ na-eso ZIP-317 (deterministic ụgwọ ngụkọta oge); onye ọrụ kpọmkwem ụgwọ a jụrụ.
- Na-akwado shielded memos (ZIP-302) site na ebe a maara nke ọma Bitcoin RPC.
Olee Nsogbu zecd Na-edozi?
zcashd bụ Zcash mbụ ọnụ na obere akpa jikọtara forked si Bitcoin C ++ codebase ke 2016. N'ime oge, nke a kere esemokwu: koodu siri ike ịnọgide na-enwe, wallet dị nnọọ ejikọta ya node, na adreesị doro anya ka e gosipụtara dịka nhọrọ klas mbụ n'akụkụ ndị echekwara.
zecd na-ekewapụ ọrụ akpa ego site na nkwekọrịta. Ọ bụ ** akwa nchekwa echekwara nke** n'etiti ngwa yana Zebra zuru ọnụ, na -enye:
- Ntinye aka nke Rust dị ọcha, nke oge a wuru na librustzcash (otu ọba akwụkwọ ahụ Zodl na Zingo)
- Nzuzo-site na ndabara (adreesị Orchard ma ọ bụrụ na ahaziri ya)
- Otu interface RPC dakọtara na Bitcoin nke wepụrụ mkpa ịmụ ihe akụrụngwa Zcash akọwapụtara.
- Ọdịnaya na-enweghị ala, nke nwere ike iweghachite mkpụrụ kwesịrị ekwesị maka nkwakọ ngwaahịa na igwe ojii.
Ihe owuwu ụlọ
zecd na-arụ ọrụ n'ụdị atọ:
Code-highlight
Your app / Bitcoin RPC client
↓ JSON-RPC
zecd
(keys, scanning, proving, RPC)
↓ JSON-RPC (local only)
Zebra
(full node — consensus, mempool, chain data)
zecd na-ekwurịta okwu Zebra ** naanị site na mpaghara JSON-RPC** enweghị netwọkụ ibe, ọ nweghị ndị ọzọ indexers, enweghị lightwalletd. Njikọ zebra bụ ụma nke obodo: zecd ga-ajụ izipu nzere nye onye ọbịa zuru ụwa ọnụ ma ọ bụrụ na ahaziri ya maka ọdụ ụgbọ mmiri echekwara (dịka WireGuard ma ọ bụ SSH).
Ihe Ndị Bụ́ Isi E Ji Mara Ya
Shielded-First, Orchard by Default
zecd na-eji Orchard Unified Addresses dị ka ụdị adreesị ndabara. Sapling and transparent (t-address) pools require explicit configuration per wallet. Nke a imewe belata ihe ize ndụ nke mberede uzo eziga a nkịtị nzuzo ọnyà ke okenye Zcash tooling.
Iwu nzuzo nwere ike ịhazi ya kwa oku ma ọ bụ n'ụwa niile na-akpọtụrụ gị. [spend] privacy_policy:
| Amụma | Àgwà |
|---|
AllowRevealedRecipients (ndabara) | A na-ezigara ndị nnata doro anya akwụkwọ ikike; a na-ekpughe ego na onye nnata n'usoro |
AllowRevealedAmounts | Na-ekwe ka ndị na-eziga ozi n'ofe ọdọ mmiri (Sapling↔Orchard) mana ha jụrụ ndị nnata doro anya |
FullPrivacy | Naanị ndị e zipụrụ ihe niile n'ime otu ọdọ mmiri; ha anaghị anabata ndị nnata doro anya na ndị na-agafe agafe |
AllowFullyTransparent | Na-enyekwa ohere ka e ziga ego sitere na UTXO doro anya |
Bitcoin Core RPC ndakọrịta
zecd na-emejuputa asụsụ JSON-RPC nke Bitcoin Core site n'ịgbaso:
- Aha usoro (dịka.
getblockchaininfo, getbalance, getnewaddress, listtransactions, sendtoaddress, sendmany)
- Aha ubi na ụdị dị iche iche n'azịza ha.
- JSON-RPC 1.0 envelopu owuwu
- Onye edemede bụ isi,
rpcauth ntinye, na kuki faịlụ nyocha
- Koodu njehie na HTTP ọnọdụ mapping (HTTP 500 nwere ahụ njehie, 401 semantics)
Nke a pụtara na ọtụtụ ọba akwụkwọ ịkwụ ụgwọ Bitcoin dị ugbu a, njikọta mgbanwe, yana ngwaọrụ nlekota nwere ike iso Zcash site na zecd jiri obere ma ọ bụ enweghị ngbanwe koodu.
Ihe nkwekọrịta (140+ nyocha) na-agba ọsọ ọ bụla PR megide daemon regtest dị ndụ ma kwadoro ya maka netwọọdụ ule ọha.
Memo ndị a na-echebe (ZIP-302)
zecd na-ekpughe atụmatụ ncheta echekwara nke Zcash site n'elu Bitcoin RPC maara ihe ihe adịghị adị na ngwa ọrụ Bitcoin ọkọlọtọ:
sendtoaddress na-anabata ihe ncheta hex nhọrọ dị ka paramita ọzọ (ruo 512 bytes; jụrụ maka ndị nnata doro anya)
- Ihe ndekọ akụkọ azụmahịa sitere na:
listtransactions na nke a: gettransaction gụnyere: memo (hex) na memoStr (decoded ederede) ubi mgbe ihe mmepụta na-ebu otu
- Zero-amount sends to a shielded recipient are supported for memo-only use cases (the
z_sendmany "memo-only-send" pattern)
Nke a na-eme ka zecd dabara adaba maka ngwa ndị chọrọ ozi nzuzo, n'elu agbụ yana ịkwụ ụgwọ.
Ndị Na-enweghị Ala Site n'Ọmụma E Kere Ha
zecd na-anọgide ** enweghị ọnọdụ nke mkpụrụ osisi naanị nwere ike weghachite. nchekwa data wallet (data.sqlite) bụ kpamkpam na-ewepụtara mkpụrụ okwu kpuchie ego a natara n'enweghị ihe ọ bụla; uzo ego na-natara ruo haziri ọdịiche ịgba.
Iji weghachite obere akpa site na mkpụrụ:
Code-highlight
zecd init --restore --birthday <block-height>
Nke a na-eme ka ndekọ data disposable: akpa enweghị olu na-adịgide adịgide, wughachi site mkpụrụ kwa mmalite, anaghị efunahụ ihe ọ bụla dị mkpa. Ndị ọrụ nwere ibu ọrụ maka ịdebe adreesị ha nyere zecd naanị echeta adres mgbe ha natara ego on-chain.
Akara aha na-anọghị n'ụma. N'ihi na akara enweghị isi iyi ma enweghi ike ịmegharị site na mkpụrụ, zecd anaghị akwado ha. Ịkpọ oku usoro mkpado weghachite a method-not-found njehie (-32601).
Enweghị lightwalletd Dependency
zecd na-enweta kọmpụta dị n'ime, ọnọdụ osisi, yana visibiliti mempool ozugbo site na Zebra JSON-RPC. Enweghị lightwalletd iji rụọ ọrụ ma ọ bụ debe belata mgbagwoju anya arụmọrụ maka nkesa nke onwe ya.
Ntinye igwe ojii na nke a kwadoro ya
Ezubere usoro ụlọ zecd na-enweghị steeti maka gburugburu Docker na Kubernetes:
- Full Docker Compose stack (Nke a bụ ihe dị mkpa maka usoro nhazi.
zebra → zecd) dị na nchekwa data.
- Ihe na-egosi ahụike n'ọdụ ụgbọ mmiri.
9233 na configurable njikere-enyocha (synced or connected)
- Nhọrọ ndekọ JSON ahaziri maka pipeline nchịkọta logs.
- ZIP-317 ụgwọ ọrụ enweghị ego oracle ma ọ bụ nhazi akwụkwọ ntuziaka.
bootstrap_from_keys (default on): ndekọ data efu na-esote ya. keys.toml na-arụ ọrụ akpaaka mgbe ịmalitere gbasaa site n'ịwụnye otu Nzuzo ma malite na PVC efu
Ụdị Nlekọta Ndị Nne na Nna Na-elekọta Ụmụaka
zecd na-akwado ụdị atọ nke njide igodo, dabara maka ntinye dị iche iche na ihe nchedo:
1. Unencrypted (Ntọala Auto-Unlock)
Mnemonic mkpụrụ na-eme ka mmadụ nwee ike icheta ihe. keys.toml a na-ekpuchi ya n'ime akwụkwọ njirimara afọ (age identity file)identity.txt) Na ndabara. auto_unlock = true, mkpụrụ a na-ekpuchi n'ime ebe nchekwa mgbe mmalite ya mere eziga bụ unattended na ọ dịghị onye ọzọ. walletpassphrase a chọrọ oku.
Nke kachasị mma maka: ndị na-arụ ọrụ ịkwụ ụgwọ akpaaka, mgbanwe ego ọkụ, gburugburu ebe nrụpụta.
Code-highlight
zecd init --datadir ./data --wallet default --account-name primary
Ụlọ ahịa identity.txt n'èzí ndekọ data na mainnet onye ọ bụla gụrụ faịlụ abụọ ahụ nwere ikike imefu.
2. E ji ihe nzuzo ezochi (Nwere Nchedo Passphrase)
A na-eji paswọọdụ (afọ scrypt) kechie mnemonic kama iji faịlụ njirimara. Akpa ego ahụ malitere ekpochi; walletpassphrase "<pass>" <timeout> na-emechi ya maka oge enyere ma mechie onwe gị mgbe ọ gwụchara kwekọrọ n'omume obere akpa ego Bitcoin Core.
Nke kachasị mma maka: obere akpa ọkụ ebe a na-achọghị ikike iji ego emefu; usoro ọrụ onye njikwa mmekọrịta.
Code-highlight
zecd init --datadir ./data --encrypt
# later: walletpassphrase "my-passphrase" 300
3. Nche-Naanị (UFVK Ọ dịghị Spend Key)
Ejiri ya na Unified Full Viewing Key (UFVK) nke ebuputara site n'akpa ego ọzọ. Nwere ike ịnata, nyochaa ma kọọ nguzozi mana enweghị ike ịbịanye aka na azụmahịa. Ezigbo maka nyocha, akwụkwọ ọnụahịa, ma ọ bụ ntinye ederede dị iche na obere akpa mbinye aka.
Code-highlight
# On the signing wallet's host:
zecd export-ufvk
# On the watch-only host:
zecd init --datadir ./data-watch --ufvk "uview1..." --birthday <height>
Ndabere na Iweghachite
Enwere ike iweghachite ego site na naanị ihe ncheta. Ihe ọ bụla ọzọ bụ ebe nchekwa.
| Ihe ochie | Ọnọdụ | Ihe ọ na-echebe | Ịkwado azụ? |
|---|
| Mkpọpụta okwu iri abụọ na anọ | Egosiri otu ugboro na zecd init | Ego ahụ — mfu = mfu na-adịgide adịgide | Ee — n'ịntanetị (akwụkwọ/HSM) |
keys.toml | <wallet dir>/keys.toml | Mkpụrụ ezoro ezo + ụbọchị ọmụmụ + netwọk | Ee — dị ka ihe nzuzo |
identity.txt | [keys] age_identity | Decrypt na-ewepụ njehie keys.toml (imefu ikike) | Ee — iche na keys.toml |
| Ogologo ụbọchị ọmụmụ | N'ime keys.toml | Na-eme ka mgbake dị ngwa ngwa (ogologo ọ bụla tupu tx mbụ) | Dekọọ na ihe ncheta |
data.sqlite | <wallet dir>/data.sqlite | Cache obere akpa - arụgharịrị site na mkpụrụ mgbe eweghachiri ya | Mba — a na-atụfu ihe a na-atụfu |
blocks/ |
Directory data ga-abụ onye ọbịa. zecd's single instance lock (<datadir>/.lock) bụ OS advisory mkpọchi ọ dịghị span ụsụụ ndị agha. mgbe ịkọrọ a data directory agụ-dee gafee igwe (NFS, Kubernetes ReadWriteMany) abụọ zecd instances ga-emerụ akpa ego DB. Jiri ReadWriteOnce mpịakọta na Kubernetes.
Usoro RPC Safelist
Maka nkenye ebe a ga-enwe ọdachi nke nzere, zecd na-akwado igbochi elu RPC ka usoro nhọrọ:
Code-highlight
[rpc]
allowed_methods = ["getblockchaininfo", "getbalance", "getnewaddress", "listtransactions"]
Ụzọ ọ bụla na-adịghị n'ime ndepụta ahụ laghachiri -32601 (HTTP 404) enweghị ike ịmata ya site na usoro nke adịghị adị, n'ihi ya onye nkesa a kpọchiri akpọchi anaghị ekpughe ihe ọ bụla banyere ihe o mebiri. Onye natara akwụkwọ ọnụahịa nwere ike ịkwụsị ọrụ ahụ ma mee ka ndị ahịa ghara ịnweta ozi ha mgbe niile. sendtoaddress, sendmany, na stop iji belata radius mgbawa site na onye ahịa nwere nsogbu.
Isi ihe dị iche na Bitcoin Core RPC
Ndị mmepe na-esi n'ọrụ Bitcoin ma ọ bụ zcashd agagharị kwesịrị ịma maka ọdịiche ndị a:
| Àgwà | Isi Bitcoin | zecd |
|---|
| Ụdị adreesị | 1... / bc1... | u1... (Unified Address) (Orchard) - enweghị ike ịkọwa ya dị ka adreesị Bitcoin site n'aka ndị ahịa na-akọwapụta eriri |
| Aha ndị e ji mee ihe | Ụlọ ahịa akara zuru oke | Emebeghị ya - setlabel, listlabels, wdg. nloghachi -32601 |
| Ụgwọ | A na-ahazi onye ọrụ; ahịa ụgwọ | ZIP-317 naanị ihe dị mkpa; settxfee, fee_rate, subtractfeefromamount jụrụ na -8 |
| Ihe ncheta | Anaghị akwado ya | sendtoaddress na-anabata ozi hex; akụkọ ihe mere eme nwere memo + memoStr ubi |
| Nkwenye imefu ego | 1 | 3 (mgbanwe nkeonwe) / 10 (ndị ọzọ) — enwere ike ịhazi site na trusted_confirmations / untrusted_confirmations |
listsinceblock na nhazigharị |
Mmalite ngwa-ngwa
** Ihe ndị dị mkpa:** Zebra na-agba ọsọ n'ógbè ahụ. rpc.listen_addr = 127.0.0.1:18234 (nza ule).
Wụnye site na crates.io (0.4.3+):
Code-highlight
cargo install zecd
Ma ọ bụ wuo site na isi iyi:
Code-highlight
git clone https://github.com/zecrocks/zecd && cd zecd
cargo build --release
Code-highlight
# 1. Initialize a testnet wallet (generates a 24-word mnemonic and an account)
zecd --datadir ./data --testnet init --wallet default --account-name primary
# 2. Start the daemon (syncs in background, serves JSON-RPC on port 18232)
zecd --datadir ./data --testnet \
--rpcuser zec --rpcpassword secret --rpcbind 127.0.0.1 --rpcport 18232
** Na-emekọrịta site na curl:**
Code-highlight
curl -s --user zec:secret --data-binary \
'{"jsonrpc":"1.0","id":"1","method":"getblockchaininfo","params":[]}' \
-H 'content-type: text/plain;' http://127.0.0.1:18232/
** Na-emekọrịta site na Python (iji ọbá akwụkwọ Bitcoin RPC):**
Code-highlight
from bitcoinrpc.authproxy import AuthServiceProxy
rpc = AuthServiceProxy("http://zec:secret@127.0.0.1:18232")
print(rpc.getblockchaininfo())
addr = rpc.getnewaddress() # returns a u1... Orchard Unified Address
print(rpc.getbalance())
print(rpc.listtransactions("*", 20))
# Send with a shielded memo
rpc.sendtoaddress(addr, 0.001, "", "", False, "48656c6c6f205a6563617368") # hex memo
** Na-eweghachi site na mkpụrụ:**
Code-highlight
zecd --datadir ./data init --restore --birthday 2500000
# paste your 24-word mnemonic when prompted
Port ndị a na-ahọrọghị ahọpụtara
| Netwọk | zecd RPC | Zebra RPC (azụ azụ) | Ahụike |
|---|
| Mainnet | 8232 | 8234 | 9233 |
| Netwọk Nnwale | 18232 | 18234 | 9233 |
zecd megide zcashd megide Zaino
| zcashd | Zaino | zecd |
|---|
| Ọrụ | Ọnụ zuru ezu + obere akpa | Indexer (na-anọchi lightwalletd) | Naanị ihe nkesa obere akpa |
| Asụsụ | C++ | Nchara | Nchara |
| Ọkwa | Akwụsịla | Na-arụ ọrụ | Na-arụ ọrụ (v0.5.0-rc3, Julaị 2026) |
| Ọdọ mmiri ndabara | Ihe doro anya | N/A | Orchard (nke e ji ihe nchekwa kpuchie) |
| Asụsụ RPC | zcashd-specific | gRPC (lightwalletd) | Isi Bitcoin JSON-RPC |
| Chọrọ node zuru oke | Ee (onwe gị) | Zebra ma ọ bụ zcashd | Zebra |
| Mgbake na-enweghị steeti | No | N/A | Ee (naanị mkpụrụ) |
| Ihe ncheta echekwara | Ee (z_sendmany) | N/A | Ee (elu Bitcoin RPC) |
|
Peeji ndị metụtara ya
- Zebra Full Node (Nọmba zuru ezu) zuru ọnụ zecd jikọọ na-
- Zaino Indexer (Nkọwapụta) ọzọ indexer obibia (anọchi lightwalletd)
- Zakura Node (Nọmba nke Zaku) ọzọ zuru ọnụ mmejuputa iwu (fork nke Zebra)
- Igodo Nlele otú zecd si enyocha agbụ ahụ site na iji igodo nlele akaụntụ.
- Akpa ego ihe gbasara ego n'akpa uwe.
Akụnụba