mirror of
https://github.com/privacy-scaling-explorations/pse.dev.git
synced 2026-01-09 14:18:02 -05:00
feat: recent blog styling (#356)
This commit is contained in:
@@ -2,5 +2,6 @@
|
||||
"title": "Blog",
|
||||
"subtitle": "Read our latest articles and stay updated on the latest news in the world of cryptography.",
|
||||
"recentArticles": "Recent",
|
||||
"seeMore": "See more"
|
||||
"seeMore": "See more",
|
||||
"readMore": "Read more"
|
||||
}
|
||||
|
||||
@@ -8,8 +8,6 @@ canonical: "https://mirror.xyz/privacy-scaling-explorations.eth/YnqHAxpjoWl4e_K2
|
||||
tags: ["test"]
|
||||
---
|
||||
|
||||
### **Introducing Anon Aadhaar v1.0.0**
|
||||
|
||||
[Anon Aadhaar](https://github.com/anon-aadhaar/anon-aadhaar) is a protocol that enables [Aadhaar](https://en.wikipedia.org/wiki/Aadhaar) holders to prove their identity anonymously. It works by verifying the Aadhaar card's issuer signature, which is issued by the Indian government in formats like *PDF*, _XML_, and _Secure QR_ code. These digital versions are signed using RSA, involving a pair of keys: a private key for signing data and a public key for verification.
|
||||
|
||||
Our protocol leverages the [UIDAI's](https://uidai.gov.in/en/about-uidai.html) (government authority) RSA signature, enabling us to verify the documents as anyone could. The novelty of our approach is the use of a SNARK proof in the verification process, which hides sensitive data from the verifier, maintaining the same level of verification while enhancing privacy.
|
||||
|
||||
@@ -6,8 +6,6 @@ tldr: "Integrating post‑quantum cryptography into Ethereum’s P2P stack is cu
|
||||
date: "2025-04-22"
|
||||
---
|
||||
|
||||
# Towards a Quantum-Safe P2P for Ethereum
|
||||
|
||||
## Motivation
|
||||
|
||||
As quantum computing continues to evolve, there is increasing interest in understanding how Ethereum’s existing peer-to-peer (P2P) networking stack might adapt to emerging post-quantum (PQ) cryptographic standards. PSE members Adria and Guorong undertook a brief exploratory project to assess what adopting PQ algorithms in Ethereum’s P2P layer would entail. This exploration aimed primarily at gaining clarity around potential challenges and identifying realistic directions for future PQ-focused efforts. Ultimately, the project highlighted significant practical limitations, providing valuable insights that we hope will help inform further PQ initiatives.
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
import { useTranslation } from "@/app/i18n"
|
||||
import { AppContent } from "../ui/app-content"
|
||||
import { getArticles } from "@/lib/blog"
|
||||
import Image from "next/image"
|
||||
import Link from "next/link"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { Button } from "../ui/button"
|
||||
import { Icons } from "../icons"
|
||||
|
||||
export async function BlogRecentArticles({ lang }: { lang: any }) {
|
||||
const articles = getArticles({ limit: 6 })
|
||||
const articles = getArticles({ limit: 4 })
|
||||
const { t } = await useTranslation(lang, "blog-page")
|
||||
|
||||
const lastArticle = articles[0]
|
||||
@@ -23,33 +22,46 @@ export async function BlogRecentArticles({ lang }: { lang: any }) {
|
||||
<h3 className="text-base font-bold font-sans text-center uppercase tracking-[3.36px]">
|
||||
{t("recentArticles")}
|
||||
</h3>
|
||||
|
||||
<div className="grid grid-cols-1 lg:grid-cols-5 gap-10 lg:gap-x-14 lg:max-w-[1200px] mx-auto">
|
||||
<div className="flex flex-col gap-5 lg:col-span-3">
|
||||
<Image
|
||||
src={imageUrl}
|
||||
alt={lastArticle.title}
|
||||
width={1000}
|
||||
height={1000}
|
||||
className="w-full"
|
||||
/>
|
||||
<Link
|
||||
href={`/blog/${lastArticle.id}`}
|
||||
className="group duration-200 flex flex-col gap-[10px] text-left"
|
||||
<div className="grid grid-cols-1 lg:grid-cols-5 gap-10 lg:gap-x-14 lg:max-w-[1200px] mx-auto relative">
|
||||
<div className="inset-0 relative lg:col-span-3">
|
||||
<div
|
||||
className="flex flex-col gap-5 w-full items-center aspect-video after:absolute after:inset-0 after:content-[''] after:bg-black after:opacity-20 group-hover:after:opacity-50 transition-opacity duration-200 after:z-[0]"
|
||||
style={{
|
||||
backgroundImage: `url(${imageUrl})`,
|
||||
backgroundSize: "cover",
|
||||
backgroundPosition: "center",
|
||||
}}
|
||||
>
|
||||
<h4 className="text-3xl font-bold font-display group-hover:text-anakiwa-500 transition-colors">
|
||||
{lastArticle.title}
|
||||
</h4>
|
||||
<span className="text-sm font-sans text-tuatara-400 uppercase">
|
||||
{lastArticle.authors?.join(", ")}
|
||||
</span>
|
||||
{lastArticle.tldr && (
|
||||
<span className="text-base font-sans text-tuatara-950 font-normal">
|
||||
{lastArticle.tldr}
|
||||
<div className="duration-200 flex flex-col gap-[10px] text-left px-5 lg:px-16 py-6 lg:py-16 relative z-[1]">
|
||||
<Link
|
||||
href={`/blog/${lastArticle.id}`}
|
||||
className="text-4xl font-bold text-white font-display hover:text-anakiwa-400 transition-colors"
|
||||
>
|
||||
{lastArticle.title}
|
||||
</Link>
|
||||
<span className="text-sm font-sans text-white/80 uppercase">
|
||||
{lastArticle.authors?.join(", ")}
|
||||
</span>
|
||||
)}
|
||||
</Link>
|
||||
{lastArticle.tldr && (
|
||||
<span className="text-base font-sans text-white/80 font-normal line-clamp-2 lg:line-clamp-3">
|
||||
{lastArticle.tldr}
|
||||
</span>
|
||||
)}
|
||||
<Link href={`/blog/${lastArticle.id}`} className="ml-auto">
|
||||
<Button
|
||||
className="uppercase ml-auto mt-4"
|
||||
variant="secondary"
|
||||
>
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="!text-center">{t("readMore")}</span>
|
||||
<Icons.arrowRight className="w-4 h-4" />
|
||||
</div>
|
||||
</Button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-col gap-6 lg:col-span-2">
|
||||
{otherArticles.map((article, index) => (
|
||||
<Link
|
||||
|
||||
Reference in New Issue
Block a user