Exemplo n.º 1
0
        public void _Test_Add()
        {
            var snapshot = LevelDB.Ex.Helper.CreateSnapshot(db);

            byte[] key        = System.Text.Encoding.ASCII.GetBytes("allblocks");
            var    blocks     = dbTable.GetItem(snapshot, key) as LevelDB.Ex.Map;
            var    blockcount = blocks.Count(snapshot);
            {
                var batch = new LevelDB.Ex.WriteBatch(db);
                //写入创世块
                var    blockadd = new LevelDB.Ex.Map();
                byte[] blockkey = BitConverter.GetBytes((UInt64)blockcount);
                blocks.Batch_SetItem(batch, blockkey, blockadd);

                byte[] keydata = System.Text.Encoding.ASCII.GetBytes("data");
                blockadd.Batch_SetItem(batch, keydata, new LevelDB.Ex.Bytes(new byte[0]));

                byte[] keyhash = System.Text.Encoding.ASCII.GetBytes("hash");

                byte[] hash = sha256.ComputeHash(new byte[0]);
                blockadd.Batch_SetItem(batch, keyhash, new LevelDB.Ex.Bytes(hash));

                batch.Apply();
            }
        }
Exemplo n.º 2
0
        void InitBlock()
        {
            var snapshot = LevelDB.Ex.Helper.CreateSnapshot(db);

            byte[] key    = System.Text.Encoding.ASCII.GetBytes("allblocks");
            var    blocks = dbTable.GetItem(snapshot, key) as LevelDB.Ex.Map;

            if (blocks == null)
            {
                blocks = new LevelDB.Ex.Map();
                dbTable.PutItem(key, blocks);
            }
            snapshot = LevelDB.Ex.Helper.CreateSnapshot(db);
            if (blocks.Count(snapshot) == 0)
            {
                var batch = new LevelDB.Ex.WriteBatch(db);
                //写入创世块
                var    blockzero = new LevelDB.Ex.Map();
                byte[] blockkey  = BitConverter.GetBytes((UInt64)0);
                blocks.Batch_SetItem(batch, blockkey, blockzero);

                byte[] keydata = System.Text.Encoding.ASCII.GetBytes("data");
                blockzero.Batch_SetItem(batch, keydata, new LevelDB.Ex.Bytes(new byte[0]));

                byte[] keyhash = System.Text.Encoding.ASCII.GetBytes("hash");

                byte[] hash = sha256.ComputeHash(new byte[0]);
                blockzero.Batch_SetItem(batch, keyhash, new LevelDB.Ex.Bytes(hash));

                batch.Apply();
            }
        }