Ejemplo n.º 1
0
        public async Task <ActionResult> Get(string key, CancellationToken cancellationToken)
        {
            var h = KNodeId <KNodeId256> .Read(new SHA256Managed().ComputeHash(Encoding.UTF8.GetBytes(key)));

            var v = await values.GetAsync(h, cancellationToken);

            return(v.HasValue ? (ActionResult)File(v.Value.Data, "application/octet-stream") : NotFound());
        }
Ejemplo n.º 2
0
        public async Task Set(string key, CancellationToken cancellationToken)
        {
            var h = KNodeId <KNodeId256> .Read(new SHA256Managed().ComputeHash(Encoding.UTF8.GetBytes(key)));

            var v = await values.GetAsync(h, cancellationToken);

            await values.SetAsync(h, new KValueInfo(await Request.Body.ReadAllBytesAsync(), v.HasValue ? (v.Value.Version + 1) : 1, DateTime.UtcNow.AddMinutes(60)), cancellationToken);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Generates a node ID for the given string.
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 KNodeId64 IKsKademliaHasher <string, KNodeId64> .Hash(string key) => KNodeId <KNodeId64> .Read(sha1.ComputeHash(Encoding.UTF8.GetBytes(key)));
Ejemplo n.º 4
0
 /// <summary>
 /// Generates a node ID for the given string.
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 public KNodeId256 Hash(string key) => KNodeId <KNodeId256> .Read(sha256.ComputeHash(Encoding.UTF8.GetBytes(key)));