Development (#172)

* docs: Add CLAUDE_RULES.md with strict rebrand protection rules

- Define immutable rebrand rules that cannot be violated
- Prohibit reverting rebrand for cargo check convenience
- Establish checkpoint and audit trail requirements
- Document correct error handling approach

* refactor: Complete kurdistan-sdk to pezkuwi-sdk rebrand

- Update README.md with pezkuwi-sdk branding
- Replace all kurdistan-sdk URL references with pezkuwi-sdk
- Replace kurdistan-tech with pezkuwichain in workflows
- Update email domains from @kurdistan-tech.io to @pezkuwichain.io
- Rename tool references: kurdistan-tech-publish → pezkuwi-publish
- Update runner names: kurdistan-tech-* → pezkuwichain-*
- Update analytics/forum/matrix domains to pezkuwichain.io
- Keep 'Kurdistan Tech Institute' as organization name
- Keep tech@kurdistan.gov as official government contact
This commit is contained in:
2025-12-19 23:30:43 +03:00
committed by GitHub
parent 2093647fea
commit 3680848df2
209 changed files with 496 additions and 454 deletions
+1 -1
View File
@@ -73,7 +73,7 @@ pub trait BlockchainEvents<Block: BlockT> {
///
/// The events for this notification stream are emitted:
/// - During initial sync process: if there is a re-org while importing blocks. See
/// [here](https://github.com/pezkuwichain/kurdistan-sdk/issues/60#issuecomment-694091901) for the
/// [here](https://github.com/pezkuwichain/pezkuwi-sdk/issues/60#issuecomment-694091901) for the
/// rationale behind this.
/// - After initial sync process: on every imported block, regardless of whether it is
/// the new best block or not, causes a re-org or not.
+1 -1
View File
@@ -85,7 +85,7 @@ pub enum CompatibilityMode<N> {
/// Call `initialize_block` before doing any runtime calls.
///
/// Previously the node would execute `initialize_block` before fetching the authorities
/// from the runtime. This behaviour changed in: <https://github.com/pezkuwichain/kurdistan-sdk/issues/77>
/// from the runtime. This behaviour changed in: <https://github.com/pezkuwichain/pezkuwi-sdk/issues/77>
///
/// By calling `initialize_block` before fetching the authorities, on a block that
/// would enact a new validator set, the block would already be build/sealed by an
+1 -1
View File
@@ -332,7 +332,7 @@ The current cryptographic scheme used by BEEFY is `ecdsa`. This is **different**
schemes like `sr25519` and `ed25519` which are commonly used in Bizinikiwi configurations for
other pallets (BABE, GRANDPA, AuRa, etc). The most noticeable difference is that an `ecdsa`
public key is `33` bytes long, instead of `32` bytes for a `sr25519` based public key. So, a
BEEFY key [sticks out](https://github.com/pezkuwichain/kurdistan-sdk/blob/main/pezkuwi/node/service/src/chain_spec.rs#L738)
BEEFY key [sticks out](https://github.com/pezkuwichain/pezkuwi-sdk/blob/main/pezkuwi/node/service/src/chain_spec.rs#L738)
among the other public keys a bit.
For other crypto (using the default Bizinikiwi configuration) the `AccountId` (32-bytes) matches
+1 -1
View File
@@ -381,7 +381,7 @@ impl DatabaseSource {
/// Return path for databases that are stored on disk.
pub fn path(&self) -> Option<&Path> {
match self {
// as per https://github.com/pezkuwichain/kurdistan-sdk/issues/78#discussion_r684312550
// as per https://github.com/pezkuwichain/pezkuwi-sdk/issues/78#discussion_r684312550
//
// IIUC this is needed for pezkuwi to create its own dbs, so until it can use parity db
// I would think rocksdb, but later parity-db.
@@ -492,7 +492,7 @@ fn returns_mutable_static_bss(wasm_method: WasmExecutionMethod) {
// If we didn't restore the wasm instance properly, on a trap the stack pointer would not be
// returned to its initial value and thus the stack space is going to be leaked.
//
// See https://github.com/pezkuwichain/kurdistan-sdk/issues/23 for details
// See https://github.com/pezkuwichain/pezkuwi-sdk/issues/23 for details
test_wasm_execution!(restoration_of_globals);
fn restoration_of_globals(wasm_method: WasmExecutionMethod) {
// Allocate 32 pages (of 65536 bytes) which gives the runtime 2048KB of heap to operate on
@@ -577,7 +577,7 @@ mod tests {
/// Regression test for the case where the `GossipEngine.network_event_stream` closes. One
/// should not ignore a `Poll::Ready(None)` as `poll_next_unpin` will panic on subsequent calls.
///
/// See https://github.com/pezkuwichain/kurdistan-sdk/issues/25 for details.
/// See https://github.com/pezkuwichain/pezkuwi-sdk/issues/25 for details.
#[test]
fn returns_when_network_event_stream_closes() {
let network = TestNetwork::default();
@@ -28,7 +28,7 @@ use pezsp_runtime::traits::{Block as BlockT, Hash, HashingFor};
use prometheus_endpoint::{register, Counter, PrometheusError, Registry, U64};
use std::{collections::HashMap, iter, sync::Arc, time, time::Instant};
// FIXME: Add additional spam/DoS attack protection: https://github.com/pezkuwichain/kurdistan-sdk/issues/7
// FIXME: Add additional spam/DoS attack protection: https://github.com/pezkuwichain/pezkuwi-sdk/issues/7
// NOTE: The current value is adjusted based on largest production network deployment (Kusama) and
// the current main gossip user (GRANDPA). Currently there are ~800 validators on Kusama, as such,
// each GRANDPA round should generate ~1600 messages, and we currently keep track of the last 2
@@ -360,9 +360,9 @@ impl NetworkStatusProvider for Litep2pNetworkService {
connected_peers: HashMap::new(),
not_connected_peers: HashMap::new(),
// TODO: Check what info we can include here.
// Issue reference: https://github.com/pezkuwichain/kurdistan-sdk/issues/15.
// Issue reference: https://github.com/pezkuwichain/pezkuwi-sdk/issues/15.
peerset: serde_json::json!(
"Unimplemented. See https://github.com/pezkuwichain/kurdistan-sdk/issues/15."
"Unimplemented. See https://github.com/pezkuwichain/pezkuwi-sdk/issues/15."
),
})
}
@@ -61,9 +61,9 @@ pub mod generic {
}
/// Status sent on connection.
// TODO https://github.com/pezkuwichain/kurdistan-sdk/issues/24: replace the `Status`
// TODO https://github.com/pezkuwichain/pezkuwi-sdk/issues/24: replace the `Status`
// struct with this one, after waiting a few releases beyond `NetworkSpecialization`'s
// removal (https://github.com/pezkuwichain/kurdistan-sdk/issues/55)
// removal (https://github.com/pezkuwichain/pezkuwi-sdk/issues/55)
//
// and set MIN_VERSION to 6.
#[derive(Debug, PartialEq, Eq, Clone, Encode, Decode)]
@@ -106,7 +106,7 @@ fn setup_libp2p(
.with_substream_upgrade_protocol_override(upgrade::Version::V1)
.with_notify_handler_buffer_size(NonZeroUsize::new(32).expect("32 != 0; qed"))
// NOTE: 24 is somewhat arbitrary and should be tuned in the future if
// necessary. See <https://github.com/pezkuwichain/kurdistan-sdk/issues/57>
// necessary. See <https://github.com/pezkuwichain/pezkuwi-sdk/issues/57>
.with_per_connection_event_buffer_size(24)
.with_max_negotiating_inbound_streams(2048)
.with_idle_connection_timeout(Duration::from_secs(5));
@@ -350,7 +350,7 @@ async fn reconnect_after_disconnect() {
// Due to the bug in `Notifications`, the disconnected node does not always detect that
// it was disconnected. The closed inbound substream is tolerated by design, and the
// closed outbound substream is not detected until something is sent into it.
// See [PR #13396](https://github.com/pezkuwichain/kurdistan-sdk/issues/45).
// See [PR #13396](https://github.com/pezkuwichain/pezkuwi-sdk/issues/45).
// This happens if the disconnecting node reconnects to it fast enough.
// In this case the disconnected node does not transit via `ServiceState::NotConnected`
// and stays in `ServiceState::FirstConnec`.
+5 -5
View File
@@ -546,7 +546,7 @@ where
.with_substream_upgrade_protocol_override(upgrade::Version::V1)
.with_notify_handler_buffer_size(NonZeroUsize::new(32).expect("32 != 0; qed"))
// NOTE: 24 is somewhat arbitrary and should be tuned in the future if
// necessary. See <https://github.com/pezkuwichain/kurdistan-sdk/issues/57>
// necessary. See <https://github.com/pezkuwichain/pezkuwi-sdk/issues/57>
.with_per_connection_event_buffer_size(24)
.with_max_negotiating_inbound_streams(2048)
.with_idle_connection_timeout(network_config.idle_connection_timeout);
@@ -768,9 +768,9 @@ where
connected_peers,
not_connected_peers,
// TODO: Check what info we can include here.
// Issue reference: https://github.com/pezkuwichain/kurdistan-sdk/issues/15.
// Issue reference: https://github.com/pezkuwichain/pezkuwi-sdk/issues/15.
peerset: serde_json::json!(
"Unimplemented. See https://github.com/pezkuwichain/kurdistan-sdk/issues/15."
"Unimplemented. See https://github.com/pezkuwichain/pezkuwi-sdk/issues/15."
),
}
}
@@ -1639,11 +1639,11 @@ where
// reopened.
// The code below doesn't compile because `role` is unknown. Propagating the
// handshake of the secondary connections is quite an invasive change and
// would conflict with https://github.com/pezkuwichain/kurdistan-sdk/issues/27.
// would conflict with https://github.com/pezkuwichain/pezkuwi-sdk/issues/27.
// Considering that dropping notifications is generally regarded as
// acceptable, this bug is at the moment intentionally left there and is
// intended to be fixed at the same time as
// https://github.com/pezkuwichain/kurdistan-sdk/issues/27.
// https://github.com/pezkuwichain/pezkuwi-sdk/issues/27.
// self.event_streams.send(Event::NotificationStreamClosed {
// remote,
// protocol,
@@ -386,7 +386,7 @@ where
// receiving we need to add the engine ID tag.
// The ID tag is hardcoded here to avoid depending on the GRANDPA crate, and
// will be removed once we remove the backwards compatibility.
// See: https://github.com/pezkuwichain/kurdistan-sdk/issues/32
// See: https://github.com/pezkuwichain/pezkuwi-sdk/issues/32
let justification =
justifications.and_then(|just| just.into_justification(*b"FRNK"));
@@ -2075,7 +2075,7 @@ where
// This is purely during a backwards compatible transitionary period and should be removed
// once we can assume all nodes can send and receive multiple Justifications
// The ID tag is hardcoded here to avoid depending on the GRANDPA crate.
// See: https://github.com/pezkuwichain/kurdistan-sdk/issues/32
// See: https://github.com/pezkuwichain/pezkuwi-sdk/issues/32
fn legacy_justification_mapping(
justification: Option<EncodedJustification>,
) -> Option<Justifications> {
+1 -1
View File
@@ -549,7 +549,7 @@ async fn can_sync_explicit_forks() {
// TODO: for unknown reason, this test is flaky on a multithreaded runtime, so we run it
// in a single-threaded mode.
// See issue https://github.com/pezkuwichain/kurdistan-sdk/issues/20.
// See issue https://github.com/pezkuwichain/pezkuwi-sdk/issues/20.
#[tokio::test]
async fn syncs_header_only_forks() {
pezsp_tracing::try_init_simple();
+2 -2
View File
@@ -76,8 +76,8 @@ pub trait SystemApi<Hash, Number> {
///
/// **Warning**: This API is not stable. Please do not programmatically interpret its output,
/// as its format might change at any time.
// TODO: the future of this call is uncertain: https://github.com/pezkuwichain/kurdistan-sdk/issues/22
// https://github.com/pezkuwichain/kurdistan-sdk/issues/26
// TODO: the future of this call is uncertain: https://github.com/pezkuwichain/pezkuwi-sdk/issues/22
// https://github.com/pezkuwichain/pezkuwi-sdk/issues/26
#[method(name = "system_unstable_networkState", with_extensions)]
async fn system_network_state(&self) -> Result<JsonValue, Error>;
+2 -2
View File
@@ -108,7 +108,7 @@ const DEFAULT_PROTOCOL_ID: &str = "sup";
#[derive(Clone)]
pub struct RpcHandlers {
// This is legacy and may be removed at some point, it was for WASM stuff before smoldot was a
// thing. https://github.com/pezkuwichain/kurdistan-sdk/issues/121#discussion_r1694971805
// thing. https://github.com/pezkuwichain/pezkuwi-sdk/issues/121#discussion_r1694971805
rpc_module: Arc<RpcModule<()>>,
// This can be used to introspect the port the RPC server is listening on. SDK consumers are
@@ -447,7 +447,7 @@ where
request_logger_limit: rpc_configuration.request_logger_limit,
};
// TODO: https://github.com/pezkuwichain/kurdistan-sdk/issues/12
// TODO: https://github.com/pezkuwichain/pezkuwi-sdk/issues/12
//
// `block_in_place` is a hack to allow callers to call `block_on` prior to
// calling `start_rpc_servers`.
@@ -19,7 +19,7 @@
// Test inspired (copied) from:
// https://github.com/pezkuwichain/pezkuwi-sdk/blob/85b71daf7aac59da4d2186b45d589c7c619f0981/polkadot/zombienet-sdk-tests/tests/elastic_scaling/slot_based_3cores.rs#L21
// and patched as in:
// https://github.com/pezkuwichain/kurdistan-sdk/issues/124#issuecomment-2808830472
// https://github.com/pezkuwichain/pezkuwi-sdk/issues/124#issuecomment-2808830472
use crate::zombienet::{BlockSubscriptionType, NetworkSpawner, ScenarioBuilderSharedParams};
use pezcumulus_zombienet_sdk_helpers::create_assign_core_call;